Cambiar permisos de ficheros y directorios
Los permisos de un archivo o directorio pueden ser modificados por el propietario o por el administrador del sistema con el comando chmod. Hay tres formas de modificar los permisos
Contenidos
12.1 Usando el + o –
Con el símbolo de + pondremos un permiso y con el del – lo quitamos. Para hacer referencia al tipo de permiso usamos las letras que ya conocemos r, w y x. Y para indicar a qué bloque de permisos se lo queremos poner o quitar usamos u para el usuario, g para el grupo, o para los demás usuarios y a para todos). Primero se indica a quién le modificamos los permisos, luego el + o el – y después los permisos que añadimos o quitamos. Si queremos cambiar más de un bloque de permisos, los separamos por comas
Ejemplos:
- chmod
u+w carta.txt
Concedemos el permiso de escritura al propietario - chmod
g+x,o-rw fichero.sh
Ponemos el permiso de ejecución al grupo y quitamos el de lectura y escritura al resto de usuarios - chmod
u-w,a+r carta.txt
Quitamos el permiso de escritura al usuario y ponemos el de lectura a todos.
Esta es la forma más específica de cambiar permisos ya que puede modificar uno solo sin alterar los que ya tiene.
12.2 Usando el =
El método de funcionamiento es igual que el explicado anteriormente, pero ahora en lugar de poner o quitar permisos de forma independiente, le indico únicamente los que tiene concedidos (si no pongo algún permiso es que se lo estoy quitando).
Ejemplos:
- chmod
u=r carta.txt
Indico que el usuario sólo tiene el permiso de lectura - chmod
g=rw,o= fichero.sh
El grupo tiene lectura y escritura y los otros ningún permiso.
En este ejemplo se visualiza la diferencia entre usar el signo de más o menos y el igual. Si ponemos g+w estamos añadiendo el permiso sin modificar los demás, pero con g=w indicamos los que deben estar y los que se deben eliminar, por lo tanto afecta a todo el bloque de permisos, en este caso al grupo (g).
Ambos métodos se pueden combinar, pudiendo construir expresiones como:
- chmod u=rw,g+w,o-rwx ejemplo
- chmod a-w,o= ejemplo
- chmod u=r,g+w,o-r+w ejemplo
12.3 Utilizando números en decimal
Pero la forma más usual de cambiar los permisos de un fichero es mediante números correspondientes a la codificación binaria de los permisos. Los permisos para el usuario propietario, grupo y resto se dividen en grupos de tres bits y estos se representan con su correspondiente número en decimal.
RWX | RWX | RWX |
Propietario | Grupo | Resto |
Pondremos los permisos en binario indicando según la posición un 1 si el permiso está concedido y un 0 si no está concedido. De tal forma que si quiero conceder permisos de lectura y escritura al usuario, sólo de lectura al grupo y ninguno al resto, pondré 110 100 000 lo que corresponde a RW- R– —. Después obtengo el número en decimal de cada bloque de permisos 110 es 5, 100 es 4 y 000 es 0, por lo tanto el número resultante es 750 y eso es lo que utilizo en la orden chmod
Ejemplos:
- chmod
544 carta.txt
Permisos de lectura y escritura para el usuario, lectura para el grupo y lectura para el resto - chmod
710 fichero.sh
Todos los permisos para el usuario, sólo ejecución para el grupo y ninguno para el resto
Explicaciones en video
Etiqueta:permisos, portada, sistema de ficheros