permisos de linux
introducción
Sabemos que existen dos tipos de usuarios en Linux: el usuario administrador root, y los usuarios ordinarios .
El usuario administrador root puede hacer cualquier cosa en Linux, mientras que los usuarios comunes solo pueden hacer cosas limitadas, puede usar el comando su para cambiar los tipos de usuario su user
y su root
(root se puede omitir):
(El símbolo del sistema para usuarios comunes es $, y el símbolo del sistema para usuarios raíz es #).
Para cambiar a raíz, un usuario común debe ingresar la contraseña de la cuenta raíz.
Para Linux existen dos tipos de usuarios, es decir, dos roles. Entonces, ¿un archivo o directorio tiene diferentes permisos para diferentes usuarios? Por supuesto que los hay. En este artículo, presentaré la gestión de permisos de los archivos de Linux:
Clasificación de los visitantes del archivo
Para un archivo o directorio, hay tres roles en Linux:
- Propietario del archivo :
u
(usuario) - Grupo del propietario del archivo :
g
(grupo) - Otros usuarios :
o
(otros)
El propietario, el grupo y otros usuarios son solo roles simples, y en realidad no determina que un determinado usuario deba tener ciertos permisos en un archivo .
El permiso de un usuario para un archivo depende no solo de la función del usuario en el archivo, sino también de los atributos del archivo, es decir, qué permisos otorga el archivo a la función. Solo combinando los dos podemos saber los permisos de un usuario para un archivo.
Tipos de archivos y derechos de acceso
Cuando ll
vemos las propiedades de un archivo, se muestran muchas propiedades del archivo, incluido el tipo de archivo, los derechos de acceso a los diferentes roles, el tamaño del archivo, la hora de la última modificación, el nombre del archivo, etc.:
la primera columna es el tipo de archivo y la siguiente El 9 aparece como derechos de acceso, el siguiente número es el número de enlaces, los siguientes dos nombres son el propietario y el grupo, y finalmente la hora de la última modificación y el nombre del archivo:
Tipo de archivo
En Linux, hay varios tipos de archivos:
d
:carpeta-
: archivo normall
: enlace suave (como un acceso directo de Windows)b
: archivo de dispositivo de bloque (como disco duro, unidad óptica, etc.)p
: archivo de tuberíac
: archivo de dispositivo de caracteres (como dispositivos seriales como pantallas)s
: archivo de toma
permiso de acceso
Hay tres tipos de permisos de usuario para un archivo: de lectura, de escritura y de ejecución :
- Medios legibles
r
(leer):
con permisos legibles, puede leer el contenido del archivo - Medios de escritura
w
(escribir):
con permiso de escritura, puede escribir o eliminar contenido en el archivo - Medios ejecutables
x
(ejecutar):
con permisos ejecutables, el archivo se puede ejecutar -
Indica que no hay un permiso determinado
Hay 9 columnas que describen los permisos en las propiedades del archivo anterior, que son, respectivamente, los permisos para el propietario, los permisos para el grupo al que pertenece y los permisos para otros usuarios . Las descripciones de los tres permisos para cada función son de lectura, escritura y ejecución , y estos órdenes son fijos.
Entonces, si hay un carácter correspondiente en la posición de un determinado permiso de un determinado rol, significa que el rol modificado tiene el permiso correspondiente. Si es así, significa que -
el usuario no tiene el permiso:
Por ejemplo, en este testf
file:
las primeras tres columnas son permisos para el propietario, For r
w
-
, significa que el propietario del archivo es legible y escribible, pero no ejecutable;
las tres columnas del medio son el grupo r
w
-
al que pertenece el archivo, y es, lo que indica que el grupo al que pertenece el archivo es legible y escribible, pero no ejecutable;
las últimas tres columnas son otros usuarios, para r
-
-
, lo que indica que otros usuarios pueden leerlo, no escribirlo y ejecutarlo
Método de representación del valor de permiso de archivo
Hay posiciones fijas para los tres permisos. Por supuesto, los permisos de un rol a un archivo se pueden expresar en forma de 0 y 1 binarios .
De esta forma, un archivo tiene 2^3=8 números binarios diferentes para permisos de rol:
comando para modificar permisos
chmod modificar permisos de archivo
Los permisos del archivo se pueden modificar usando chmod
el comando Esta operación solo la puede realizar el propietario del archivo y el superusuario root (se decía que el usuario root ignora los permisos)
Modificar por rol +/-/= permisos
chmod [选项] 用户+/-/=某项权限 文件名
Utilice este formato para modificar los permisos del archivo .
Entre ellos, los símbolos que representan roles son u
(propietario), g
(grupo), o
(otros usuarios), a
(todos los usuarios);
los símbolos que representan permisos son r
(permiso de lectura), w
(permiso de escritura), x
(permiso de ejecución);
los símbolos +
(para Agregar la autoridad indicada por el código de autoridad al ámbito de autoridad), -
(cancelar la autoridad indicada por el código de autoridad del ámbito de autoridad), =
(otorgar la autoridad indicada por el código de autoridad al ámbito de autoridad):
g
Restar w
permisos del grupo al que pertenece Otorgar permisos directamente
al grupo al que pertenece Agregar permisos a otros usuariosg
w
o
w
Use la opción -R para modificar recursivamente los permisos de los archivos del directorio
Modificado por tres números octales
chmod [选项] 三个八进制数 文件名
Permisos para modificar usuarios
Entre ellos, el primer número octal representa el permiso de propietario modificado, el segundo representa el permiso de grupo modificado y el tercero representa otros permisos de usuario.
En el frente, hemos usado 8 números octales para representar todas las combinaciones de permisos, por lo que podemos usarlos directamente aquí:
de manera similar, -R
las opciones de uso se pueden usar para el procesamiento recursivo.
chown modificar propietario
chown [选项] 用户名 文件名
Se utiliza para modificar el propietario del archivo, solo el usuario root puede modificar
-R
la opción para procesar recursivamente los archivos en el directorio:
chgrp modifica el grupo de pertenencia
chgrp [选项] 组名 文件名
El usuario del grupo utilizado para cambiar el archivo solo puede ser utilizado por el usuario root
Primero podemos crear un grupo qqq y crear un usuario temporal, convirtiendo a qqq en su principal grupo de usuarios. Luego use para chgrp
cambiar el grupo al que pertenece el archivo:
(Se puede lograr mediante groupadd [用户组名称]
(la creación de un grupo qqq), y useradd -g [用户组名称] [新用户名称]
(la creación de un nuevo usuario y hacer de este grupo el grupo de usuarios principal) instrucciones)
-R
las opciones pueden realizar el procesamiento recursivo de directorios:
umask modificar o ver máscara de permiso de archivo
umask
Se puede usar para ver la máscara de permisos de archivos
umask [三个八进制数]
Se usa para modificar la máscara de permisos de archivos
Antes de presentar el uso de este comando, primero comprendamos el papel de la máscara de permiso de archivo:
Permisos cuando se creó el archivo
El permiso predeterminado al crear un archivo normal es 0666
, y el permiso predeterminado al crear un archivo de directorio es 0777
. Pero después de que creamos un nuevo archivo o directorio, sus permisos no son 0666 y 0777: los permisos
de un nuevo archivo son en realidad los permisos predeterminados menos la máscara de permiso de archivo del usuario (octal) , para binarios de tres dígitos y En otras palabras, los permisos del usuario la máscara de permiso de archivo se invierte bit a bit, y luego el permiso predeterminado es AND bit a bit (&).
La máscara de permiso de archivo predeterminada para los usuarios normales es 0002
, y la máscara de permiso de archivo predeterminada para los usuarios root es.0022
Podemos usar umask
el comando para ver:
Para el archivo testf2 y el archivo testdir2 anteriores, sus permisos iniciales son 666 - 002 = 664 ( rw- rw- r--
) y 777 - 002 = 775 ( rwx rwx r-x
). También se puede calcular en binario.
Úselo umask [三个八进制数]
para modificar la máscara de permisos de archivos: después de
cambiar la máscara de permisos de archivos 0026
, el permiso del archivo ordinario recién creado es 666 - 026 = 640 ( rw- r-- ---
).
permisos de directorio
Para directorios:
- Permisos ejecutables: si el directorio no tiene permisos ejecutables, no puede acceder al directorio mediante CD.
- Permiso de lectura: si el directorio no tiene permiso de lectura, no puede usar comandos como ls para ver el contenido de los archivos en el directorio
- Permisos de escritura: si el directorio no tiene permisos de escritura, los archivos no se pueden crear en el directorio y los archivos no se pueden eliminar en el directorio
Podemos verificar que creamos un usuario temporal antes, y esta carpeta no tiene permisos para otros usuarios y grupos: en este momento,
como cuenta qiuzeyu, solo puede ver este directorio y no puede hacer nada más:
Pasamos en los permisos temporales a otros usuarios a su vez (operación raíz):
solo x
: (puede ingresar, no puede ver y modificar)
sí x
y r
(puede ingresar, ver, no puede modificar)
sí r
w
x
(puede ingresar, ver, modificar)
Sin embargo, aquí hay un problema, es decir, siempre que el usuario tenga el permiso de escritura de un determinado directorio, incluso si no tiene el permiso de escritura de los archivos en el directorio, puede eliminar directamente los archivos en el directorio. (que se muestra en el directorio bajo temp) tempdir
:
Cuando el directorio tempdir tiene permisos de escritura para otros usuarios, puede eliminar directamente los archivos en este directorio, independientemente de si tiene permisos de escritura para los archivos que contiene:
esto es absurdo, es una laguna y no puede escribirlo , pero puede eliminarlo directamente este archivo.
Usar el bit adhesivo puede resolver este problema:
poco pegajoso
El sticky bit toma el lugar de los permisos ejecutables de otros usuarios, indicados por t
.
Puede chmod +t [文件名]
agregar el bit adhesivo a los directorios usando
Con el sticky bit en su lugar, los archivos en este directorio solo pueden ser eliminados por el propietario del directorio, el propietario de los archivos en el directorio y la cuenta raíz :
Resumir
Hasta ahora, se ha introducido el contenido sobre los permisos de archivos de Linux,
incluida la clasificación de visitantes de archivos, tipos de archivos y permisos de acceso, métodos de representación de valores de permisos de archivos, instrucciones para modificar permisos, permisos de directorio y bits adhesivos.
Si cree que no presenté una parte determinada claramente o que hay un problema con una parte determinada, puede plantearlo en el área de comentarios.
Si este artículo es útil para usted, espero que se conecte con un solo clic.
Espero progresar junto con usted.