Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Asignación de Permisos en Linux (página 2)




Enviado por jaimemontoya



Partes: 1, 2

Tipos de Permiso de Acceso

Como se explicó anteriormente, asignar permisos a
un directorio (carpeta) no significa que los archivos o
subcarpetas que pertenecen a esta tienen automáticamente
los mismos permisos que se le asignaron a la carpeta. Por lo
tanto los permisos de acceso pueden ser para directorios o para
archivos.

Los permisos para archivos funcionan de esta
manera:

1. Read (lectura):
Permiso para ver el archivo, sin
hacer cambios.

2. Write (escritura): Permiso de escritura: puede
escribir el archivo, y por tanto, cambiarlo.

3. Execute (ejecución): El archivo o
directorio puede ser ejecutado.

En cuanto a los archivos para directorios, funcionan
así:

1. Read: Permiso para listar los archivos de un
directorio.

2. Write: Permiso para añadir nuevos
archivos al directorio.

3. Execute: Permiso para acceder a los archivos
del directorio.

Cómo Conocer los Permisos de un Directorio o
Archivo

El primer paso es entrar a la consola como superusuario,
para lo cual se deberá usar el comando "su" y luego
escribir la contraseña respectiva. Luego se necesita es
ubicarse en el directorio que contiene el directorio o archivo
del cual se desea conocer los permisos que tiene. Para moverse
hacia un directorio, se utiliza el comando "cd". Al
escribir "cd", se llega al "root" o directorio raíz, que
para quienes están más familiarizados a Windows,
sería el equivalente de decir la unidad "C". Para conocer
el directorio actual, se utiliza el comando "pwd".

Suponiendo que se desean conocer los permisos que tiene
el directorio /acpi/, que se encuentra ubicado dentro del
directorio /etc/, lo que se haría es primeramente escribir
"cd" para regresar al root o raíz. Luego escribir "cd
/etc" para llegar al directorio /etc/. Para confirmar que se ha
llegado satisfactoriamente al directorio /etc/, escribir "pwd" y
el resultado deberá decir "/etc", revelando que
efectivamente se ha llegado al directorio /etc/. Finalmente
escribir "ls -l" y se muestran todos los archivos y directorios
que se encuentran dentro del directorio /etc/, en orden
alfabético. Debido a que en este caso se están
buscando los permisos para el directorio /acpi/, en el listado
que aparece se debe buscar precisamente la descripción para /acpi/. Debe aparecer algo
parecido a lo que se muestra a
continuación:

drwxr-xr-x 3 root root 4096 2007-07-21 09:51
acpi

"drwxr-xr-x" revela los permisos que tiene el directorio
/acpi/. Owner tiene permiso de lectura, escritura y
ejecución (wxr equivale a 7). Group tiene permiso para
lectura y ejecución (equivale a 5). Para Other se tiene
permiso también de lectura y ejecución (equivale a
5). Más adelante se explicará en detalle la manera
en que esto funciona.

Cómo Fijar Permisos para Archivos y
Directorios

Como ya se mencionaba anteriormente, la orden "chmod" es
la que sirve para la asignación de permisos en Linux. Por
ejemplo chmod 777 index.php le asigna
todos los permisos al archivo index.php. Está claro que
primeramente se debe ir al directorio que contiene el archivo
index.php (usando el comando "cd" tal como se explicó
anteriormente), y estando ya en ese directorio, escribir "chmod
777 index.php" para el caso de querer asignar todos los permisos
al archivo index.php. Para comprender el significado de 777 se
debe conocer que 4 significa permiso de lectura, 2 permiso de
escritura y 1 permiso de ejecución. Sumando estos valores se
puede ver que un archivo puede tener los siguientes permisos (por
cada tipo de usuario):

4 = lectura
2 = escritura
1 = ejecución
0 = no hay permiso para nada
3 (2+1) = escritura y ejecución
5 (4+1) = lectura y ejecución
6 (4+2) = lectura y escritura
7 (4+2+1) = lectura, escritura y ejecución
Todo ello para los tres tipos de usuario.

Así, un "chmod 777 index.php" significa que
owner, group y others tienen permiso de lectura, escritura y
ejecución. "chmod 766 index.php" significa que el owner
tiene permiso de lectura, escritura y ejecución, y el
group y others solamente permiso de lectura y escritura. "chmod
744 index.php" significa que el owner tiene permisos de lectura,
escritura y ejecuci{on, mientras que group y others
únicamente permisos de lectura.
Como se puede ver, son tres dígitos, de izquierda a
derecha, los que designan los permisos del owner, group y others.
A continuación se tiene su equivalente en letras (que
utilizaría en total nueve dígitos en lugar de
tres):

0 = – – – = sin acceso
1 = – – x = ejecución
2 = – w – = escritura
3 = – w x = escritura y ejecución
4 = r – – = lectura
5 = r – x = lectura y ejecución
6 = r w – = lectura y escritura
7 = r w x = lectura, escritura y ejecución

Por ejemplo, r w – r – – r – – significa que el owner tiene
permisos de lectura y escritura (r w -); el group permiso de
lectura únicamente (r – -) y other, permiso de lectura (r
– -). El equivalente numérico sería 644.
Debe también saberse que aunque "chmod 644 index.php", no
equivale a "chmod r w – r – – r – – index.php". En caso que se
desee usar "chmod" con texto, se
deberá respetar la siguiente sintaxis:
chmod [ugo][+-][rwx] [nombre_archivo]
Donde [u=user u owner, g=group y o=other]; [+/- activa o
desactiva los atributos siguientes]; [r=read, w=write,
x=execute]

Por ejemplo, "chmod go+r index.php" significa que se
asignan permisos de lectura para group y other en el archivo
index.php. "chmod go-r index.php" significa que se quitan
permisos de lectura para group y other en el archivo index.php.
Con "chmod ugo+rx index.php" se asignan permisos de lectura y
ejecución para user/owner, group y other en el archivo
index.php. "chmod uo-w index.php" significa que se quitan
permisos de escritura para user/owner y para other. Nótese
que al usar +/- para activar o desactivar permisos, se cambian
únicamente los atributos que se especifican, pero no se
alteran otros permisos que pudieran estar asignados
anteriormente. Por ejemplo con "chmod go+r index.php" no se
modifica la atribución anterior a group de un permiso de
ejecución, entre otros permisos que no se modifican. Si se
quieren modificar también todos los otros permisos no
mencionados, en vez de +/- deberá utilizarse el signo "=",
por ejemplo "chmod go=r index.php" asigna a group y other permiso
de lectura sobre index.php y elimina a la vez cualquier otro
permiso para ambos, y como user/owner no se menciona, se dejan
los permisos que tenía tal como estaban. Si se escribiera
"chmod ugo=wr index.php" significa que a user/owner, group y
others se les da permiso de escritura y lectura y se les quita el
permiso de ejecución. No es necesario escribir en orden
"rwx" para "read, write, execute". El orden no importa en este
caso, de modo que "xw" equivale a "wx", es decir permisos para
escribir y ejecutar.

Es posible también no referirse a un archivo en
específico, sino a todos los archivos dentro del
directorio que sean de un tipo en especial. Por ejemplo, si se
quisieran asignar todos los permisos para todos los archivos con
extensión .php en el directorio actual, en vez de escribir
"chmod 777 index.php", se deberá escribir "chmod 777
*php". Con eso no sólo el archivo index.php tendrá
permisos totales de lectura, escritura y ejecución para
todos los usuarios, sino que también cualquier otro
archivo con extensión .php gozará de los mismos
permisos. Esto es de gran utilidad por
ejemplo en el caso que dentro de un directorio se tengan muchos
archivos .php. Resultaría monótono y tedioso estar
repitiendo el procedimiento
para cada archivo, mientras que es muy fácil hacerlo con
una simple instrucción utilizando "chmod 777 *php". En el
caso de querer hacer eso para archivos .html en vez de
archivos .php, simplemente se escribe "chmod 777 *html", y
así para cualquier otro tipo de archivo que se
desee.

En el caso de querer fijar permisos para directorios, el
proceso es el
mismo que para archivos, con la diferencia que no debe olvidarse
escribir la correspondiente pleca ("/") después del
número, cosa que no se hace en el caso de permisos para
archivos. Por ejemplo, "chmod 777 index.php" es un ejemplo de
asignación de permisos para un archivo, mientras que
"chmod 777 /var" es un ejemplo de asignación de permisos
para un directorio. Si se escribiera simplemente "chmod 777 var",
aparecería un mensaje de error como este:

chmod: no se puede acceder a «var»: No
existe el fichero o el directorio
Un ejemplo práctico es que se quieran asignar todos los
permisos para el directorio var. Lo primero sería entrar
como root/superusuario con el comando "su" y la introducción de la contraseña. Luego
escribir el comando "pwd" y el resultado debe ser "/root",
indicando que el directorio actual es el /root. En caso de no
estar en el directorio /root, escribir el comando "cd" para
llegar establecer /root como directorio actual. Luego escribir
"chmod 777 /var", con lo cual se asignan todos los permisos para
todos los usuarios, tanto de lectura, como también de
escritura y ejecución.

Con eso será posible guardar archivos o crear
nuevos directorios en el directorio /var. Un caso real donde se
aplica esto es por ejemplo al descargar un archivo comprimido en
formato .tar.gz. Supóngase que la descarga se hace
automáticamente a /home/nombre_usuario/Desktop/Descargas,
pero para descomprimirse el .tar.gz, se moverá el archivo
hacia el directorio /var. Inicialmente al querer cortar o copiar
y luego pegar en el directorio /var, podría aparecer un
mensaje de error diciendo que no es posible escribir en el
directorio /var.

Es entonces que se siguen los pasos para asignar
permisos al directorio /var, de modo que sea posible ubicar el
archivo comprimido con extensión .tar.gz en el directorio
/var y así poder
después descomprimirlo desde ahí.

Suponiendo que el nombre completo del archivo que se ha
ubicado en el directorio /var sea
"OOo_2.2.1_LinuxIntel_install_wJRE_en-US.tar.gz", después
se podría perfectamente descomprimir desde ahí
primeramente moviéndose hasta el directorio /var con el
comando "cd", y luego escribiendo "tar xvzf
OOo_2.2.1_LinuxIntel_install_wJRE_en-US.tar.gz" para descomprimir
el archivo. Aplicaciones prácticas como la recién
descrita son posibles cuando se conoce bien la manera de asignar
permisos correctamente tanto a archivos como a
directorios.

La asignación de permisos para directorios y
archivos es algo elemental para los usuarios de Linux, por lo
cual será de mucho provecho tener estos conocimientos
"para no ahogarse en un vaso de agua", pues
pequeños detalles como no saber asignar permisos pueden
hacer que una persona se quede
atrapada sin poder seguir adelante en el uso de Linux. Esto es
parte de los conocimientos básicos y fundamentales que
todo usuario de Linux debe tener.

 

Jaime Montoya

Santa Ana, 15 de septiembre de 2007

El Salvador

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter