Respuestas:
El usuario debe tener
ejecutar permiso para toda la ruta del directorio ( /rootsolo aquí )
ejecutar permiso para el archivo
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).
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á.
sudocomando que escribió?