Cómo otorgar a un usuario normal privilegios limitados a un directorio específico y ejecutar archivos sin sudo

Cómo otorgar a un usuario normal privilegios limitados a un directorio específico y ejecutar archivos sin sudo

Perdón por mis expresiones y espero haber descrito mi pregunta lo más claramente posible.

Utilizando el sistema Red Hat. Actualmente tengo un superusuario en el sistema y tengo que hacerlo sudo python cuckoo.pypara poder ejecutar este programa Python, y lee y escribe en un directorio específico, llamado "cuco".

Ahora quiero darle a un usuario normal acceso a este "cuckoo.py", así como al directorio de trabajo. Sin embargo, mientras tanto, tampoco quiero otorgarle a este usuario privilegios de superusuario porque pueden dañar mi sistema.

Entonces, ¿cómo puedo permitir que el usuario normal llame directamente python cuckoo.pyy no reciba ningún error que diga "Permiso denegado"?

Se agradece cualquier ayuda y comentario. Y si tengo algunas frases con palabras realmente malas que no queden claras, indíquelas también y haré todo lo posible para explicarlas con más detalles.

¡Gracias!

EDITAR: Tal vez mis palabras no sean del todo claras... No quiero incluir a este usuario normal en "root". Actualmente, creé un grupo y agregué este usuario normal al grupo, y el permiso del directorio está configurado en 755. Pero quiero que el grupo tenga permiso de escritura para poder funcionar cuckoo.pysin problemas. Entonces me pregunto cómo hacer que tanto el root como este grupo tengan permiso de lectura, escritura y ejecución.

Respuesta1

Si la única razón por la que el script debe ejecutarse como root es para leer/escribir en su directorio específico, hay dos formas de resolver esto (para permitir que un usuario normal ejecute el script correctamente):

  1. Creó un grupo, haga que la carpeta en la que está trabajando sea propiedad de ese grupo y agregue el usuario a ese grupo.
sudo groupadd <groupname>
sudo usermod -a -G <groupname> <username>
sudo chgrp -R <groupname> <folder>
  1. Simplemente cambie el permiso mundial de la carpeta (no recomendado si no desea que ningún usuario de su computadora pueda acceder a su cuckoocarpeta).
sudo chmod -R 664 ./cuckoo

Este permiso permite lectura y escritura para el propietario, el grupo y el mundo.

Respuesta2

Parece que pude haber malinterpretado la pregunta. Si el script debe ejecutarse como root de todos modos y desea que un usuario normal pueda ejecutarlo, puede seguir las instrucciones que se encuentran enesta pregunta de AskUbuntu.

Tenga en cuenta que necesitará tener los permisos bloqueados firmemente en este archivo para que sea seguro.

Haga que el archivo sea propiedad de root y root del grupo:

sudo chown root.root <my script>

Ahora configure el adhesivo pero, hágalo ejecutable para todos y escribible solo por root:

sudo chmod 4755 <my script>

Tenga en cuenta que si este script permitirá ingresar o editar archivos, esto también se hará como root.

El bit SetUID hace que un script o binario siempre se ejecute como propietario del archivo/binario; un ejemplo de dicho binario es 'passwd'.

información relacionada