En Unix, hace mucho tiempo, aprendí sobre chmod
:la forma tradicional de establecer permisos, en Unix (y permitir que los programas obtengan privilegios, usando setuid, setgid).
Recientemente descubrí algunos comandos más nuevos en GNU/Linux:
setfacl
extiende el tradicionalugo:rwx
bits y elt
bit dechmod
.setcap
da más control de grano de aleta queug:s
bits dechmod
.chattr
Permite algunos otros controles (un poco de mezcla) del archivo.
¿Hay otros?
Respuesta aceptada:
chmod
:cambiar bits de modo de archivo
Uso (modo octal):
chmod <octal-mode> files...
Uso (modo simbólico):
chmod <references><operator><modes> files..
references
es una combinación de las letras ugoa
, que especifican el acceso de qué usuario a los files
será modificado:
u
el usuario que lo poseeg
otros usuarios en elfile
grupo deo
otros usuarios que no están en el grupo del archivo-
a
todos los usuariosSi se omite, por defecto es para todos los usuarios, pero solo los permisos permitidos por
umask
se modifican.operator
es uno de los caracteres+-=
:+
agregue los bits de modo de archivo especificados a los bits de modo de archivo existentes de cadafile
-
elimina los bits de modo de archivo especificados a los bits de modo de archivo existentes de cadafile
=
agrega los bits especificados y elimina los bits no especificados, excepto elsetuid
ysetgid
bits establecidos para directorios, a menos que se especifique explícitamente.
mode
consiste en una combinación de las letrasrwxXst
, que especifican qué bit de permiso se va a modificar:r
leerw
escribirx
ejecutar (o buscar directorios)X
ejecutar/buscar solo si el archivo es un directorio o ya tiene un bit de ejecución establecido para algún usuarios
setuid o setgid (según lasreferences
especificadas) )t
bandera de eliminación restringida o sticky bit
Alternativamente, el
mode
puede consistir en una de las letrasugo
, en cuyo caso el modo corresponde a los permisos actualmente otorgados al propietario (u
), miembro delfile
grupo de (g
) o permisos de usuarios en ninguna de las categorías anteriores (o
).
Los diversos bits de chmod
explicado:
- Control de acceso (ver también
setfacl
)rwx
— permisos de lectura (r), escritura (w) y ejecución/cruce (x).- Leer (r) afecta si se puede leer un archivo o si se puede listar un directorio.
- Escribir (w) afecta si se puede escribir en un archivo o si se puede editar un directorio (archivos agregados, eliminados, renombrados).
- Ejecutar (x) afecta si se puede ejecutar un archivo, utilícelo para secuencias de comandos (consulte
#!
), y otros archivos ejecutables. - Cruz (x) afecta si se puede recorrer un directorio.
s
yt
— sticky bit (t) y setgid (s) en directorios- El sticky bit solo afecta a los directorios. Evitará que cualquier persona, excepto el propietario del archivo y la raíz, elimine archivos en el directorio.
- el bit setgid en los directorios hará que los nuevos archivos y directorios tengan el grupo establecido en el mismo grupo, y los nuevos directorios tendrán el bit setgid establecido (consulte también los valores predeterminados en setfacl).
s
— setuid, setgid, en archivos ejecutables.- Esto puede afectar negativamente a la seguridad si no sabe lo que está haciendo.
- Cuando se ejecuta un ejecutable, si se establece uno de estos bits, el usuario/grupo efectivo del ejecutable se convertirá en el del archivo. Por lo tanto, el programa se ejecuta como ese usuario. ver
setcap
para una forma más moderna de hacer esto.
chown
chgrp
:
chattr
:cambiar los atributos del archivo
Uso:
chattr <operator><attribute> files...
operator
es uno de los caracteres +-=
:
* +
agrega los atributos seleccionados a los attributes
existentes de los files
* -
elimina los attributes
seleccionados * =
sobrescribe el conjunto actual de atributos que tienen los archivos con los attributes
especificados .
attribute
es una combinación de las letras acdeijstuADST
, que corresponden a los atributos:
a
agregar soloc
comprimidod
sin volcadoe
formato de extensióni
inmutablej
diario de datoss
borrado segurot
sin fusión de colau
imborrableA
sinatime
actualizacionesD
actualizaciones de directorio síncronasS
actualizaciones sincronizadasT
parte superior de la jerarquía de directorios
setfattr
:cambiar los atributos del archivo extendido
Uso (establecer atributo):
setfattr -n <name> -v <value> files...
Uso (eliminar):
setfattr -x <name> files...
name
es el nombre del atributo extendido para establecer o eliminar
value
es el nuevo valor del atributo extendido
setfacl
:cambiar las listas de control de acceso a archivos
Uso:
setfacl <option> [default:][<target>:][<param>][:<perms>] files...
option
debe incluir uno de los siguientes:
--set
establecer la ACL de un archivo o directorio, reemplazando la ACL anterior-m
|--modify
modificar la ACL de un archivo o directorio-
-x
|--remove
eliminar entradas de ACL de un archivo o directoriotarget
es una de las letrasugmo
(o la forma más larga que se muestra a continuación): -
u
,users
permiso de un usuario identificado porparam
, por defecto es el propietario del archivouid
si se omite g
,group
permiso de un grupo con nombre identificado porparam
, predeterminado para el grupo propietariouid
si se omitem
,mask
máscara de derechos efectivos-
o
,other
permisos de otrosperms
es una combinación de las letrasrwxX
, que corresponden a los permisos: -
r
leer w
escribirx
ejecutar-
X
ejecutar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuarioAlternativamente,
perms
puede ser un dígito octal (–
7
) indicando el conjunto de permisos.
setcap
:cambiar las capacidades del archivo
Uso:
setcap <capability-clause> file
Una capability-clause
consta de una lista separada por comas de nombres de capacidades seguida de una lista de pares de banderas de operador.
Los operadores disponibles son =
, +
y -
. Las banderas disponibles son e
, i
y p
que corresponden a la Efectiva , heredable y Permitido conjuntos de capacidades.
El =
El operador aumentará los conjuntos de capacidades especificados y restablecerá los demás. Si no se dan banderas junto con =
operador todos los conjuntos de capacidades se restablecerán. El +
y -
los operadores aumentarán o disminuirán uno o más conjuntos de capacidades especificados respectivamente.
chcon
:cambiar el contexto de seguridad de SELinux del archivo
Uso:
chcon [-u <user>] [-r <role>] [-t <type>] files...
usuario es el usuario de SELinux, como user_u
, system_u
o root
.
rol es el rol de SELinux (siempre object_r
para archivos)
tipo es el tipo de sujeto de SELinux
chsmack
:cambiar los atributos extendidos de SMACK
Uso:
chsmack -a <value> file
value
es la etiqueta SMACK que se establecerá para el SMACK64
atributo de archivo extendido
setrichacl:cambiar la lista de control de acceso enriquecido.
richacls es una función que agregará ACL más avanzadas.
Actualmente es un trabajo en progreso, por lo que no puedo contarles mucho sobre ellos. No los he usado.