【Linux】 rsyncでpermission denied (13)の対処方法

rsyncを使用している際にpermission denied (13)エラーに遭遇することがあります.

原因は,rsyncを実行しているユーザの権限不足です.

権限不足を解消するために一番手っ取り早い方法は管理者権限(rootアカウント)を利用することです.

ただ,ここで問題となるのはRootアカウントのSSH接続は禁止されていることが多く,SSHを利用するrsyncではrootアカウントでログインできないことです.

RootアカウントのSSHを許可することも一つの方法ではありますが,セキュリティ上推奨できません.

そこで,別の方法としてSSH接続するユーザにsudo権限を与えます.

当然,sudo権限もセキュリティ上問題となる可能性があるため,最小限のsudo権限を与えることとします.最小限のsudo権限とは,すなわちrsyncに対してのみsudoを実行可能であることを意味します.

>> スーパーユーザーなら知っておくべきLinuxシステムの仕組み

目次

rsyncに対しsudo権限を与える

rsyncのリモート側でrsyncに対してsudo権限を付与します.

/etc/sudoersにsudo関連の設定ファイルが存在します.

/etc/sudoersファイルを編集するため,visudoコマンドを実行します.ファイルを直接編集すると,構文エラーにより取り返しのつかない場合があります.visudoは構文エラーをチェックして,そのようなミスを防ぐことが出来ます.

編集内容は下記の通りです.


...
+ <rsync_user> ALL= NOPASSWD:/usr/bin/rsync

<rsync_user>は***@/path/to/rsyncの***の部分であり,rsyncを実行するユーザを意味します.

あとはrsync実行コマンドをsudo rsyncにすれば管理者権限で実行可能です.

よかったらシェアしてね!
目次