¿Cómo dar permiso a un comando sudo por 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?
El archivo sudoers no admite restricciones basadas en el tiempo, pero hay un método fácil. Cree un archivo con sus 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 alteraciones:
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. El at
manual tiene algunas opciones (puede usar una hora, días, semanas, meses, años, palabras clave como siguiente o sumar / restar períodos). Realice algunas pruebas con la opción de asegurarse de que lo comprende (Algo que debe tener en cuenta: es importante que comience at
antes o después de las 2 p. M. Del mismo día).
at
tambié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 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 el primer mv
comando puse el "." en frente haciéndolo también invisible. Si se asume correctamente, puede colocar un "." en cualquier sitio. Cuidado con el "~", ese es usado como una función de "respaldo" por editores como gEdit.
at
no está instalado por defecto Instalar
sudo apt-get install at
/etc/sudoers.d
que no será utilizado por tus otros usuarios.mv
, nocp
.