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

13

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

    
posta Abbas Kapasi 09.10.2015 - 08:20
fonte

1 risposta

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.sh ) il seguente

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

E ciò 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 sposterebbe il file alle 2 del pomeriggio 2 giorni dopo aver impartito il comando. Il at manuale ha alcune opzioni (puoi usare un tempo, giorni, settimane , mesi, anni, parole chiave come il prossimo o aggiungere / sottrarre i periodi). Esegui alcuni test con l'opzione per assicurarti di aver capito (qualcosa da considerare: è importante se inizi il at prima o dopo le 14:00 del giorno stesso.)

Anche

at sopravvive anche ai riavvii, quindi è un buon strumento da utilizzare per questo tipo di cose. Ed è possibile attivare 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 fare in modo che l'utente impazzisca (wtf 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 lo leggo correttamente, non eseguirà alcun file con un "." ovunque nel nome. Quindi il 1 ° comando mv ho inserito il "." di fronte rendendolo anche invisibile. Se correttamente assunto, puoi inserire un "." dovunque. Attento con il "~", quello è usato come funzione di "backup" da editori come gEdit.

at non è installato per impostazione predefinita. Per installare

sudo apt-get install at
    
risposta data Rinzwind 09.10.2015 - 09:14
fonte

Leggi altre domande sui tag