Wie erteile ich einem sudo-Befehl die Berechtigung für eine bestimmte Zeit? Gibt es eine Möglichkeit, Berechtigungen zum Ausführen eines bestimmten Befehls für 2 Tage nur in der sudoers-Datei zu erteilen?
Die sudoers-Datei unterstützt keine zeitbasierte Einschränkung, es gibt jedoch 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 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 wird die Datei 2 Tage nach der Ausgabe des Befehls um 14.00 Uhr verschoben. Das at
Handbuch bietet einige Optionen (Sie können eine Zeit, Tage, Wochen, Monate, Jahre, Schlüsselwörter wie next oder Add / Subtract Periodes verwenden). Machen Sie einige Tests mit der Option, um sicherzustellen, dass Sie sie verstehen. (Beachten Sie Folgendes: Es ist wichtig, wenn Sie at
am Tag vor oder nach 14 Uhr beginnen.)
at
Überlebt auch Neustarts, ist also ein gutes Werkzeug für diese Art von Dingen. Und Sie können den Zugriff 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 diesen Benutzer verrückt machen (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 habe mv
ich als ersten Befehl das "." davor macht es auch unsichtbar. Bei richtiger Annahme können Sie ein "." irgendwo. Vorsicht mit dem "~", dieses wird von Editoren wie gEdit als "Backup" -Funktion verwendet.
at
ist nicht standardmäßig installiert. Installieren
sudo apt-get install at
/etc/sudoers.d
, die von Ihren anderen Benutzern nicht verwendet wird.mv
, sollte es nicht gewesen seincp
.