English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Atributos básicos de archivos de Linux

El sistema Linux es un sistema de múltiples usuarios典型, donde diferentes usuarios están en diferentes posiciones y tienen diferentes permisos.

Para proteger la seguridad del sistema, el sistema Linux especifica diferentes permisos de acceso de diferentes usuarios al mismo archivo (incluidos los archivos de directorio).

En Linux, generalmente usamos los siguientes dos comandos para modificar el usuario y los permisos de un archivo o directorio:

  • chown (cambiar propietario): Modificar el usuario y el grupo propietarios.

  • chmod (cambiar modo): Modificar los permisos del usuario.

En la imagen siguiente, se otorgan derechos de usuario mediante chown y se configuran permisos de acceso mediante chmod.

En Linux, podemos usar los comandos ll o ls -l para mostrar las propiedades de un archivo y el usuario y el grupo al que pertenece, como:

[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 Abr 19  2012 boot
……

En el ejemplo debin La primera propiedad del archivo se representa con d. d en Linux representa que el archivo es un archivo de directorio.

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为d则是目录

  • 当为 - 则是文件;

  • 若是l则表示为链接文档(link file);

  • 若是b则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

  • 若是c则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为rwx的三个参数的组合。其中,r代表可读(read)、w代表可写(write)、x代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号  - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用r字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

2、5、8 位表示写权限,如果用w字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用x字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

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 Abr 21  2014 mysql
……

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来指定了不同的文件访问权限。

在以上示例中,mysql文件是一个目录文件,属主和属组都为mysql,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于root用户来说,一般情况下,文件的权限对其不起作用。

更改文件属性

1、chgrp:更改文件属组

Sintaxis:

chgrp [-R] 属组名 文件名

opciones de parámetros

  • -R: Cambiar recursivamente el grupo de archivo, es decir, al cambiar el grupo de un archivo en un directorio, si se agrega-El parámetro R, todos los archivos en el directorio cambiarán el grupo.

2、chown:cambiar propietario de archivo, también puede cambiar el grupo de archivo

Sintaxis:

chown [–R] Nombre del propietario Nombre del archivo
chown [-R] Nombre del propietario:Nombre del grupo Nombre del archivo

Ingresar /El directorio raíz (~) cambia el propietario de install.log al usuario 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

Restaurar el propietario y el grupo de install.log 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:cambiar archivo9atributos

Linux los archivos tienen dos métodos de configuración de atributos, uno es numérico y el otro es simbólico.

Los permisos básicos de archivos de Linux tienen nueve,分别是 owner/group/otros (propietario/grupo/otros) Tres identidades tienen sus propios leer/escribir/ejecutar permisos.

Revisemos brevemente los datos mencionados anteriormente: los caracteres de permisos del archivo son: -rwxrwxrwx , Estos nueve permisos se dividen en grupos de tres! Podemos usar números para representar cada permiso, y la tabla de correspondencia de los valores de cada permiso es la siguiente:

  • r:4

  • w:2

  • x:1

Cada identidad (owner/group/others) Cada uno de los tres permisos (r/w/x) La puntuación debe sumarse, por ejemplo, cuando los permisos son: -rwxrwx--- La puntuación es:

  • owner = rwx = 4+2+1 = 7

  • group = rwx = 4+2+1 = 7

  • others= --- = 0+0+0 = 0

Por lo tanto, cuando establezcamos el cambio de permisos, el número de permisos del archivo será 770La sintaxis del comando chmod para cambiar los permisos es la siguiente:

 chmod [-R] xyz archivo o directorio

Opciones y parámetros:

  • xyz : Es la propiedad de permisos numéricos mencionada anteriormente, que es la suma de los valores numéricos de los atributos rwx.

  • -R : Realiza un cambio continuo (recursivo) en el directorio, es decir, también cambia todos los archivos en el subdirectorio.

Por ejemplo, si deseas establecer todos los permisos del archivo .bashrc, el comando sería 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

entonces los puntos de permisos se convierten en [ -rwxr-xr-- ¿Entonces, si queremos cambiar los permisos a4+2+1][4+0+1][4+0+0]=754。

Cambio de permisos de archivo mediante símbolos

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

  • user: usuario

  • group: grupo

  • others: otros

Por lo tanto, podemos usar u, g, o representa los permisos de tres identidades.

Además, a representa alles decir, todos los identidades. Los permisos de lectura y escritura pueden escribirse como r, w, x, es decir, se puede ver de la siguiente manera:

chmodu
g
o
a
+(agregar)
-(quitar)
=(establecer)
r
w
x
Archivo o directorio

Si necesitamos establecer los permisos de archivo: -rwxr-xr-- Puede usar chmod u=rwx,g=rx,o=r nombre_de_archivo para configurar:

# touch test1    // Crear test1 Archivo
# ls -al test1    // Ver test1 Permisos predeterminados
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1    // Modificar test1 Permisos
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

Y si queremos quitar los permisos sin cambiar otros permisos existentes, por ejemplo, quitar todos los permisos ejecutables de todos los usuarios, entonces:

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

Más contenido de referencia