Ejecutar script como un usuario diferente de root [cerrado]


11

Desde el usuario root, ¿cómo puedo otorgar permisos a otro usuario para ejecutar el archivo /root/script.sh?

La idea es ejecutar el script como sudo -u user1 /root/script.sh


1
La pregunta no está completamente clara: "¿eres root y quieres ejecutar el script como usuario1" o "eres user1 y quieres ejecutar el script como root"? Si el primero es el caso, ¿cuál es el problema con el sudocomando que escribió?
michas

Echa un vistazosu(1)
vonbrand

Respuestas:


11

Debo decir que nunca me gustó sudo(especialmente sus configuraciones). Simple su:

su -c 'command' - user

Ejecutado desde la raíz, no solicitará contraseña.


0

El usuario debe tener

  1. ejecutar permiso para toda la ruta del directorio ( /rootsolo aquí )

  2. ejecutar permiso para el archivo

  3. permiso de lectura para el archivo

Puede ser una buena idea dejar /rootintactos y crear (o usar) un directorio diferente para este propósito (por ejemplo /usr/local/bin). Puede hacer que user1el único usuario que tenga permiso para ejecutar el script lo convierta en el propietario del archivo o lo deje rootcomo propietario y grupo, establezca los permisos de acceso simple ( chmod) 770y agregue user1con ACL ( setfacl).


0

Si su script está ubicado en el directorio raíz, entonces

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 solo puede ser root.

Su /etc/sudoersentrada se verá como

Cmnd_Alias SCRIPT=/root/script.sh

# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT

Normalmente editaría el archivo con visudo

Entonces tampoco necesita poner -u roota su sudoorden.

El %significa el grupo de usuarios. Cuando lo deja fuera, solo el usuario puede ejecutar el comando. Si desea que un grupo de usuarios lo ejecute, déjelo como está.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.