![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo |
Calificación:
|
Modos de visualización |
|
|||||
|
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 $ 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)
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 Código:
--- = 0 --x = 1 -w- = 2 -wx = 3 r-- = 4 r-x = 5 rw- = 6 rwx = 7 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 ¿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 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 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) 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 |
| Modos de visualización | Vota a este hilo |
|
|