Gibt es eine Möglichkeit, dem Benutzer die Ausführung von Befehlen nur für 2 Tage zu erlauben?

Gibt es eine Möglichkeit, dem Benutzer die Ausführung von Befehlen nur für 2 Tage zu erlauben?

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 atam 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 mvhabe 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.


atist nicht standardmäßig installiert. Zur Installation

sudo apt-get install at

verwandte Informationen