¿Hay alguna forma de permitir al usuario ejecutar comandos solo durante 2 días?

¿Hay alguna forma de permitir al usuario ejecutar comandos solo durante 2 días?

¿Cómo dar permiso a un comando sudo durante un tiempo específico? ¿Hay alguna forma de otorgar derechos para ejecutar un comando específico durante 2 días solo en el archivo sudoers?

Respuesta1

El archivo sudoers no admite restricciones basadas en el tiempo, pero existe un método sencillo. Crea un archivo con tus modificaciones en /etc/sudoers.d/(con sudo visudo -f /etc/sudoers.d/yourfile):

Agregue a un archivo (ejemplo: file.sh) lo siguiente

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

Y esto deshabilitará sus modificaciones:

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

Ejemplo:

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

En este caso, movería el archivo a las 2 p. m., 2 días después de emitir el comando. Elat manualtiene algunas opciones (puede usar una hora, días, semanas, meses, años, palabras clave como siguiente o sumar/restar períodos). Tenga algunas pruebas con la opción de asegurarse de que lo comprende (Algo a considerar: importa si comienza atantes o después de las 2 p. m. del día en sí).

atTambién sobrevive a los reinicios, por lo que es una buena herramienta para este tipo de cosas. Y puedes alternar el acceso...

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

y hacer que ese usuario se vuelva loco (wtf ahora puedo hacer esto).

El archivo LÉAME en /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.

Si leo esto correctamente, no ejecutará ningún archivo con un "." en cualquier parte del nombre. Entonces, en el primer mvcomando coloqué "." delante haciéndolo también invisible. Si se asume correctamente, puede colocar un "." en cualquier lugar. Tenga cuidado con el "~", que editores como gEdit utilizan como función de "copia de seguridad".


atno está instalado de forma predeterminada. Instalar

sudo apt-get install at

información relacionada