The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > UNIX for Dummies Preguntas y Respuestas > Respuestas a las Preguntas más frecuentes > Consejos y tutoriales
.
google unix.com



Consejos y tutoriales Artículos útiles de nuestros usuarios.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Para dar a la "unzip" los permisos y "crear" los permisos de archivos Mike1234 HP-UX 3 03-02-2008 05:34 PM
Permisos Unix mobershaw Sun Solaris 0 01-24-2006 06:06 PM
Permisos de archivos UNIX jerardfjay UNIX para usuarios avanzados y expertos 3 03-15-2005 12:25 PM
Permisos Unix moukoko UNIX for Dummies Preguntas y Respuestas 2 03-11-2004 08:12 AM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Calificación: Thread Rating: 6 votes, 4.83 average. Modos de visualización
  #1 (Enlace permanente)  
Old 05-28-2005
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix demonio
  
 

Fecha: agosto 2001
Ubicación: Ashburn, Virginia,
Mensajes: 9.119
Permisos de archivos de Unix

Introducción

He visto algunas informaciones erróneas con respecto a permisos de archivo Unix. Voy a tratar de aclarar las cosas. Echa un vistazo a este ejemplo de una salida de ls:
Código:
$ ls -ld /usr/bin /usr/bin/cat
drwxrwxr-x   3 root     bin         8704 Sep 23  2004 /usr/bin
-r-xr-xr-x   1 bin      bin         9388 Jul 16  1997 /usr/bin/cat
$
En la primera línea, que "la raíz", dice que el directorio es propiedad del usuario llamado "root". Y que "bin" es el grupo del directorio. Usted tendrá que entender los usuarios y grupos y voy a suponer que usted lo hace. Mi objetivo es explicar que "drwxrwxr-x" y "-r-xr-xr-x" cosas. Campo que es una combinación del tipo de archivo y el permiso de acceso. En conjunto, esta información es a veces llamado el modo de archivo. Y a veces se le llama la permisos. Un buen lugar para comenzar es mediante la adopción de un rápido vistazo a cómo esta información es almacenada en el disco. La forma en que se almacena afecta a una serie de decisiones que se han hecho en los últimos años.

Cómo funciona el "modo de archivo" se almacena.

En el disco, la información sobre un archivo se almacena en una estructura llamada "inodo". Cada archivo tendrá su propio inodo. Un elemento de datos en un inodo es llamado el "modo" y que tiene este aspecto:
Código:
 |------file mode------|
 |                     |
 |
 |       |----full-----|
         |
 |-type| |   |--basic--|
 |     | |   |         |
 oo0 000 000 000 000 000
 ... ... ... ... ... ...
    |     |   |   |   |
    |     |   |   |   |---- rwx for other
    |     |   |   |
    |     |   |   |-------- rwx for group
    |     |   |
    |     |   |------------ rwx for user
    |     |
    |     |---------------- set uid, set gid, sticky bit
    |
    |---------------------- file type: regular (-)
                                       directory (d)
                                       character special (c)
                                       block special (b)
                                       fifo (p)
                                       symbolic link (l)
                                       socket (s)
Creo que el "modo" significa en realidad sólo los permisos y el tipo de archivo que fue un empujón en el fin de ahorrar espacio. Pero el autor de la LS es el modo de tratar como un solo tema. Es por eso que el tipo de archivo es el primer carácter de la cadena en el permiso "ls-l" de salida. El tipo de archivo suele ser uno de los siete tipos que muestran arriba. Algunas versiones de Unix que añadir algunos más. La única otra cosa a notar a partir de los datos de diseño es que no hay espacio para añadir más bits de permiso.

En representación de los permisos en octal

El LS programa puede mostrar, por ejemplo, "rwxrwxrwx" para los permisos de un archivo. También es muy común el uso de un número octal de expresar los permisos en un archivo. Y como que ves arriba, esta es la forma en que se almacenan. Usted podrá oír a alguien decir que tiene algunos permisos 777. Esto es lo mismo que "rwxrwxrwx" y mucho más fácil de pronunciar. Por lo que necesita saber cómo convertirlos. Tres dígitos binarios o bits corresponde a un dígito octal:

Código:
  421
  rwx
Por lo tanto, el "leer poco vale 4, el escribir es un valor de 2 bits y el bit de ejecución es un valor de 1. Usted sólo tiene que añadir estos hasta obtener un dígito octal. Por lo tanto," rwxrwxrwx "es 777. Y"-rwxr-x -- - "es de 750. Si todavía no puede ver la forma de obtener de" rx "a 5, tal vez este cuadro le ayudarán:

Código:
--- = 0
--x = 1
-w- = 2
-wx = 3
r-- = 4
r-x = 5
rw- = 6
rwx = 7
Tenga en cuenta que necesitamos octal 4 dígitos para expresar todos los bits de permiso. Los tres primeros bits son especiales y son con frecuencia cero. Y que casi siempre conocer el trailing 9 bits primero. Algunas personas dejan de aprender nunca y hay los tres primeros bits. Pero hay 12 bits de permiso, no sólo 9. Dicho esto, ahora vamos a echar un vistazo a la trailing 9 bits.

Permiso de base Bits

Tenemos 3 triples: un triple para el usuario, un triple para el grupo, y un triple para los demás. A veces, el "usuario" se llama el propietario. Y, a veces, "otros" se llama "Mundo". Voy a utilizar "usuario" y "otros" porque utiliza el comando chmod ug y las letras o para referirse a estos triples.

Conjunto de bits que se aplica a usted?

Unix cuando decide lo que puede hacer, no utiliza todos los 9 bits. Unix recoge el primer triple que se aplica a usted. Considere esto:
Código:
----rwxrwx   1 joe        users           29 Mar 22 19:39 somefile
Aunque Joe es propietaria de este archivo, no puede acceder a él. (Desde Joe propietario del archivo, puede darse el acceso. Más sobre esto más adelante.) Root es también especial. rwx raíz se concede a todos los directorios y rw para todos los archivos. En un archivo, si alguno de los 3 x bits están fijados, root tiene permisos de ejecución. Esto es a menudo un permiso especial para minusválidos de la red los sistemas de archivos montados.

¿Qué es lo que realmente x rw y media de un archivo?

Para un archivo, "leer" y "escribir" son bastante intuitivo. La x para "ejecutar" significa que el núcleo puede intentar ejecutar el archivo. Para que funcione, el archivo debe ser un ejecutable (la salida de un compilador) o un script de shell con un "#!" primera línea. Para un directorio, las cosas son un poco más compleja. Con un directorio, "escribir" permiso significa que usted puede crear nuevos archivos en el directorio o eliminar archivos viejos. A veces sorprende la gente que se puede eliminar un archivo que usted no puede leer. El comando rm unix para que pondrá a prueba y emitir una advertencia, pero se puede suprimir esa advertencia con-f. Y de alerta o no, si desea eliminar un archivo que no de un directorio de escritura, es posible. Rmdir y no se molestan en comprobar en absoluto.

¿Qué es lo que realmente x rw y media para un directorio?

Un directorio es un archivo demasiado, y "leer" el permiso significa que usted puede leer. Pero que realmente no puede hacer mucho sin el permiso x también. En los directorios, por lo general, han leído y los permisos de ejecución o no. En un directorio, que x es oficialmente llamado "permiso de búsqueda". X lo que necesita para utilizar un directorio en una ruta. Por lo tanto, si intenta "cat / etc / passwd", tendrá en x / y / etc También es necesario x para cd en un directorio. Supongamos que usted ha leído, pero no de búsqueda (x) el permiso de un directorio. ¿Qué puede hacer? No mucho. Puede utilizar "ls" para ver los nombres de archivo. Incluso "ls-l", no funcionará. Leer el acceso sin permiso de búsqueda no es muy útil. Que todavía es mejor que tener sólo permiso de escritura en un directorio ... que es completamente inútil. No he visto ninguna otra documentación que indica de manera explícita, por lo que repito es el siguiente: escribir, pero no los permisos de ejecución en un directorio de becas en nada tiene all.Suppose búsqueda (x) el permiso, pero no permiso de lectura en un directorio. Ahora puede abrir archivos en el directorio Si conoce el nombre del archivo. Puede cd en el directorio. Y eso es todo. No se puede incluso crear un nuevo archivo. Añadiendo permisos de escritura le permitirá crear archivos. Y puede borrar archivos Si conoce su nombre.

Los enlaces simbólicos son especiales

La configuración de los permisos en un enlace simbólico son un poco especiales también. Ellos son completamente ignoradas. Muchas versiones de Unix no tienen ninguna manera de cambiar.

El setuid y el setgid Bits

Echa un vistazo a esto:
Código:
$ ls -l /etc/passwd /etc/shadow /usr/bin/passwd
-r--r--r--   1 root     sys        14006 Jan 14 11:17 /etc/passwd
-r--------   1 root     sys         8281 Jan 14 11:18 /etc/shadow
-r-sr-sr-x   3 root     sys        96244 Sep  5  2001 /usr/bin/passwd
El archivo passwd, se puede escribir sólo por root (Recuerde, la raíz es especial. Puede escribir un archivo que no tiene permisos de escritura conjunto). La sombra de archivo, que es donde se almacenan las contraseñas, ni siquiera pueden ser leídos por los usuarios normales. Pero Joe quiere cambiar su contraseña. Él puede hacerlo ejecutando / usr / bin / passwd. Notificación de los permisos rs. El programa tiene el passwd los bits SUID y GID conjunto. Esto convierte a la x en la s. En octal, sería 6555. El programa passwd es propiedad de root. Cuando Joe lo ejecuta, que no se ejecuta como "Joe". Por el contrario, se corre como titular que es la raíz. Passwd de manera que el programa puede cambiar la contraseña de Joe para él. El sgid poco funciona de la misma manera, excepto que hace que el programa se ejecute passwd con el grupo en vez de los sistemas del grupo de Joe. El SUID y SGID no reciben su propia posición en el LS. Cuando el bit suid, LS se muestra como lugar de hacha para el propietario permisos de ejecución. ¿Qué pasa si la suid bit, pero el propietario está desactivada ejecutar poco? LS mostrará un capital de S en el caso. El sgid poco se visualiza de una manera similar, excepto que interactúa con el grupo de los permisos de ejecución. (El concepto fue establecido uid inventado por Dennis Ritchie como fue el desarrollo de Unix.)

Para ampliar un poco las cosas, mientras que Joe se está ejecutando el suid a raíz passwd programa, "Joe" es el verdadero y uid "root" es el eficaz uid. Passwd El programa puede obtener tanto la identificación de estos, si quiere. De este modo, el programa sabe passwd para permitir Joe Joe sólo para cambiar la contraseña.

El bit adherente

El Posix norma dice que si el bit adherente se encuentra en un directorio, el mero permiso de escritura en el directorio ya no es suficiente para permitir que los archivos deben ser eliminados. Debe, además, el propio archivo o el propio directorio. raíz sigue siendo capaz de eliminar de cualquier directorio, independientemente de los permisos. Anteriormente esta poco sirve otro propósito. En algunos sistemas operativos que todavía no. Voy a elaborar en un apéndice a continuación. El bit adherente afecta a los "otros" en el bit de ejecución LS exponer. Excepto que no utiliza y T en lugar de s y S. Por ejemplo:
Código:
drwxrwxrwt   5 root       root          1024 Feb 11 20:43 /tmp
En ese directorio / tmp anterior, cualquiera puede crear nuevos archivos. Pero debido a la poco pegajoso, un usuario no puede borrar los archivos de otro usuario.

Limitar los permisos de archivos con umask

Cuando se crean archivos que crea el programa puede especificar el permiso inicial de ajuste. Puede anular que con umask. El umask es un conjunto de prohibir bits. Hay un comando umask que le permite ver y cambiar el umask. Por ejemplo, "umask 022" prohíbe grupo escribir y escribir en otros archivos de nueva creación. O "umask 027" prohíbe grupo de escribir y otros que prohíbe leer, escribir o ejecutar. Usted puede hacer una "umask 0" para que el programa hace lo que quiere, ya que crea los programas. Pero no puede ir más lejos. Usted no puede obligar a un programa a su vez un poco sobre. El ajuste afecta umask archivos, directorios, canalizaciones con nombre (alias FIFOs), y archivos especiales. Puede o no afectar a los enlaces simbólicos. También afecta Somes formas de comunicación entre procesos, pero que está fuera del alcance de este artículo. Y créanlo o no, con el nombre tomas están exentos de umask. Esta excepción se requerido por Posix.

Cambiar los permisos de archivos con chmod

Sólo el propietario de un archivo o root puede cambiar los permisos en un archivo. Esta operación es no a todos los afectados por el ajuste de umask. Si cambia los permisos en un enlace simbólico, el vínculo será seguida y usted va a cambiar el archivo de destino. Es posible que sólo root tendrá la facultad de establecer un archivo de bit adherente. Como un ejemplo, "chmod 700 somefile" va a dejar que el propietario leer, escribir y ejecutar el archivo, mientras que se desestime el acceso a todos los usuarios de cualquier otro.

Uso de modo simbólico con chmod y umask

Posix introdujo una nueva sintaxis para el comando chmod. La idea era que la nueva sintaxis sustituir el uso de una constante octal con el comando chmod. La constante octal que se sigue permitiendo y creo que de aquí para quedarse. Pero la nueva sintaxis simbólica le permite cambiar un número de bits sin saber lo que los otros son. Por ejemplo, digamos que quiero hacer un archivo inaccesible a los demás pero no lo que se debe cambiar el acceso para el usuario o el grupo. Yo tendría que hacer:
ls-l archivo
Vea el archivo y ver los ajustes actuales.
chmod 750 archivo
He tenido que determinar que los dos primeros dígitos son las corrientes de 7 y 5 antes de que yo podía hacer mi comando chmod. Con la nueva sintaxis, puedes hacer:
chmod o \u003d archivo
para apagar los últimos 3 bits. Como otro ejemplo, "chmod u + x archivo" permitirá que el usuario ejecute el archivo. Por otra parte, estos dos comandos son equivalentes:
chmod 750 archivo
chmod u \u003d rwx, g \u003d rx, o \u003d archivo
y prefiero la primera sintaxis.

El modo simbólico puede ser una lista separada por comas de las especificaciones. Cada pliego tiene tres componentes: <who> <operation> <bitlist>
Código:
The who part can be:
u  (user)
g  (group)
o  (other)
a  (all)
   (whatever is allowed by umask (subset of all))

The operator can be  = or - or +
= (set bits to bitlist)
- (subtract bitlist from current bit
+ (add bitllist to current bits)

The bitlist can be one of the following letters:
r (read permission)
w (write permission)
x (execute permision)
X (conditional execute permision)
u (current permissions for user)
g (current permissions for group)
o (current permissions for others)
s (set uid or set gid)
t (sticky bit)
La X es el mismo que el archivo a menos que x es un nondirectory y en la actualidad no tiene x bits conjunto. La s (serie o conjunto uid gid) sólo puede ser especificado por el usuario o grupo permisos. El no sólo puede ser especificado para los permisos de usuario. Algunos ejemplos con la ayuda. Anteriormente hemos visto / usr / bin / passwd fue 6555 (-r-sr-sr-x en ls). Aquí hay algunas maneras en que podría lograrse:
chmod 6555 / usr / bin / passwd
chmod u \u003d rxs, g \u003d rxs, o \u003d rx / usr / bin / passwd
chmod ug \u003d rxs, o \u003d rx / usr / bin / passwd
chmod a \u003d rx, ug + s / usr / bin / passwd
Y hay muchas otras maneras de hacer esto.

En su mayor parte es inmune a chmod umask en que, independientemente de bits que desea establecer no se modificó por la umask. Sin embargo, en virtud de una condición, el comando chmod se examinará la configuración actual de umask para determinar los bits que se desea establecer. Esto ocurre cuando usted deja el "quién" campo en blanco. De este modo:
chmod \u003d w somefile
La diferencia entre "a \u003d w" y "w \u003d" es sutil. Aquí hay un ejemplo que puede ayudar. Muchos programas tratan de crear el archivo con 666 (-rw-rw-rw-) permisos. Pero este es modificado por el umask. Supongamos que el que desea establecer un archivo a 666, pero modificados por la umask actual. Podemos desactivar todos los bits, luego gire a leer y escribir en los bits que son permitidos por la umask actual:

chmod a \u003d, \u003d rw somefile

Y hablando de umask, se puede usar con el simbólico argumentos umask comando también. Sin embargo, Posix, En su sabiduría, decidió que, en este caso a la lógica que se invierta. Por lo tanto, si con un uso umask octal argumento que especifique los bits que han de prohibirse. Pero si usted usa umask con un argumento simbólico, que especifique los bits permitir. Así pues, estas son equivalentes:
umask 022
umask u \u003d rwx, go \u003d rx

Resumen

En este momento, usted tiene suficiente información para comprender la mayoría de esos 12 bits de permiso. Hay varios casos muy especiales que me han hecho caso omiso o pasarse por alto. En distintos puestos a continuación me referiré a ellos. La información en este primer puesto es casi universal. Un Posix Sistemas operativos compatibles deben apoyar esto. Que abarca casi todas las versiones de Unix en libertad en los últimos 10 años. Los siguientes artículos de examinar las características que pueden no ser universal.
 

Marcadores

Etiquetas
chmod, los permisos de archivos, comandos linux, bit adherente, suid, umask

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 08:42 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0