1 人の管理者が /etc/fstab ファイルを編集できるようにし、もう 1 人の管理者が fstab ファイルを編集できないようにしたいと考えています。
両方の管理者は、他のすべての管理タスクにアクセスできる必要があります。
これは可能ですか?
「sudo」がどのファイルにアクセスを許可するかを何らかの方法で設定する必要があると思います。または、非管理者アカウントを作成し、fstab-access というグループを作成し、そのグループにユーザーの 1 人を追加して、そのグループの権限を設定することもできます... ? 私の考えは正しいでしょうか?
答え1
すべてへのアクセスを許可すると、当然ながらすべてが台無しになります。ただし、ユーザーに特定のファイルの編集のみを許可し、それ以外は許可しないようにすることはできます。例:
user ALL = sudoedit /etc/fstab
ユーザーは /etc/fstab のみを編集できるようになります。
答え2
ユーザーに編集のみを許可したい場合は/etc/fstab
、いくつかの方法があります。
- アクセス制御リストが有効になっていることを確認してください (のエントリ
acl
の オプション) 。/etc/fstab
/
setfacl -m user:joe:rw /etc/fstab
- ルールを追加
sudoers
: 実行しvisudo
て行を追加するjoe ALL = sudoedit /etc/fstab
誰が何を実行できるかを簡単に監査できるため、sudo メソッドをお勧めします。
ただし、ユーザーに の編集を許可すると/etc/fstab
、setuid ルート バイナリを埋め込んだ外部またはループ ファイル システムをマウントできるエントリを追加することで、間接的にルート権限を取得できるようになります。
ユーザーに編集のみを許可するのは奇妙ですfstab
。ユーザーにリムーバブルデバイスのマウントを許可したい場合は、pmount
(またはデスクトップ環境に依存します)。
ユーザーがホワイトリストに載っていないコマンドを root として実行できるようにすると (「その他すべての管理タスク」)、特定のファイルの編集を禁止することはできません。ある時点で、これらのユーザーを信頼するかどうかを決定する必要があります。マシンの管理を任せられない場合は、権限を与えないでください (代わりに別のマシン、たとえば仮想マシンを使用するようにします)。信頼できる場合は、root になるよう許可し、特定のファイルはアクセス禁止であることを伝えます。
答え3
管理者が使用する必要がある可能性のあるユーティリティをすべて列挙しようとすると、キーボードの前にしばらく座ったままになります。
技術的には、このような欲求がLinuxの機能開発されました。必要なことを行うには、ユーザーに特定の機能を与え、ユーザー 1 に書き込みアクセス権fstab
(ACL などを使用) を与え、制限されたユーザー 2 には同じ書き込み権限を与えないようにします (ユーザー 2 に CAP_CHOWN または CAP_DAC_OVERRIDE がないことを確認する)。ただし、現在の機能の状態 (ユーザー空間の開発状況) を考えると、おそらくそれだけの作業は価値に見合わないでしょう。
責任を「ユーザー ロールとしての root」シナリオに委譲する機能を使用しない場合、root アカウントを使用してさまざまな操作を実行することになります。これにより、他のユーザーが必要とする可能性のあるすべてのツール (できれば間接的に操作に使用できないものfstab
) をシステムに伝えるという前述の問題が発生します。
特定のユーザーを管理者として信頼できるかどうかだけを判断する方がよいでしょう。