質問 :特定のユーザーが特定のコマンドを実行できないようにする方法。
この手法では、ファイルシステムのアクセス制御リスト (ACL) を使用して、不要なアクセスを防ぎます。
注意 :sudo 機能は、この目的には適していません。特に、許可された ALL プリセットから実行可能ファイルを「減算」すると、期待どおりに機能しません。次の例では、ユーザー john が mkdir コマンドを使用してディレクトリを作成できないようにしています。手順は次のとおりです。
1. 制御するコマンドへの絶対パスを見つけます:
# which mkdir /bin/mkdir
2. そのプログラムの現在の ACL を表示します:
# getfacl /bin/mkdir # file: bin/mkdir # owner: root # group: root user::rwx group::r-x other::r-x
ユーザー、グループ、およびその他のエントリは、chmod コマンドによって管理される従来のファイル アクセス許可に対応しています。
3. ユーザー john のアクセス制御ルールを追加します。
# /bin/setfacl -m u:john:--- /bin/mkdir
4. 更新されたアクセス制御を表示します:
# getfacl /bin/mkdir getfacl: Removing leading '/' from absolute path names # file: bin/mkdir # owner: root # group: root user::rwx user:john:--- group::r-x mask::rwx other::r-x
5. 設定をテストします:
# su - john $ mkdir -bash: /bin/mkdir: Permission denied
この保護を強化するために、auditctl ツールを使用して実行監視を追加することを検討してください。
auditd を使用して OEL 5、6 で実行されるすべてのコマンドを監査する方法