Frage :Wie man verhindert, dass ein bestimmter Benutzer einen bestimmten Befehl ausführen kann.
Diese Technik verwendet eine Dateisystem-Zugriffskontrollliste (ACL), um unerwünschten Zugriff zu verhindern.
Achtung :Die sudo-Einrichtung ist für diesen Zweck nicht geeignet. Insbesondere das „Subtrahieren“ einer ausführbaren Datei vom zulässigen ALL-Preset funktioniert nicht wie erwartet.Das folgende Beispiel hindert Benutzer john daran, Verzeichnisse über den Befehl mkdir zu erstellen. Die Schritte sind:
1. Suchen Sie den absoluten Pfad zum zu steuernden Befehl:
# which mkdir /bin/mkdir
2. Zeigen Sie die aktuelle ACL für dieses Programm an:
# getfacl /bin/mkdir # file: bin/mkdir # owner: root # group: root user::rwx group::r-x other::r-x
Die Benutzer-, Gruppen- und andere Einträge entsprechen den herkömmlichen Dateizugriffsberechtigungen, die vom Befehl chmod verwaltet werden.
3. Fügen Sie eine Zugriffskontrollregel für den Benutzer john:
hinzu# /bin/setfacl -m u:john:--- /bin/mkdir
4. Zeigen Sie die aktualisierte Zugriffskontrolle an:
# 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. Testen Sie die Einstellung:
# su - john $ mkdir -bash: /bin/mkdir: Permission denied
Erwägen Sie das Hinzufügen einer Ausführungsüberwachung mit dem auditctl-Tool, um diesen Schutz zu erweitern.
Wie man alle auf OEL 5,6 ausgeführten Befehle mit auditd prüft