Red Hat Linux 7.1: Official Red Hat Linux Getting Started Guide | ||
---|---|---|
Anterior | Capítulo 10. El indicador de comandos de la shell | Siguiente |
Al principio de este capítulo ha recibido el siguiente mensaje, al intentar utilizar cd en el directorio de login de root:
[newuser@localhost newuser]$ cd /root bash: /root: Permission denied [newuser@localhost newuser]$ |
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 ficheros 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 en root, porque quien conoce la contraseña de root tiene acceso completo al sistema.
[newuser@localhost newuser]$ su Password: your root password [root@localhost newuser]# cd /root [root@localhost /root]# |
Entrar en el sistema como superusuario no es siempre lo más conveniente, ya que es bastante sencillo cometer errores en ficheros importantes de configuración.
Todos los ficheros y los directorios pertenecen a la persona que los ha creado. Hemos creado el fichero sneakers.txt (vea la la sección de nombre Uso de reorientación en su directorio login, por ello sneakers.txt le pertenece.
Esto quiere decir que podemos especificar quién puede leer o escribir un fichero. Además en el caso de que un fichero sea ejecutable es posible especificar quién tiene el derecho a ejecutarlo.
Leer, escribir y ejecutar son tres parámetros muy importantes en los permisos.
Como cada usuario del sistema está incluído en un grupo, podemos también especificar qué grupos pueden leer, escribir o ejecutar un fichero.
Tome como ejemplo el fichero sneakers.txt con el comando ls utilizando la opción -l (largo) (vea el Figura 10-12).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Con esta opción se visualizan muchos de los detalles. Podemos ver quién puede leer (r) y escribir (w) el fichero, el creador del fichero (newuser) y a qué grupo de usuarios pertenece (newuser).
El grupo por defecto | |
---|---|
Recuerde que, por defecto, el grupo corresponde al nombre de login. |
Entre el nombre del grupo y el nombre del fichero hay informaciones relativas al tamaño del fichero, a la fecha y a la hora de creación.
-rw-rw-r-- |
La primera columna (mostrada anteriormente) representa 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.
Estos tres grupos se refieren respectivamente al propietario del fichero, al grupo al que pertenece el fichero y "al resto del mundo", o sea todos los demás usuarios y grupos además del propietario (newuser) y del grupo (newuser).
- (rw-) (rw-) (r--) 1 newuser newuser | | | | type owner group others |
El primer elemento, que especifica el tipo de fichero, puede tener uno de los siguientes valores:
d — un directorio
-(guión) — un fichero normal (más que un directorio o enlace)
l — un enlace simbólico a otro programa o fichero en algún otro lugar del sistema.
Después del primer carácter, en los tres grupos que siguen es posible especificar uno entre los siguientes valores:
r — indica que el fichero se puede leer.
w — indica que el fichero se puede escribir
x — indica equ el fichero 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 fichero sneakers.txt e identifique sus permisos. (Vea el Figura 10-13)
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt [newuser@localhost newuser]$ |
El propietario del fichero, (en este caso, el newuser) tiene los permisos para escribir y leer el fichero. El fichero no es un programa, por lo que el newuser no tiene el permiso para ejecutarlo. El grupo, newuser, tiene los permisos para escribir y leer sneakers.txt. En lo que se refiere al permiso de ejecución , el grupo newuser no tiene dicho permiso.
Los últimos tres caracteres se refieren a los usuarios que no son newuser y tampoco pertenecen al grupo newuser. Esos usuarios pueden leer el fichero, pero no pueden escribirlo o ejecutarlo.
Puede utilizar el comando chmod para cambiar los permisos de sneakers.txt.
En el fichero original están presentes los siguientes permisos:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Si es el propietario del fichero 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 fichero. Cualquiera fuera del grupo, sólo puede leer el fichero (r--).
Los permisos son necesarios | |
---|---|
Recuerde que los permisos de los ficheros son muy importantes para la seguridad. Cada vez que permite a todo el mundo leer, escribir o ejecutar un fichero, está arriesgando la integridad del sistema. Como regla general, le aconsejamos que permita tan sólo leer y escribir permisos a aquéllos que realmente los necesiten. |
En el siguiente ejemplo, suponga que quiere conceder a todo el mundo el permiso de escritura en un fichero, 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 ficheros.
Puesto que es el propietario del fichero, no tiene que utilizar el comando su para root. Basta con teclear:
ls -l sneakers.txt |
El comando previo visualiza la información de este fichero:
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Teclee lo siguiente:
chmod o+w sneakers.txt |
Para controlar los resultados, puede nuevamente listar los detalles relativos a los ficheros:
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Ahora, cualquiera puede leer o escribir el fichero (vea el Figura 10-14).
El comando o+w informa al sitema de que usted quiere dar permisos de escritura a otros en el fichero sneakers.txt.
Si quiere eliminar los permisos de lectura y escritura para el fichero sneakers.txt puede utilizar el comando chmod para eliminar los permisos de escribir y leer de la siguiente manera:
chmod go-rw sneakers.txt |
Y el resultado será parecido a:
-rw------- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Al teclear go-rw, significa que "para el grupo y el resto del mundo, quiere eliminar los permisos de lectura y escritura del fichero sneakers.txt."
Le puede parecer que están escritos de manera taquigráfica al intentar cambiar permisos con chmod, porque todo lo que tiene que hacer es recordar algunos símbolos y letras con el comando chmod.
A continuación tiene una lista de la taquigrafía utilizada y sus correspondencias:
Identidades
u — es el usuario propietario del fichero
g — es el grupo al que el usuario pertenece
o — 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
Permiso adicional | |
---|---|
Otro símbolo de permiso es t, para el the sticky bit. Si se asigna un sticky bit a un fichero, un usuario que quiere suprimir o renombrar aquel fichero debe poseer el fichero, poseer el directorio, tener permiso de escritura o ser root (vea la la sección de nombre Propiedades de los ficheros en Capítulo 11). |
¿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 fichero:
[newuser@localhost newuser]$ cat sneakers.txt cat: sneakers.txt: Permission denied [newuser@localhost newuser]$ |
¡Funciona! No obstante, como el fichero le pertenece, siempre puede cambiar sus permisos (vea el Figura 10-15).
[newuser@localhost newuser]$ chmod u+rw sneakers.txt [newuser@localhost newuser]$ cat sneakers.txt buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! [newuser@localhost newuser]$ |
Aquí tiene unos ejemplos de parámetros que pueden utilizarse con chmod:
g+w — añade el acceso de escritura para un grupo.
o-rwx — eliminar los permisos para los demás.
u+x — permite al propietario del fichero su ejecución.
a+rw — permite a cualquiera leer y escribir en el fichero.
ug+r — permitir al propietario o al grupo leer el fichero.
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.
Para permitir que cualquiera lea y escriba el acceso a cada fichero en el directorio tigger en el directorio de su login, escriba:
chmod -R a+rw tigger |
Pero… si no permite a otros ejecutar permisos en tigger, no importa quien tenga acceso de lectura o de escritura, ya que nadie podrá entrar en el directorio — a menos que sepan el nombre exacto del nombre del archivo que quieren.
Por ejemplo, escriba:
chmod a-x tigger |
para quitar todos los derechos de ejecución a todos los usuarios.
Aquí tiene lo que pasa cuando intenta acceder al directorio tigger:
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Configure sus derechos de acceso y los del grupo.
chmod ug+x tigger |
A continuación, si controla su trabajo con el comando ls -dl verá que sólo los demás no tienen acceso al directorio tigger.