/etc/sudoers
(Fedora 13)のコメントによると:
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
私の2つの関連質問:
ALL=(ALL) ALL
次の行はどういう意味ですか?root ALL=(ALL) ALL
これらの2行をテストしましたが、機能的にどのように異なるかはわかりません。
superadm ALL=(ALL) ALL superadm ALL=ALL
マニュアルを読みましたが、構文規則に従うのは難しいです。その(ALL) ALL
部分が命令とタグの仕様だと推論してみましたが、まだ理解していません。
答え1
メモ:私は答えています1.、イグナシオの後すでに答えています 2.。
次のsudo
項目から:
superadm ALL=(ALL) ALL
4つのフィールドがあります。
- 最初は、特定のコマンド権限を付与されるユーザーを指定します。
- 2番目のタイプはほとんど使用されません。これは、このsudoエントリが適用されるホスト名のリストです。標準設定では 1 つのホスト (localhost) のみ関連するため、このフィールドは通常
ALL
. - これ第四
superadm
フィールドは、高い権限で実行できるコマンドのリストです。ALL
すべてのコマンドを表します。それ以外の場合は、コンマで区切られたコマンドのリストを使用してください。 - 3番目のフィールド(
(…)
オプション)は、superadm
ユーザーが次のコマンドを実行できるユーザー(およびグループ)を指定します。ALL
つまり、何でも選択できます(制限なし)。このフィールドを省略すると同じ意味を持ちます(root)
。
例:
alan ALL = (root, bin : operator, system) /bin/ls, /bin/kill
ここでは、追加またはグループ権限を使用して、2つのコマンドを(または)でalan
実行できます/bin/ls
。/bin/kill
root
bin
operator
system
alan
したがって、次のグループ権限を持つユーザーとして実行するオプションがあります。ls
bin
operator
sudo -u bin -g operator /bin/ls /whatever/directory
省略した場合-u
と同じです-u root
。省略すると、-g
他のグループ権限は付与されません。
答え2
sudoers(5)
マニュアルページから、説明する部分、Runas_Spec部分:
sudo
最初のRunas_Listは、コマンドを実行するためのオプションを渡すことができるユーザーを表します-u
。
...
Runas_Spec を指定しないと、コマンドを実行でき、
root
グループを指定できません。
root
したがって、コマンドをas、つまりwithを使用せずに実行しようとすると、-u
機能上の違いはありませんsudo
。他のユーザーがコマンドを実行しようとするときの違いは重要です。後者はこのようなことが起こるのを防ぎますが、前者はこれらのことが起こることを可能にします。