Al principio de este capítulo ha recibido el siguiente mensaje,
cuando intentó cambiarse al directorio login de root:
cd /root
bash: /root: Permission denied
Esto es un ejemplo de las características de seguridad de Linux.
Linux, como UNIX, es un sistema multiusuario y los permisos para tener acceso a
los archivos presentan una solución para proteger la integridad del
sistema de cualquier daño.
Una manera de tener acceso cuando se le deniega el permiso es ejecutando
su a root, como vió anteriormente. Esto es porque quien
conoce la contraseña de root tiene acceso completo al sistema.
Pero cambiándose al superusuario no siempre es lo más conveniente
o recomendado, pues es posible cometer errores y alterar archivos de configuración
importantes como superusuario.
Todos los archivos y los directorios pertenecen a la persona que los ha
creado. Hemos creado el archivo sneakers.txt (vea la Sección 13.9.1) en su directorio login, por ello
sneakers.txt le pertenece.
Esto quiere decir que podemos especificar quién puede leer o
escribir un archivo. Además en el caso de que un archivo sea ejecutable es
posible especificar quién tiene el derecho a ejecutarlo.
Lectura, escritura, y ejecución son las tres configuraciones principales
de permisos. Como cada usuario del sistema está incluído en un grupo,
podemos también especificar qué grupos pueden leer, escribir o ejecutar un archivo.
Tome como ejemplo el archivo sneakers.txt con el comando
ls utilizando la opción -l
(consulte la Figura 13-11).
Hay mucha información aquí. Con esta opción se visualizan muchos de los
detalles. Podemos ver quién puede leer (r) y escribir (w) el archivo, el creador del
archivo (sam) y a qué grupo de usuarios pertenece (sam). Recuerde que por defecto, el
nombre de su grupo es el mismo que su nombre de login.
Figura 13-11. Permisos para sneakers.txt
Entre el nombre del grupo y el nombre del archivo hay informaciones
relativas al tamaño del archivo, a la fecha y a la hora de creación.
La primera columna muestra los permisos actuales; tiene diez espacios.
El primer espacio representa el tipo de archivo. Los nueve restantes son,
de hecho, tres grupos de permisos de tres categorías de usuarios diferentes.
Por ejemplo:
-rw-rw-r--
Estos tres grupos se refieren respectivamente al propietario del
archivo, al grupo al que pertenece el archivo y «otros», o sea todos los demás usuarios
del sistema.
- (rw-) (rw-) (r--) 1 sam sam
| | | |
type owner group others
El primer elemento, que especifica el tipo de archivo, puede tener uno
de los siguientes valores:
d — un directorio
-(dash) — un archivo normal
(más que un directorio o enlace)
l — un enlace
simbólico a otro programa o archivo en algún otro lugar del sistema.
Después del primer carácter, en cada uno de los tres grupos que
siguen es posible especificar uno entre los siguientes valores:
r — indica que el archivo se
puede leer.
w — indica que el archivo se
puede escribir
x — indica que el archivo se
puede ejecutar (si es un programa)
Cuando aparece un guión en propietario, grupo u otros, quiere
decir que no se ha concedido un permiso en particular. Mire otra vez la primera
columna del archivo sneakers.txt e identifique sus permisos.
ls -l sneakers.txt
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt
El propietario del archivo, (en este caso, sam) tiene los permisos para
escribir y leer el archivo. El grupo, sam, tiene los permisos
para escribir y leer sneakers.txt. El archivo no es
un programa por lo que ni el propietario (owner) ni el group tienen permiso
para ejecutarlo.
Puede utilizar el comando chmod para cambiar
los permisos en sneakers.txt.
En el archivo original están presentes los siguientes permisos:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Si es el propietario del archivo o está registrado en la
cuenta de root, puede cambiar cualquier permiso para el propietario, grupo u
otros.
Por el momento, el propietario y el grupo pueden leer y escribir el
archivo. Cualquiera fuera del grupo, sólo puede leer el archivo
(r--).
Atención Recuerde que los permisos de los archivos son muy importantes para
la seguridad. Cada vez que permite a todo el mundo leer, escribir o
ejecutar un archivo, está arriesgando la integridad del sistema. Como
regla general, le aconsejamos que sólo otorgue permisos de lectura y escritura a
aquellos que realmente los necesiten.
En el siguiente ejemplo, suponga que quiere conceder a todo el mundo el
permiso de escritura en un archivo, de forma que puedan leerlo, escribir en
él y grabarlo. Esto quiere decir que tendrá que cambiar la sección «otros» en los
permisos de archivos.
De un vistazo al archivo primero. En el intérprete de comandos de la shell,
escriba:
ls -l sneakers.txt
El comando previo visualiza la información de este archivo:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Teclee lo siguiente:
chmod o+w sneakers.txt
El comando o+w le dice al sistema que desea dar a
«otros» el permiso para escribir en el archivo sneakers.txt.
Para controlar los resultados, puede nuevamente listar los
detalles relativos al archivo:
-rw-rw-rw- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Ahora, cualquiera puede leer o escribir el archivo
Para quitar los permisos de lectura y escritura
del archivo sneakers.txt use el comando chmod.
chmod go-rw sneakers.txt
Al escribir go-rw, le está diciendo al sistema que quite
los permisos de lectura y escritura para el grupo y para otros del archivo
sneakers.txt.
El resultado sería similar a:
-rw------- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Piense que estas configuraciones usando chmod,
es como un tipo de taquigrafía para cambiar los privilegios de acceso,
porque todo lo que debe hacer realmente es recordar unos pocos símbolos
y letras para usar con chmod.
A continuación tiene una lista de la taquigrafía
utilizada y sus correspondencias:
Identidades
u — es el usuario propietario del
archivo
g — es el grupo al que el usuario pertenece
o — otros, el resto del mundo (ni el propietario,
ni su grupo)
a — todo el mundo
(u, g, y
o)
Permisos
r — acceso a lectura
w — acceso a escritura
x — acceso de ejecución
Acciones
+ — añadir los permisos
- — elimina los permisos
= — hace que sea el único permiso
¿Quiere comprobar sus habilidades de permisos? Suprima todos
los permisos de sneakers.txt — para todo el mundo.
chmod a-rwx sneakers.txt
Ahora vea si puede leer el archivo con el comando cat
sneakers.txt, que debería devolver lo siguiente:
cat: sneakers.txt: Permission denied
¡Funciona! al remover todos los permisos, incluyendo
los suyos, ha bloqueado el archivo. No obstante, como el archivo le pertenece, siempre
puede cambiar sus permisos con el comando siguiente:
chmod u+rw sneakers.txt
Use el comando cat sneakers.txt para verificar que usted
como propietario del archivo, lo puede leer otra vez.
He aquí algunos ejemplos comunes de configuración que se pueden realizar con
chmod:
g+w — añade el acceso de escritura para el grupo
o-rwx — eliminar los permisos para los
demás
a+rw — permite a cualquiera leer y
escribir en el archivo
ug+r — permitir al propietario o al
grupo leer el archivo
g=rx — concede al grupo la lectura y
la ejecución (no la escritura)
Añadiendo la opción -R puede cambiar los
permisos para el árbol entero del directorio donde se encuentra.
De todas formas puesto que no podemos «ejecutar» un
directorio como si fuera una aplicación; cuando añada o
elimine los permisos de ejecución para un directorio, estará concediendo (o
denegando) los permisos de búsqueda en el interior de este directorio
Si no le permite a otros tener permiso de ejecución sobre
tigger, no importa quién tenga permiso de lectura
o escritura. Nadie podrá accesar el directorio a menos que conozca exactamente
el nombre del archivo.
Por ejemplo, escriba:
chmod a-x tigger
para quitarle a todos los permisos de ejecución.
Esto es lo que ocurre cuando intenta de ejecutar cd en
tigger:
bash: tigger: Permission denied
Luego, restaure su propio acceso y el del grupo:
chmod ug+x tigger
Ahora, si verifica su trabajo usando ls -l verá que solamente
otros tendrán el acceso denegado para el directorio
tigger.
¿Se acuerda de cuando hablábamos del modo abreviado
(taquigráfico) para utilizar
chmod? Aquí tiene otra manera de cambiar los permisos;
que quizás en principio podrá parecerle algo más compleja.
Vuelva a los permisos originales de
sneakers.txt:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Cada configuración del permiso puede estar representada por
un valor numérico:
r = 4
w = 2
x = 1
– = 0
Si se suman estos valores, el resultado se utiliza para especificar
los permisos. Por ejemplo, si quiere leer y escribir permisos,
tendrá un valor de 6; 4 (leer)+ 2 (escribir)= 6.
Para el archivo sneakers.txt, aquí tiene un ejemplo
de los permisos codificados en números:
- (rw-) (rw-) (r--)
| | |
4+2+0 4+2+0 4+0+0
El total para los usuarios es seis, el total para los grupos es seis
y el total para para los demás es cuatro. El código de permisos será
664.
Si quiere cambiar el archivo sneakers.txt para que aquellos
en su grupo no tengan acceso a escritura, pero si lo puedan leer, quite el acceso
eliminando dos (2) de ese grupo de números.
Los valores numéricos serán seis, cuatro y cuatro (644).
Para llevar a cabo los nuevos valores, escriba:
chmod 644 sneakers.txt
Para controlar los cambios, teclee:
ls -l sneakers.txt
El resultado debería ser:
-rw-r--r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt
Ningún usuario, a parte del propietario, puede escribir el
archivo (ni el grupo ni otros)
sneakers.txt. Para reestablecer los derechos de
escritura del grupo en el archivo, puede añadir el valor de w (2)
al segundo grupo de permisos.
chmod 664 sneakers.txt
Aviso Los permisos a 666 (cualquiera puede leer o escribir) o 777 (cualquiera
puede leer, escribir y ejecutar) dan la posibilidad a todos de leer
o escribir un archivo o un directorio. Estos permisos pueden dañar los archivos,
por ello utilizarlos no es buena elección.
Aquí tiene una lista de algunos valores numéricos y de
los significados relativos:
-rw------- (600) — Sólo el
propietario tiene el derecho de leer y escribir.
-rw-r--r-- (644) — Sólo el propietario
tiene los permisos de leer y escribir; el grupo y los demás sólo pueden leer.
-rwx------ (700) — Sólo
el propietario tiene los derechos de leer, escribir y ejecutar el archivo.
-rwxr-xr-x (755) — El
propietario tiene los derechos de leer, escribir y ejecutar; el grupo y los
demás sólo pueden leer y ejecutar.
-rwx--x--x (711) — El propietario
tiene los derechos de lectura, escritura y ejecución; el grupo y los demás
sólo pueden ejecutar.
-rw-rw-rw- (666) — Todo el
mundo puede leer y escribir en el archivo. ¡No es una buena elección!
-rwxrwxrwx (777) — Todo el
mundo puede leer, escribir y ejecutar. ¡Otra mala elección!
Aquí tiene un conjunto de valores para los directorios:
drwx------ (700) — Sólo el
propietario puede leer y escribir en este directorio.
drwxr-xr-x (755) — Cualquiera
puede leer el directorio, pero su contenido lo puede cambiar
sólo el usuario
Encadenar comandos múltiples

