Gibt es eine Möglichkeit, Benutzern zu erlauben, Befehle nur für 2 Tage auszuführen

13

Wie erteile ich eine Sudokommando-Erlaubnis für eine bestimmte Zeit? Gibt es eine Möglichkeit, Rechte nur für die Ausführung eines bestimmten Befehls für 2 Tage in der sudoers-Datei zu erteilen??

    
Abbas Kapasi 09.10.2015, 08:20
quelle

1 Antwort

18

Die sudoers-Datei unterstützt keine zeitbasierte Einschränkung, aber es gibt eine einfache Methode. Erstellen Sie eine Datei mit Ihren Änderungen in /etc/sudoers.d/ (mit sudo visudo -f /etc/sudoers.d/yourfile ):

Fügen Sie zu einer Datei (Beispiel: file.sh ) Folgendes hinzu:

mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile

Und dies wird Ihre Änderungen deaktivieren:

 sudo at -f file.sh 2pm + 2 days

Beispiel:

at -f file.sh 2pm + 2 days
warning: commands will be executed using /bin/sh
job 4 at Thu Oct 15 14:00:00 2015

In diesem Fall würde die Datei 2 Tage nach der Ausgabe des Befehls um 14 Uhr verschoben. Das at Handbuch enthält einige Optionen (Sie können eine Zeit, Tage, Wochen verwenden , Monate, Jahre, Schlüsselwörter wie next oder addieren / subtrahieren periodes). Führen Sie einige Tests mit der Option durch, um sicherzustellen, dass Sie sie verstehen. (Etwas, das Sie beachten sollten: Es spielt eine Rolle, ob Sie at vor oder nach 14:00 Uhr am Tag selbst starten.)

at überlebt auch Neustarts, also ist es ein gutes Werkzeug für diese Art von Dingen. Und Sie können den Zugang umschalten ...

sudo mv /etc/sudoers.d/.yourfile /etc/sudoers.d/yourfile | at 2pm + 2 days
sudo mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile | at 2pm + 4 days
sudo mv /etc/sudoers.d/.yourfile /etc/sudoers.d/yourfile | at 2pm + 6 days
sudo mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile | at 2pm + 8 days

und machen Sie diesen Benutzer verrückt (wtf jetzt kann ich das tun).

Die README in /etc/sudoers/ :

# As of Debian version 1.7.2p1-1, the default /etc/sudoers file created on
# installation of the package now includes the directive:
# 
#   #includedir /etc/sudoers.d
# 
# This will cause sudo to read and parse any files in the /etc/sudoers.d 
# directory that do not end in '~' or contain a '.' character.
# 
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
# 
# Note also, that because sudoers contents can vary widely, no attempt is 
# made to add this directive to existing sudoers files on upgrade.  Feel free
# to add the above directive to the end of your /etc/sudoers file to enable 
# this functionality for existing installations if you wish!
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo for more information.

Wenn ich das richtig lese, wird keine Datei mit einem "." irgendwo im Namen. Also den 1. mv -Befehl Ich habe das "." davor macht es auch unsichtbar. Wenn richtig angenommen, können Sie ein "." irgendwo. Vorsicht mit dem "~", das wird von Redakteuren wie gEdit als "Backup" -Funktion verwendet.

at ist standardmäßig nicht installiert. Zur Installation

sudo apt-get install at
    
Rinzwind 09.10.2015 09:14
quelle

Tags und Links