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

bigote
fuente
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.

Orión
fuente
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).

Hauke ​​Laging
fuente
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á.


fuente