ls<\/code> enumere los permisos de archivo para archivos y directorios.<\/p>\nls -l<\/pre>\n<\/p>\n
En cada l\u00ednea, el primer car\u00e1cter identifica el tipo de entrada que se est\u00e1 enumerando. Si es un gui\u00f3n (-<\/code>) es un archivo. si es la letra d<\/code> es un directorio.<\/p>\nLos nueve caracteres siguientes representan la configuraci\u00f3n de los tres conjuntos de permisos.<\/p>\n
\n- Los tres primeros caracteres muestran los permisos del usuario propietario del archivo (Permisos de usuario<\/em>).<\/li>\n
- Los tres caracteres del medio muestran los permisos para los miembros del grupo del archivo (permisos de grupo<\/em>).<\/li>\n
- Los \u00faltimos tres caracteres muestran los permisos para cualquier persona que no est\u00e9 en las dos primeras categor\u00edas (otros permisos<\/em>).<\/li>\n<\/ul>\n
Hay tres caracteres en cada conjunto de permisos. Los caracteres son indicadores de la presencia o ausencia de uno de los permisos. Son un gui\u00f3n (-<\/code>) o una carta. Si el car\u00e1cter es un gui\u00f3n, significa que no se otorga el permiso. Si el personaje es un r<\/code>, w<\/code>o un x<\/code>ese permiso ha sido concedido.<\/p>\nLas letras representan:<\/p>\n
\n- r<\/em>: permisos de lectura. El archivo se puede abrir y ver su contenido.<\/li>\n
- w<\/em>: Permisos de escritura. El archivo se puede editar, modificar y eliminar.<\/li>\n
- X<\/em>: Permisos de ejecuci\u00f3n. Si el archivo es un script o un programa, se puede ejecutar (ejecutar).<\/li>\n<\/ul>\n
Por ejemplo:<\/p>\n
\n-
---<\/code> significa que no se han concedido permisos en absoluto.<\/li>\n-
rwx<\/code> significa que se han concedido todos los permisos. Los indicadores de lectura, escritura y ejecuci\u00f3n est\u00e1n todos presentes.<\/li>\n<\/ul>\nEn nuestra captura de pantalla, la primera l\u00ednea comienza con un d<\/code>. Esta l\u00ednea se refiere a un directorio llamado \u00abarchivo\u00bb. El propietario del directorio es \u201cdave\u201d, y el nombre del grupo al que pertenece el directorio tambi\u00e9n se llama \u201cdave\u201d.<\/p>\nLos siguientes tres caracteres son los permisos de usuario para este directorio. Estos muestran que el propietario tiene permisos completos. los r<\/code>, w<\/code>y x<\/code> todos los personajes est\u00e1n presentes. Esto significa que el usuario dave tiene permisos de lectura, escritura y ejecuci\u00f3n para ese directorio.<\/p>\nEl segundo conjunto de tres caracteres son los permisos de grupo, estos son r-x<\/code>. Estos muestran que los miembros del grupo dave tienen permisos de lectura y ejecuci\u00f3n para este directorio. Eso significa que pueden enumerar los archivos y su contenido en el directorio, y pueden cd<\/code> (ejecutar) en ese directorio. No tienen permisos de escritura, por lo que no pueden crear, editar o eliminar archivos.<\/p>\nEl conjunto final de tres personajes tambi\u00e9n r-x<\/code>. Estos permisos se aplican a las personas que no se rigen por los dos primeros conjuntos de permisos. Estas personas (llamadas \u201cotros\u201d) tienen permisos de lectura y ejecuci\u00f3n en este directorio.<\/p>\nEntonces, para resumir, los miembros del grupo y otros tienen permisos de lectura y ejecuci\u00f3n. El propietario, un usuario llamado dave, tambi\u00e9n tiene permisos de escritura.<\/p>\n
Para todos los dem\u00e1s archivos (aparte del archivo de script mh.sh), Dave y los miembros del grupo Dave tienen propiedades de lectura y escritura en los archivos, y los dem\u00e1s solo tienen permisos de lectura.<\/p>\n
Para el caso especial del archivo de script mh.sh, el propietario Dave y los miembros del grupo tienen permisos de lectura, escritura y ejecuci\u00f3n, y los dem\u00e1s solo tienen permisos de lectura y ejecuci\u00f3n.<\/p>\n
Comprensi\u00f3n de la sintaxis de permisos<\/h2>\n
Usar chmod<\/code> para establecer permisos, necesitamos decirle:<\/p>\n\n- Qui\u00e9n:<\/em> Para qui\u00e9n estamos configurando permisos.<\/li>\n
- Qu\u00e9<\/em>: \u00bfQu\u00e9 cambio estamos haciendo? \u00bfEstamos agregando o eliminando el permiso?<\/li>\n
- Cual<\/em>: \u00bfCu\u00e1l de los permisos estamos configurando?<\/li>\n<\/ul>\n
Usamos indicadores para representar estos valores y formamos breves \u00abdeclaraciones de permisos\u00bb como u+x<\/code>donde \u00abu\u00bb significa \u00abusuario\u00bb (qui\u00e9n), \u00ab+\u00bb significa agregar (qu\u00e9) y \u00abx\u00bb significa el permiso de ejecuci\u00f3n (cu\u00e1l).<\/p>\nLos valores de \u00abqui\u00e9n\u00bb que podemos usar son:<\/p>\n
\n- tu<\/em>: Usuario, es decir, el propietario del archivo.<\/li>\n
- gramo<\/em>: Grupo, es decir, miembros del grupo al que pertenece el archivo.<\/li>\n
- o<\/em>: Otros, es decir, personas no gobernadas por el
u<\/code> y g<\/code> permisos<\/li>\n- a<\/em>: Todo, lo que significa todo lo anterior.<\/li>\n<\/ul>\n
Si no se utiliza ninguno de estos, chmod<\/code> se comporta como si \u201ca<\/code>\u00bb ha sido usado.<\/p>\nLos valores de \u00abqu\u00e9\u00bb que podemos usar son:<\/p>\n
\n- \u2013<\/em>: Signo menos. Elimina el permiso.<\/li>\n
- +<\/em>: Signo de m\u00e1s. Otorga el permiso. El permiso se agrega a los permisos existentes. Si desea tener este permiso y solo este conjunto de permisos, use el
=<\/code> opci\u00f3n, que se describe a continuaci\u00f3n.<\/li>\n- =<\/em>: Signo de igual. Establezca un permiso y elimine otros.<\/li>\n<\/ul>\n
Los valores de \u00abcu\u00e1l\u00bb que podemos usar son:<\/p>\n
\n- r<\/em>: El permiso de lectura.<\/li>\n
- w<\/em>: El permiso de escritura.<\/li>\n
- X<\/em>: El permiso de ejecuci\u00f3n.<\/li>\n<\/ul>\n
Configuraci\u00f3n y modificaci\u00f3n de permisos<\/h2>\n
Digamos que tenemos un archivo en el que todos tienen permisos completos.<\/p>\n
ls -l new_ file.txt<\/pre>\n<\/p>\n
Queremos que el usuario dave tenga permisos de lectura y escritura y que el grupo y otros usuarios solo tengan permisos de lectura. Podemos hacerlo usando el siguiente comando:<\/p>\n
chmod u=rw,og=r new_file.txt<\/pre>\n<\/p>\n
El uso del operador \u00ab=\u00bb significa que eliminamos los permisos existentes y luego establecemos los especificados.<\/p>\n
vamos a comprobar el nuevo permiso en este archivo:<\/p>\n
ls -l new_file.txt<\/pre>\n<\/p>\n
Se eliminaron los permisos existentes y se configuraron los nuevos, como esper\u00e1bamos.<\/p>\n
\u00bfQu\u00e9 hay de agregar un permiso? sin que<\/em> \u00bfEliminar la configuraci\u00f3n de permisos existente? Tambi\u00e9n podemos hacerlo f\u00e1cilmente.<\/p>\nDigamos que tenemos un archivo de script que hemos terminado de editar. Necesitamos hacerlo ejecutable para todos los usuarios. Sus permisos actuales se ven as\u00ed:<\/p>\n
ls -l new_script.sh<\/pre>\n<\/p>\n
Podemos agregar el permiso de ejecuci\u00f3n para todos con el siguiente comando:<\/p>\n
chmod a+x new_script.sh<\/pre>\n<\/p>\n
Si echamos un vistazo a los permisos, veremos que el permiso de ejecuci\u00f3n ahora se otorga a todos, y los permisos existentes a\u00fan est\u00e1n vigentes.<\/p>\n
ls -l new_script.sh<\/pre>\n<\/p>\n
Podr\u00edamos haber logrado lo mismo sin la \u00aba\u00bb en la declaraci\u00f3n \u00aba+x\u00bb. El siguiente comando habr\u00eda funcionado igual de bien.<\/p>\n
chmod +x new_script.sh<\/pre>\nConfiguraci\u00f3n de permisos para varios archivos<\/h2>\n
Podemos aplicar permisos a varios archivos a la vez.<\/p>\n
Estos son los archivos en el directorio actual:<\/p>\n
ls -l<\/pre>\n<\/p>\n
Digamos que queremos eliminar los permisos de lectura para los \u00abotros\u00bb usuarios de los archivos que tienen una extensi\u00f3n \u00ab.page\u00bb. Esto lo podemos hacer con el siguiente comando:<\/p>\n
chmod o-r *.page<\/pre>\n<\/p>\n
Veamos qu\u00e9 efecto ha tenido:<\/p>\n
ls -l<\/pre>\n<\/p>\n
Como podemos ver, el permiso de lectura ha sido eliminado de los archivos \u201c.page\u201d para la categor\u00eda de usuarios \u201cotros\u201d. Ning\u00fan otro archivo se ha visto afectado.<\/p>\n
Si hubi\u00e9ramos querido incluir archivos en subdirectorios, podr\u00edamos haber usado el -R<\/code> opci\u00f3n (recursiva).<\/p>\nchmod -R o-r *.page<\/pre>\nTaquigraf\u00eda num\u00e9rica<\/h2>\n
Otra forma de usar chmod<\/code> es proporcionar los permisos que desea otorgar al propietario, grupo y otros como un n\u00famero de tres d\u00edgitos. El d\u00edgito m\u00e1s a la izquierda representa los permisos para el propietario. El d\u00edgito del medio representa los permisos de los miembros del grupo. El d\u00edgito m\u00e1s a la derecha representa los permisos para los dem\u00e1s.<\/p>\nLos d\u00edgitos que puede usar y lo que representan se enumeran aqu\u00ed:<\/p>\n
\n- 0: (000) Sin permiso.<\/li>\n
- 1: (001) Permiso de ejecuci\u00f3n.<\/li>\n
- 2: (010) Permiso de escritura.<\/li>\n
- 3: (011) Permisos de escritura y ejecuci\u00f3n.<\/li>\n
- 4: (100) Permiso de lectura.<\/li>\n
- 5: (101) Permisos de lectura y ejecuci\u00f3n.<\/li>\n
- 6: (110) Permisos de lectura y escritura.<\/li>\n
- 7: (111) Permisos de lectura, escritura y ejecuci\u00f3n.<\/li>\n<\/ul>\n
Cada uno de los tres permisos est\u00e1 representado por uno de los bits en el equivalente binario del n\u00famero decimal. As\u00ed que 5, que es 101 en binario, significa leer y ejecutar. 2, que es 010 en binario, significar\u00eda el permiso de escritura.<\/p>\n
Con este m\u00e9todo, establece los permisos que desea tener; no agrega estos permisos a los permisos existentes. Entonces, si los permisos de lectura y escritura ya estuvieran establecidos, tendr\u00eda que usar 7 (111) para agregar permisos de ejecuci\u00f3n. El uso de 1 (001) eliminar\u00eda los permisos de lectura y escritura y agregar\u00eda el permiso de ejecuci\u00f3n.<\/p>\n
Agreguemos el permiso de lectura nuevamente en los archivos \u00ab.page\u00bb para la categor\u00eda de otros usuarios. Tambi\u00e9n debemos establecer los permisos de usuario y grupo, por lo que debemos establecerlos en lo que ya son. Estos usuarios ya tienen permisos de lectura y escritura, que son 6 (110). Queremos que los \u00abotros\u00bb tengan permisos de lectura y, por lo que deben establecerse en 4 (100).<\/p>\n
El siguiente comando lograr\u00e1 esto:<\/p>\n
chmod 664 *.page<\/pre>\n<\/p>\n
Esto establece los permisos que requerimos para el usuario, los miembros del grupo y otros seg\u00fan lo que requerimos. Los usuarios y miembros del grupo tienen sus permisos restablecidos a lo que ya eran, y los dem\u00e1s tienen el permiso de lectura restaurado.<\/p>\n
ls -l<\/pre>\n<\/p>\n
Opciones avanzadas<\/h2>\n
Si lee la p\u00e1gina man de chmod<\/code> Ver\u00e1 que hay algunas opciones avanzadas relacionadas con los bits SETUID y SETGID, y con la eliminaci\u00f3n restringida o el bit \u00absticky\u00bb.<\/p>\nPara el 99% de los casos necesitar\u00e1s chmod<\/code> para, las opciones descritas aqu\u00ed lo tendr\u00e1n cubierto.<\/p>\n<\/div>\n