Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Permiso Identifica
– Archivo
d Directorio
Los siguientes nueve caracteres son los permisos que se les concede a los usuarios del
sistema. Cada tres caracteres, se referencian los permisos de propietario, grupo y resto
de usuarios.
Los caracteres que definen estos permisos son los siguientes:
Permiso Identifica
– Sin permiso
r Permiso de lectura
w Permiso de escritura
x Permiso de ejecución
Permisos para archivos
<° Lectura: permite, fundamentalmente, visualizar el contenido del archivo.
<° Escritura: permite modificar el contenido del archivo.
<° Ejecución: permite ejecutar el archivo como si de un programa ejecutable se tratase.
Permisos para directorios
<° Lectura: Permite saber qué archivos y directorios contiene el directorio que tiene este
permiso.
<° Escritura: permite crear archivos en el directorio, bien sean archivos ordinarios o
nuevos directorios. Se pueden borrar directorios, copiar archivos en el directorio,
mover, cambiar el nombre, etc.
<° Ejecución: permite situarse sobre el directorio para poder examinar su contenido,
copiar archivos de o hacia él. Si además se dispone de los permisos de escritura y
lectura, se podrán realizar todas las operaciones posibles sobre archivos y directorios.
Nota: Si no se dispone del permiso de ejecución, no podremos acceder a dicho
directorio (aunque utilicemos el comando “cd”), ya que esta acción será denegada.
También permite delimitar el uso de un directorio como parte de una ruta (como cuando
pasamos la ruta de un archivo que se encuentra en dicho directorio como referencia.
Supongamos que queremos copiar el archivo “X.ogg” el cual se encuentra en la carpeta
“/home/perseo/Z” -para lo cual la carpeta “Z” no tiene permiso de ejecución-, haríamos
lo siguiente:
$ cp /home/perseo/Z/X.ogg /home/perseo/Y/
obteniendo con esto un mensaje de error diciéndonos que no tenemos los permisos
suficientes para acceder al archivo :D). Si el permiso de ejecución de un directorio está
desactivado, se podrá ver su contenido (si se cuenta con permiso de lectura), pero no se
podrá acceder a ninguno de los objetos contenidos en él, pues para ello este directorio es
parte del camino necesario para resolver la ubicación de sus objetos.
Gestión de permisos en GNU/Linux
Hasta ahora, hemos visto para que nos sirven los permisos en GNU/Linux, a
continuación, veremos cómo asignar o restar permisos o derechos.
Antes de comenzar, debemos de tener en cuenta que cuando damos de alta o creamos un
usuario en el sistema, le concedemos de forma automática unos privilegios. Estos
privilegios, por supuesto, no serán totales, es decir, los usuarios no dispondrán,
normalmente, de los mismos permisos y derechos del superusuario. Cuando el usuario
se crea, el sistema genera por defecto los privilegios del usuario para manejo de
archivos y para manejo de directorios. Evidentemente, éstos pueden ser modificados por
el administrador, pero el sistema genera unos privilegios más o menos válidos para la
mayoría de las operaciones que cada usuario realizará sobre su directorio, sus archivos y
sobre los directorios y archivos del resto de usuarios. Por lo general, son los siguientes
permisos:
<° Para archivos: – rw- r-– r-–
<° Para directorios: – rwx rwx rwx
Nota: no son los mismos permisos para todas las distribuciones de GNU/Linux.
Estos privilegios nos permiten crear, copiar y borrar archivos, crear nuevos directorios,
etc. Veamos en la práctica todo esto :D:
Esto significa que:
<° Tipo: Archivo
<° El usuario puede: Leer (visualizar el contenido) y escribir (modificar) el archivo.
<° El grupo al que pertenece el usuario puede: Leer (únicamente) el archivo.
<° Otros usuarios pueden: Leer (únicamente) el archivo.
Para aquellos curiosos que se están preguntando en estos momentos a que se refieren los
otros campos del listado obtenido por ls -l, aquí la respuesta:
Si desean saber más acerca de los hard y soft/symbolic links, aquí la explicación y
sus diferencias.
Bueno amigos, llegamos a la parte más interesante y pesada del tema en cuestión…
Asignación de permisos
El comando chmod («change mode») permite modificar la máscara para que se puedan
realizar más o menos operaciones sobre archivos o directorios, dicho de otra forma, con
chmod puedes quitar o eliminar derechos a cada tipo de usuarios. Si no se especifica el
tipo de usuario al que queremos quitar, poner o asignar privilegios, lo que sucederá al
realizar la operación es afectar a todos los usuarios simultáneamente.
Lo básico que hay que recordar es que le demos dar o quitar permisos en estos niveles:
Tipos de permiso:
Permiso Identifica
r Permiso de lectura
w Permiso de escritura
x Permiso de ejecución
Dar permiso de ejecución al dueño:
$ chmod u+x komodo.sh
Quitar permiso de ejecución a todos los usuarios:
$ chmod -x komodo.sh
Dar permiso de lectura y escritura a los demás usuarios:
$ chmod o+r+w komodo.sh
Dejar solo permiso de lectura al grupo al que pertenece el archivo:
$ chmod g+r-w-x komodo.sh
Permisos en formato numérico octal
Hay otra forma de utilizar el comando chmod que, para muchos usuarios, resulta “más
cómoda”, aunque a priori sea algo más compleja de entender ¬¬.
La combinación de valores de cada grupo de los usuarios forma un número octal, el bit
“x” es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:
<° r = 4
<° w = 2
<° x = 1
La combinación de bits encendidos o apagados en cada grupo da ocho posibles
combinaciones de valores, es decir la suma de los bits encendidos:
Valor
Permiso Descripción
Octal
Cuando se combinan los permisos del usuario, grupo y otros, se obtienen un número de
tres cifras que conforman los permisos del archivo o del directorio. Ejemplos:
rwx rwx El archivo puede ser leído, escrito y ejecutado por quien
777
rwx sea
Permisos especiales
Aún hay otro tipo de permisos que hay que considerar. Se trata del bit de permisos
SUID (Set User ID), el bit de permisos SGID (Set Group ID) y el bit de permisos de
persistencia (sticky bit).
setuid
El bit setuid es asignable a ficheros ejecutables, y permite que cuando un usuario
ejecute dicho fichero, el proceso adquiera los permisos del propietario del fichero
ejecutado. El ejemplo más claro de fichero ejecutable y con el bit setuid es:
$ su
Podemos ver que el bit está asignado como “s” en la siguiente captura:
Para asignar este bit a un fichero seria:
$ chmod u+s /bin/su
Y para quitarlo:
$ chmod u-s /bin/su
Nota: Debemos utilizar este bit con extremo cuidado ya que puede provocar una
escalada de privilegios en nuestro sistema ¬¬.
setgid
El bit setid permite adquirir los privilegios del grupo asignado al fichero, también es
asignable a directorios. Esto será muy útil cuando varios usuarios de un mismo grupo
necesiten trabajar con recursos dentro de un mismo directorio.
Para asignar este bit hacemos lo siguiente:
$ chmod g+s /carpeta_compartida
Y para quitarlo:
$ chmod g-s /carpeta_compartida
sticky
Este bit suele asignarse en directorios a los que todos los usuarios tienen acceso, y
permite evitar que un usuario pueda borrar ficheros/directorios de otro usuario dentro de
ese directorio, ya que todos tienen permiso de escritura.
Podemos ver que el bit está asignado como “t” en la siguiente captura:
Para asignar este bit hacemos lo siguiente:
$ chmod o+t /tmp
Y para quitarlo:
$ chmod o-t /tmp
Bueno amigos, ahora ya saben cómo proteger de mejor manera su información, con esto
espero que dejen de buscar alternativas para Folder Lock o Folder Guard que en
GNU/Linux no los necesitamos para nada XD.