Estoy intentando proporcionar acceso limitado a determinadas funciones mediante enlaces, scripts bash y SUID. El script SUID no se ejecuta con acceso root

Estoy intentando proporcionar acceso limitado a determinadas funciones mediante enlaces, scripts bash y SUID. El script SUID no se ejecuta con acceso root

Edita estoEl script habilitado con bit adhesivo no puede escribir en un archivo raízparece ser un problema similar

EDITAR:¿Cómo puedo usar SetUID en un script de shell para ejecutarlo como usuario no root?es muy similar también.

Tengo un script, llamémoslo read.sh. Tengo un archivo, llamémoslo secreto.

# cd /home/normie
# echo "some stuff" > secret
# echo "#!/bin/bash" > read.sh
# echo "cat secret" >> read.sh
# chmod 600 secret
# chmod 4755 read.sh
# su normie
$ ./read.sh
<<Error about not having access to secret>>

¿Me he perdido algo? Pensé que el bit SUID hacía que el script se ejecutara como propietario. Cuando ejecuto lo siguiente

# echo "touch newfile" > sumfile.sh
# chmod 4755 sumfile.sh
# su normie
$ ./sumfile.sh
$ ls -alh
<<newfile shows as owned by root>>

¿Qué está pasando aquí y cómo hago para que funcione como quiero? Como quiero ser, quiero que los usuarios habituales ejecuten un script en particular con acceso completo a la raíz. (Pensé que eso era lo que hacía la parte suida)

Respuesta1

Instalar sudoapt install sudo

Hacer que los usuarios relevantes formen parte de algún grupogroupadd group && usermod -g group user

Agregue lo siguiente a /etc/sudoers%group (ALL)=(root:root) NOPASSWD:/path/to/script.sh

Agregar un alias a .bashrcalias ALIAS='sudo /path/to/script.sh'" >> ~user/.bashrc

Todos los miembros del grupo ahora pueden ejecutar el script en cuestión como root.

Respuesta robada descaradamente de¿Cómo puedo usar SetUID en un script de shell para ejecutarlo como usuario no root?(usuario9517)

información relacionada