Rootユーザーから、/ root/script.shファイルを実行する権限を別のユーザーに与えるにはどうすればよいですか?
アイデアは、Sudo -u user1 /root/script.sh
のようなスクリプトを実行することです
私はSudo
(特にその構成)が好きではなかったと言わなければなりません。プレーンな古いsu
:
su -c 'command' - user
ルートから実行され、パスワードの入力を求められません。
ユーザーが持っている必要があります
ディレクトリパス全体の実行権限(ここでは/root
のみ)
ファイルの実行権限
ファイルの読み取り許可
/root
をそのままにして、この目的のために別のディレクトリを作成(または使用)することをお勧めします(例:/usr/local/bin
)。 user1
をファイルの所有者にするか、root
を所有者およびグループとして残して、スクリプトの実行を許可される唯一のユーザーにすることができます。単純なアクセス許可(chmod
)を770
に設定し、ACL付きのuser1
(setfacl
)を追加します。
スクリプトがルートディレクトリにある場合、
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
はルートのみにできます。
/etc/sudoers
エントリは次のようになります
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
通常はvisudo
でファイルを編集します
また、Sudo
コマンドに-u root
を指定する必要もありません。
%
はユーザーグループを意味します。省略した場合、ユーザーのみがコマンドを実行できます。ユーザーのグループに実行させたい場合は、そのままにしておきます。