Permisos Especiales
En linux, existen algunos permisos especiales que podemos establecer sobre los archivos o carpetas. Veamos algunos de ellos
Setuid y Setgid – Nos sirven para poder ejecutar un comando como el usuario o el grupo dueño del archivo y no como el usuario que ejecuta el comando . Esto se logra modificando un bit en los permisos de las archivos mediante la aplicación de alguno de los siguientes permisos mediante el método simbólico:
u+s (suid)
[javier@localhost ~]$ ll
/usr/bin/passwd
-rwsr-xr-x. 1 root root 27880 ago 4
2017 /usr/bin/passwd
g+s (sgid)Como se puede observar en el resultado de listar los permisos del archivo passwd vemos una letra ‘s’ en lugar del permiso de ejecución. Esto nos dice que tenemos habilitado el setuid
El comando g+s puede aplicarse también a directorios para que los archivos creados en éstos directorios hereden los permisos de grupo del directorio en lugar de los permisos de grupo del usuario que los crea.
Siticky bit: Se aplica solo a directorios para que solamente el owner de los archivos en el directorio y root puedan eliminar esos archivos.
o+t (sticky)
javier@localhost ~]$ ls -ld /tmp/
drwxrwxrwt. 16 root root 380 abr 14 11:53 /tmp/
Se había mencionado que con el método númerico mediante tres bits podíamos establecer los permisos de un archivo. Por ejemplo un chmod 777 nos da permisos de lectura, escritura y ejecución a usuario, grupo y otros
Existe un cuarto bit que se antepone a los otros 3 y nos permite establecer mediante el método númerico los permisos especiales setuid, setgid y sticky tomando en cuenta lo siguiente:
setuid = 4
setgid = 2
sticky = 1
Esto quiere dejecir que también podríamos ejecutar un chmod de la siguiente forma:
chmod 2770 dir1 <- Tenemos permisos de r,w,x para el owner, r,w,x para el grutpo, sin permisos para otros y establecimos el setgid al dejar en 2 el primer bit.
Cuando creamos un archivo, estos archivos se crean con ciertos permisos por default. Por ejemplo:
javier@localhost ~]$ touch test.txt
[javier@localhost ~]$ ll test.txt
-rw-rw-r--. 1 javier javier 0 abr 14
12:24 test.txt
Como podemos ver, en el ejemplo anterior, por default se generaron permisos 664 a este archivo. Si quisieramos que cada que creemos un archivo durante una sesión los permisos default para estos nuevos archivos fueran distintos podemos utilizar el comando umask
Si validamos el valor que tenemos por
default en umask seguramente nos encontraremos algo como:
[javier@localhost
~]$ umask
0002
Primero debemos entender que por
default no se dan permisos de ejecución a ningún archivo creado
solo permisos de lecutra o de escritura. Lo que el 2 significa en el
4to bit (el de otros) es que tampoco daremos permisos de escritura
(2) a “otros” cuando creamos un archivo. Es decir umask nos sirve
para negar por default ciertos permisos
Como se comentó,
los cambios que realicemos con umask solamente aplicarán durante la
sesión en turno. Cuando hagamos logout se volverá a los permisos
default.
Ejemplo:
umask 007
<- Los archivos creados no tendrán permisos de r,w para otros
Una consideración
a tomar en cuenta es que al contrario de los archivos los directorios
siempre se crean con permisos de ejecución para usuario, grupo y
otros para que podamos ejecutar el comando cd sobre ellos.
Si quisieramos modificar de forma permantente los permisos default de
los archivos recién creados lo tendremos que hacer modificando el
archivo /etc/bashrc y /etc/profile
No hay comentarios:
Publicar un comentario