Respuestas:
El usuario debe tener
ejecutar permiso para toda la ruta del directorio ( /root
solo aquí )
ejecutar permiso para el archivo
permiso de lectura para el archivo
Puede ser una buena idea dejar /root
intactos y crear (o usar) un directorio diferente para este propósito (por ejemplo /usr/local/bin
). Puede hacer que user1
el único usuario que tenga permiso para ejecutar el script lo convierta en el propietario del archivo o lo deje root
como propietario y grupo, establezca los permisos de acceso simple ( chmod
) 770
y agregue user1
con ACL ( setfacl
).
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/sudoers
entrada 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 root
a su sudo
orden.
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á.
sudo
comando que escribió?