2

これは、スクリプトを効率化するために私が思いついたアイデアです。sudo 権限を持ち、パスワードを要求しないカスタム コマンド (jello など) を作成できるかどうか疑問に思っています。私は、sudo 権限を必要とする多くのスクリプトを作成しており、毎回それらを入力するのは好きではありません。私は sudoers ファイルを編集しており、これらのファイルの例外を作成しています。しかし、これが可能であれば、スクリプトにこのコマンドを入力するだけで、パスワードを要求せずに実行できるようになりたいと思っています。

4

1 に答える 1

1

1 つのオプションは、sudoers ファイル ( sudoers manpage ) でワイルドカードを使用することです。

注: このような戦略では、事前にアクセスを許可するすべてのコマンド(悪用リスク) を必ずしも把握していないため、適切な予防措置を講じる必要があります。

リスクを許容できる場合は、次のようなものを/etc/sudoersファイルに入れることで、同じ形式の新しいコマンドを追加し、パスワードを毎回入力することなくそれらのコマンドを実行できるようにすることができます。

me         ALL= NOPASSWD: /home/me/privil_scripts/priviledged_*.sh

他のユーザーがこのディレクトリに追加のスクリプトを簡単にドロップできないようにしてください。これを安全に保つことに関するコメントは大歓迎です。

簡単なテストとして:

# create a directory with some files inside
cd ~; mkdir nolook; touch nolook/f1; touch nolook/f2
>>> f1  f2
# make it so regular user can't see inside
sudo chmod -R 700 nolook; sudo chown -R root:root nolook
# test
ls nolook
>>> ls: cannot open directory nolook/: Permission denied

特権スクリプトと非特権スクリプトを記述します。

echo "
#!/bin/sh
sudo ls nolook
" > privil_scripts/priviledged_ls.sh
chmod +x !$

echo "
#!/bin/sh
sudo ls nolook
" > privil_scripts/plain_ls.sh
chmod +x !$

そしてそれらを試してください:

privil_scripts/priviledged_ls.sh
>>> f1  f2

privil_scripts/plain_ls.sh
>>> [sudo] password for me:
于 2014-02-17T21:15:57.143 に答える