parece que tengo algunos problemas para entender la semántica del bit SUID, tal vez alguien me puede ayudar a aclarar la situación.Semántica de SUID (Set-User-ID)
Mi comprensión de la semántica del bit SUID es la siguiente: Cuando configuro el bit SUID con un archivo, entonces el archivo se ejecutará como el propietario del archivo y no como la persona que llama del archivo. Así que para probar este comportamiento escribí la siguiente secuencia de comandos de Python:
#!/usr/bin/python3 -O
import os
def main():
print('Real UserID: %d' % os.getuid())
print('Effective UserID: %d' % os.geteuid())
if __name__ == '__main__':
main()
Después de eso he creado un usuario llamado "testuser" con la "testuser" grupo correspondiente y se ajustan los permisos de archivo (archivo usuarioprueba chown, archivo usuarioprueba chgrp, chmod u + s, archivo g + x). Luego agregué mi usuario principal al grupo "testuser" para poder ejecutar el archivo como miembro del grupo. Después de todo lo que los permisos de archivo se veía así:
-rwsr-xr-- 1 testuser testuser 168 2011-04-02 13:35 procred.py*
Así que cuando estoy registrado como testuser el guión produce la salida:
Real UserID: 1001
Effective UserID: 1001
... y cuando me funciono con la escritura como mi principal usuario las salidas de guión:
Real UserID: 1000
Effective UserID: 1000
Ahora bien, como de mi comprensión del guión deberían haber ejecutarse como el usuario con el UID 1001 (el propietario del archivo) en la última ejecución. ¿Estoy equivocado con todo el concepto o cuál es mi error?