GNU/Linux >> Linux の 問題 >  >> Linux

sudoers で引用符を含むコマンドをユーザーに実行させるにはどうすればよいですか?

簡単な解決策は、コマンドをスクリプトに入れ、ユーザーに sudo 経由でスクリプトへのアクセスを許可することです。

user ALL = (root) NOPASSWD: /path/to/yourscript

次に

#/bin/bash
chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

ユーザーがスクリプトへの書き込みアクセス権を持っていないことを確認してください。


編集:警告、sudo はコマンド内のスペースを安全に処理しないようです。そのため、この方法で sudo を使用するのは安全ではありません。 https://unix.stackexchange.com/a/279142/39281

sudoers ファイルで引用符を使用する代わりに、バックスラッシュを使用してスペースをエスケープできます:

user ALL = (root) NOPASSWD: chroot /chroots/box /bin/bash -c cd\ /repos/system\ &&\ git\ pull

ユーザーのシェルは引用符で囲まれた引数を処理するため、次のように使用できます:

chroot /chroots/box /bin/bash -c 'cd /repos/system && git pull'

個人的には、スクリプトに入れる他の回答が好きですが、これは実際の質問に回答します.


Linux
  1. Linuxでユーザーがログインする前にコマンドを実行する方法は?

  2. initスクリプトで特定のユーザーとしてコマンドを実行する方法は?

  3. Javaでsudo権限でbashコマンドを実行するには?

  1. Linuxでidコマンドを使用する方法:5つの便利な例

  2. Linux で別のユーザーのコマンド履歴を表示するには?

  3. パスワードなしでsshコマンドをsudoコマンドをリモートで実行する方法

  1. 外部のpythonスクリプトでDjangoシェルでコードを実行するには?

  2. 通常のユーザーを sudoers ファイルに追加するにはどうすればよいですか?

  3. ユーザーが実行したすべてのコマンドをログに記録するにはどうすればよいですか?