
Wie erteilt man einem Sudo-Befehl die Berechtigung für eine bestimmte Zeit? Gibt es eine Möglichkeit, in der Sudoers-Datei Rechte zum Ausführen eines bestimmten Befehls nur für 2 Tage zu erteilen?
Antwort1
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 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 um 14 Uhr, also 2 Tage nach der Eingabe des Befehls, verschoben.at
Handbuchhat einige Optionen (Sie können eine Uhrzeit, Tage, Wochen, Monate, Jahre, Schlüsselwörter wie „nächste“ oder „Perioden addieren/subtrahieren“ verwenden). Führen Sie einige Tests mit der Option durch, um sicherzustellen, dass Sie es verstanden haben (etwas zu beachten: Es ist wichtig, ob Sie at
am Tag selbst vor oder nach 14 Uhr beginnen.)
at
übersteht auch Neustarts und ist daher ein gutes Tool für solche Dinge. 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 den Benutzer zum Ausrasten bringen (was zum Teufel, jetzt kann ich das tun).
Die README-Datei 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 verstehe, werden keine Dateien ausgeführt, die irgendwo im Namen einen "." haben. Deshalb mv
habe ich den "." vor den ersten Befehl gesetzt, sodass er auch unsichtbar ist. Wenn ich richtig angenommen habe, kann man einen "." überall setzen. Vorsicht mit dem "~", das wird von Editoren wie gEdit als "Backup"-Funktion verwendet.
at
ist nicht standardmäßig installiert. Zur Installation
sudo apt-get install at