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

Linux Mint 20 で日付、時刻、タイムゾーンを変更する方法

  1. C で sqrtf() を使用する:`sqrtf' への未定義参照

  2. OCaml コンパイル エラー:/usr/bin/ld:-lstr が見つかりません

  3. updatedb:コマンドが見つかりません

初心者向けチュートリアルをコマンドするLinux(8例)

  1. Linuxでファイルシステムをマウントおよびアンマウントする方法

  2. Iptables Persistent Serviceが変更を保存しないのはなぜですか?

  3. Linux/Unix サーバーで開いているポートを一覧表示する方法

Ubuntu Server 18.04 LTS のインストール - 簡単なステップ バイ ステップ ガイド

  1. ファイルをその場でソートする方法

  2. Linuxでファイルを解凍する方法(例付き)

  3. このデスクトップアプリケーションを使用して、Linuxコンピューターの仕様を確認してください