Linux Atributos básicos de archivo

El sistema Linux es un sistema multiusuario típico; diferentes usuarios ocupan diferentes posiciones y poseen diferentes permisos.

Para proteger la seguridad del sistema, Linux establece diferentes regulaciones sobre los permisos de diferentes usuarios para acceder al mismo archivo (incluidos los archivos de directorio).

En Linux, normalmente usamos los siguientes dos comandos para modificar el usuario propietario y los permisos de archivos o directorios:

  • chown (change owner): modifica el usuario y el grupo propietarios.
  • chmod (change mode): modifica los permisos del usuario.

En la siguiente figura, se usa chown para autorizar al usuario y chmod para establecer el permiso de abrir la puerta para el usuario.

En Linux podemos usarllols –lel comando para mostrar los atributos de un archivo, así como el usuario y el grupo al que pertenece, por ejemplo:

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot
……

En el ejemplo,binel primer atributo del archivo se representa condindica.dEn Linux, representa que el archivo es un directorio.

En Linux, el primer carácter representa si este archivo es un directorio, un archivo, un enlace, etc.

  • Cuando esdentonces es un directorio
  • Cuando es-entonces es un archivo;
  • si eslse representa como un enlace (link file);
  • si esbse representa como un dispositivo de interfaz de almacenamiento dentro de los archivos de dispositivo (dispositivo de acceso aleatorio);
  • si escse representa como un dispositivo de puerto serie dentro de los archivos de dispositivo, por ejemplo, teclado, mouse (dispositivo de lectura única).

En los caracteres siguientes, se agrupan de tres en tres, y todos sonrwxcombinaciones de los tres parámetros. Entre ellos,rrepresenta legible (read),wrepresenta escribible (write),xrepresenta ejecutable (execute). Hay que tener en cuenta que las posiciones de estos tres permisos no cambian; si no hay permiso, aparecerá un signo menos-solamente.

Los atributos de cada archivo se determinan por los 10 caracteres de la primera parte a la izquierda (como se muestra en la figura siguiente).

363003_1227493859FdXT

De izquierda a derecha, se usan0-9estos números para representarlos.

ordinal0El bit determina el tipo de archivo; el1-3bit determina los permisos del propietario (el dueño del archivo) sobre el archivo.

Los bits 4-6 determinan los permisos del grupo propietario (usuarios del mismo grupo que el propietario) sobre el archivo; los bits 7-9 determinan los permisos de otros usuarios sobre el archivo.

Entre ellos, el1、4、7bit representa el permiso de lectura; si se usa elrcarácter, hay permiso de lectura; si se usa el-carácter, no hay permiso de lectura;

ordinal2、5、8el bit representa el permiso de escritura; si se usa elwcarácter, hay permiso de escritura; si se usa el-carácter no hay permiso de escritura; el3、6、9bit representa el permiso de ejecución; si se usa elxcarácter, hay permiso de ejecución; si se usa el-carácter, no hay permiso de ejecución.


Propietario y grupo de archivos en Linux

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

Para un archivo, tiene un propietario específico, es decir, el usuario que tiene la propiedad del archivo.

Además, en el sistema Linux, los usuarios se clasifican por grupos; un usuario pertenece a uno o más grupos.

Los usuarios distintos del propietario del archivo se pueden dividir en usuarios del mismo grupo al que pertenece el archivo y otros usuarios.

Por lo tanto, el sistema Linux establece diferentes permisos de acceso a archivos según el propietario del archivo, los usuarios del mismo grupo que el propietario y otros usuarios.

En el ejemplo anterior, el archivo mysql es un directorio; el propietario y el grupo son ambos mysql. El propietario tiene permisos de lectura, escritura y ejecución; los otros usuarios del mismo grupo tienen permisos de lectura y ejecución; y otros usuarios también tienen permisos de lectura y ejecución.

Para el usuario root, en general, los permisos de archivo no tienen efecto sobre él.


Cambiar atributos de archivo

1. chgrp: cambiar el grupo de archivos

Sintaxis:

chgrp [-R] 属组名 文件名

Opciones de parámetros

  • -R: cambia el grupo de archivos recursivamente; es decir, al cambiar el grupo de un directorio, si se agrega el-Rparámetro, los grupos de todos los archivos bajo ese directorio también se cambiarán.

2. chown: cambia el propietario del archivo (owner), y también puede cambiar el grupo al que pertenece el archivo.

Sintaxis:

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名

Entre al directorio /root (~) y cambie el propietario de install.log a la cuenta bin:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

Cambie el propietario y el grupo de install.log de vuelta a root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3. chmod: cambia los 9 atributos del archivo

Los atributos de archivo de Linux tienen dos métodos de configuración: uno es numérico y otro es simbólico.

Los permisos básicos de los archivos de Linux son nueve, a saber:owner/group/others (propietario/grupo/otros)Las tres identidades tienen cada una sus propiosread/write/executepermisos.

Primero repasemos los datos mencionados anteriormente: los caracteres de permiso del archivo son:-rwxrwxrwx, estos nueve permisos están agrupados de tres en tres. Aquí, podemos usar números para representar cada permiso. La tabla de puntuaciones de cada permiso es la siguiente:

  • r:4
  • w:2
  • x:1

Los puntajes de los tres permisos (r/w/x) de cada identidad (owner/group/others) deben sumarse. Por ejemplo, cuando el permiso es:-rwxrwx---el puntaje es:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0

Así que cuando configuremos el cambio de permisos, el número de permisos del archivo será770. La sintaxis del comando chmod para cambiar permisos es la siguiente:

 chmod [-R] xyz 文件或目录

Opciones y parámetros:

  • xyz: es el atributo de permiso de tipo numérico mencionado anteriormente, que esrwxla suma de los valores de los atributos.
  • -R: realiza un cambio continuo recursivo (recursive), y todos los archivos en los subdirectorios también se cambiarán.

Por ejemplo, si desea.bashrcestablecer todos los permisos de este archivo como habilitados, entonces el comando es el siguiente:

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

¿Y si desea cambiar los permisos a-rwxr-xr--? Entonces la puntuación del permiso se convierte en [4+2+1][4+0+1][4+0+0]=754.

Cambiar permisos de archivo con tipo simbólico

Hay otro método para cambiar permisos. De la introducción anterior podemos ver que, básicamente, los nueve permisos son:

  • user: usuario
  • group: grupo
  • others: otros

Entonces podemos usaru, g, opara representar los permisos de las tres identidades.

Además,arepresentaall, es decir, todas las identidades. Los permisos de lectura y escritura se pueden escribir comor, w, x, es decir, se puede ver de la siguiente manera en la tabla:

chmodu
g
o
a
+(añadir)
-(quitar)
=(establecer)
r
w
x
archivo o directorio

Si necesitamos establecer los permisos del archivo como-rwxr-xr--, podemos usarchmod u=rwx,g=rx,o=r nombre_de_archivopara establecerlo:

#  touch test1    // 创建 test1 文件
# ls -al test1    // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r  test1    // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

¿Y si queremos quitar permisos sin cambiar otros permisos existentes? Por ejemplo, para quitar el permiso de ejecución de todos, entonces:

#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

Más contenido de referencia

Otras extensiones