Para establecer los permisos de archivo, puede utilizar el chmod
comando. Los permisos mostrados están básicamente divididos en 3 partes, cada una de las cuales consta de 3 caracteres: un triple para el propietario, el grupo y para "otros". Normalmente, cada triple contiene definiciones para leer, escribir y ejecutar un archivo; así que rwx
significa "puede leer, escribir y ejecutar", mientras que r--
diría que "sólo puede leer".
Los 9 caracteres resultantes suelen ir precedidos de otro, dando información del tipo del "archivo": d)irectorio y l)tinta son los ejemplos más comunes. Una vez más, si no hay una "condición especial" que coincida, un -
indica un "archivo normal".
Basándonos en eso, vamos a tomar su entrada: -rwsr-sr-x
obviamente describe un "archivo normal" (comenzando con -
), legible ( r
) por propietario, grupo y otros, escrito sólo por el propietario y ejecutable por "otros" - mientras que el propietario y el grupo tienen un s
En cambio, el x
para la ejecución. Esto significa "suid", eleva a la persona que llama al nivel del propietario/grupo del archivo.
Aprovechando el hecho de que los permisos se pueden establecer "bit-wise" ( x
=1, w
=2, r
=4, suid user=4, group=2), después de mi largo "despotricar" finalmente el comando que debería hacer el truco:
chmod 6774 su
Debería establecer los permisos que su pregunta muestra. Si "calculé mal", tienes toda la información para volver a calcular por ti mismo ahora :)
Pistas adicionales de los comentarios:
En lugar de calcular la "máscara de bits", también se pueden usar nombres simbólicos - como Dan Hulme señaló, y como se explica, por ejemplo, en la chmod manpage :
- definiendo a quién conceder: (u)ser / (g)roup / (o)thers / (a)ll
- definiendo qué conceder: (r)ead / (w)rite / e(x)ecute / (s)uid
- definiendo si (+)conceder o (-)revocar
Así que las dos órdenes siguientes deberían ser similares, siempre que no se hayan concedido otras cosas antes:
chmod 6774 su
chmod u+rws g+rs o+rx su
La diferencia se hace evidente en caso de que, por ejemplo, antes de que "otros" tuvieran también permiso de escritura: mientras que el primer comando (usando una máscara de bits) establece el permiso explícitamente para coincidir con las "concesiones" definidas (y por lo tanto eliminaría ese permiso de escritura), el simbólico "hace una diferencia" (en el ejemplo, sólo añade los permisos especificados a lo que estaba allí antes, para que el permiso de escritura no fuera eliminado).