Esiste un modo per consentire all'utente di eseguire comandi solo per 2 giorni


13

Come dare un comando sudo permesso per un tempo specifico? c'è un modo per dare i diritti per eseguire un comando specifico per 2 giorni solo nel file sudoers.

Risposte:


18

Il file sudoers non supporta la limitazione basata sul tempo ma esiste un metodo semplice. Crea un file con le tue modifiche in /etc/sudoers.d/(con sudo visudo -f /etc/sudoers.d/yourfile):

Aggiungi a un file (esempio:) file.shil seguente

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

E questo disabiliterà le tue modifiche:

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

Esempio:

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 questo caso, il file verrà spostato alle 14:00 2 giorni dopo l'emissione del comando. Il at manuale ha alcune opzioni (puoi usare un tempo, giorni, settimane, mesi, anni, parole chiave come il prossimo o aggiungere / sottrarre periodi). Fai alcuni test con l'opzione per assicurarti di capirlo (Qualcosa da considerare: è importante se inizi il atprima o dopo le 14:00 del giorno stesso.)

atsopravvive anche ai riavvi, quindi è un buon strumento da usare per questo tipo di cose. E puoi attivare / disattivare l'accesso ...

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

e far impazzire quell'utente (ora posso farlo).

Il 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.

Se leggo questo correttamente non eseguirà alcun file con un "." ovunque nel nome. Quindi il primo mvcomando ho inserito il "." di fronte rendendolo anche invisibile. Se assunto correttamente, è possibile inserire un "." dovunque. Attento a "~", quello viene utilizzato come funzione di "backup" da editor come gEdit.


atnon è installato per impostazione predefinita. Installare

sudo apt-get install at

Grazie, ci ho già pensato, ma la situazione è che più utenti utilizzano il file per il proprio scopo, quindi non è possibile eseguire il backup e il ripristino del file sudoers ogni volta che altri utenti stanno modificando lo stesso file sudoers, quindi quando ripristino il vecchio file tutto il le modifiche apportate da altri utenti
spariranno

2
Che ne dici di questo signore? Oh, e potrei suggerire ai tuoi utenti multipli di usare loro stessi sudoers.d con il proprio nome file. Sembra molto meglio della modifica dei sudoer.
Rinzwind,

@AbbasKapasi crea un nuovo file /etc/sudoers.dche non verrà utilizzato dagli altri utenti.
muru,

Penso che il comando usato per tutta la risposta avrebbe dovuto essere mv, no cp.
Cthulhu,

3
dove vedi cp? fischi innocentemente
Rinzwind
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.