回答:
mybackup
クライアントとサーバーで新しい個別のユーザーアカウントを作成するsudo passwd -l mybackup
これらのアカウントのパスワードをロックして、直接ログインできないようにしますsudo
これらの新しいアカウント/usr/bin/rsync/ --some-long-command /from/here /to/there
がNOPASSWD:
、/etc/sudoers
を使用してrootとして非常に特定のコマンドを実行することを許可しますsudo visudo
sudo -u mybackup ssh-keygen
sudo -u crontab -e
リモートrsync
を使用ssh
してキーを実行するには、一方または他方の端に追加しますこのように、rootとして実行できる唯一のコマンドは、明示的に許可したコマンドであり、それをアクティブ化できる唯一のリモートユーザーは、インストールされているsshキーペアの残りの半分の所有者です。これは、パスワードもロックされているためです。自分自身、または設定したcrontabでsudoにアクセスできる人のみが可能です。
sudo rsync
rsyncに渡されるオプションを選択できるようにすることは、ユーザーがrsyncを使用して/etc/sudoers
、たとえばファイルの読み取り/書き込みを行い、完全なsudoアクセスを自分に許可できることを意味します。
/etc/sudoers
コマンドを実行しているすべてのユーザー(またはすべてのユーザー)がroot
パスワードなしで(おそらくrsyncでは少し危険)実行できるように編集できます。
コマンド/スクリプト/何でも実行できませんroot
か?これはcronを介して実行されると想定しているため、次のようにしてroot
ジョブを追加します。
sudo crontab -e
注:cronコマンドを中bash -e "..."
括弧で囲むか、別のスクリプトで実行するだけで、かなり複雑なことを行うことができます。setuidされていない場合、root
それを(を介してcron
)実行root
すると、許可の問題を解決するように実行されます。
sudo
、通常のユーザーがスクリプトを実行できるようにすることができます。許可するより安全ですrsync
。
rootユーザーに次のパスワードを与えることができます(ただし、すべきではありません)
sudo passwd root
編集:Setuidビットはスクリプトでは機能しません。それ以外の場合は、バックアッププログラムでsetuidビットを使用できます。
sudo chown root backup
sudo chmod u+s backup
たぶん、あなたはバックアップをcronジョブとして実行したいですか?
sudo whoami
return、root)なので、sudo passwd
必要なだけです。