root以外のSUDOなしでroot権限でコマンドを実行する

root以外のSUDOなしでroot権限でコマンドを実行する

root以外のユーザーに対してroot権限を必要とするコマンド(iftopなどのコマンド)を実行する方法といいえ以前はSUDOを試してみましたか?

または、rootにならずにユーザーにroot権限を付与する方法は?

理想的には、次のようにiftopコマンドを実行したいと思います。

[user@pc]$ iftop

そしていいえ良い:

[user@pc]$ sudo iftop

[root@pc]$ iftop

答え1

SUDOを使用せずにroot以外のユーザーに対してroot権限を必要とするコマンド(iftopなどのコマンド)をどのように実行しますか?

root以外のユーザーがiftopを使用できるようにする方法は少なくとも2つあります。どちらもrootアクセスが必要です。

より安全なアプローチは、cap_net_rawiftopバイナリに機能を割り当てることです。

sudo setcap cap_net_raw+ep "$(command -v iftop)"

安全性の低いアプローチは、setuid ルートを割り当てることです。

sudo chmod +s "$(command -v iftop)"

または、rootにならずにユーザーにroot権限を付与する方法は?

あなたはできません。

答え2

これは、ユーザーIDファイルのプロパティ設定を使用して実行できます。

# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
root   1234  0.0  0.0   ...  0:00 sleep 1000

これは大きなセキュリティリスクです!

(ここではなく)他の人として何かを実行するにはroot

# chown pulse /usr/bin/sleep
# chmod u+s /usr/bin/sleep
# sleep 1000&
# ps aux | grep -w sleep | grep -v grep
pulse   1234  0.0  0.0   ...  0:00 sleep 1000

ルートでない場合は、他の人が次のコマンドを実行できるようにすることができます。

# id -nu
john
# ls -l a.out
-rwxr-x--- 1 john users   50923 Mar 25 10:17 a.out
# chmod go+rx,u+s a.out
# ls -l a.out
-rwsr-xr-x 1 john users   50923 Mar 25 10:17 a.out

(「rwx ...」に「x」がある「s」に注意してください。これは、ユーザーID設定フラグが設定されていることを意味します。)

次に、次のようにしますjane

# id -nu
jane
# ~john/a.out

このコマンドはa.outで実行されますjohn

関連情報