web-dev-qa-db-ja.com

rootとは別のユーザーとしてスクリプトを実行する

Rootユーザーから、/ root/script.shファイルを実行する権限を別のユーザーに与えるにはどうすればよいですか?

アイデアは、Sudo -u user1 /root/script.shのようなスクリプトを実行することです

11
bulkmoustache

私はSudo(特にその構成)が好きではなかったと言わなければなりません。プレーンな古いsu

su -c 'command' - user

ルートから実行され、パスワードの入力を求められません。

11
orion

ユーザーが持っている必要があります

  1. ディレクトリパス全体の実行権限(ここでは/rootのみ)

  2. ファイルの実行権限

  3. ファイルの読み取り許可

/rootをそのままにして、この目的のために別のディレクトリを作成(または使用)することをお勧めします(例:/usr/local/bin)。 user1をファイルの所有者にするか、rootを所有者およびグループとして残して、スクリプトの実行を許可される唯一のユーザーにすることができます。単純なアクセス許可(chmod)を770に設定し、ACL付きのuser1setfacl)を追加します。

0
Hauke Laging

スクリプトがルートディレクトリにある場合、

$ 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を指定する必要もありません。

%はユーザーグループを意味します。省略した場合、ユーザーのみがコマンドを実行できます。ユーザーのグループに実行させたい場合は、そのままにしておきます。

0
user55518