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 he descubierto algunos comandos más nuevos, en GNU / Linux:
setfaclextiende losugo:rwxbits tradicionales y eltbit dechmod.setcapda más control de grano de aleta queug:spedazos dechmod.chattrPermite algunos otros controles (un poco de una mezcla) del archivo.
¿Hay otros?
linux
permissions
filesystems
gnu
ctrl-alt-delor
fuente
fuente

chmodRespuestas:
chmod: cambiar bits de modo de archivoUso (modo octal):
Uso (modo simbólico):
referenceses una combinación de las letrasugoa, que especifican qué acceso del usuariofilesse modificará:uel usuario que lo poseegotros usuarios en elfilegrupo deootros usuarios que no están en el grupo del archivoatodos los usuariosSi se omite, el valor predeterminado es todos los usuarios, pero solo
umaskse modifican los permisos permitidos por .operatores uno de los personajes+-=:+agregar 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 los bitssetuidysetgidestablecidos para directorios, a menos que se especifique explícitamente.modeconsiste en una combinación de las letrasrwxXst, que especifican qué bit de permiso se va a modificar:rleerwescribirxejecutar (o buscar directorios)Xejecutar / buscar solo si el archivo es un directorio o ya tiene un bit de ejecución establecido para algún usuariossetuid o setgid (según lo especificadoreferences)tbandera de eliminación restringida o bit fijoAlternativamente,
modepuede consistir en una de las letrasugo, en cuyo caso el modo corresponde a los permisos actualmente otorgados al propietario (u), miembro delfilegrupo (g) o permisos de usuarios en ninguna de las categorías anteriores (o).Los diversos bits de
chmodexplicados:setfacl)rwx- leer (r), escribir (w) y ejecutar / cruzar (x) permisos.#!) y otros archivos ejecutables.syt- bit (t) fijo y setgid (s) en directorioss- setuid, setgid, en archivos ejecutables.setcapuna forma más moderna de hacer esto.chownchgrp:chattr: cambiar los atributos del archivoUso:
operatores uno de los caracteres+-=: *+agrega los atributos seleccionados a los existentesattributesdefiles*-elimina los seleccionadosattributes*=sobrescribe el conjunto actual de atributos que tienen los archivos con los especificadosattributes.attributees una combinación de las letrasacdeijstuADST, que corresponden a los atributos:aagregar soloccomprimidodsin volcadoeformato de extensióniinmutablejdiario de datosseliminación seguratsin fusión de colauindelebleAsinatimeactualizacionesDactualizaciones de directorio síncronoSactualizaciones sincrónicasTparte superior de la jerarquía de directoriossetfattr: cambiar los atributos del archivo extendidoUso (conjunto de atributos):
Uso (eliminar):
namees el nombre del atributo extendido para establecer o eliminarvaluees el nuevo valor del atributo extendidosetfacl: cambiar las listas de control de acceso a archivosUso:
optiondebe incluir uno de los siguientes:--setestablecer la ACL de un archivo o un directorio, reemplazando la ACL anterior-mEl |--modifymodificar la ACL de un archivo o directorio-xEl |--removeeliminar entradas de ACL de un archivo o directoriotargetes una de las letrasugmo(o la forma más larga que se muestra a continuación):u,userspermiso de un usuario identificado identificado porparam, predeterminado para el propietario del archivouidsi se omiteg,grouppermiso de un grupo con nombre identificado porparam, predeterminado al grupo propietariouidsi se omitem,maskmáscara de derechos efectivoso,otherpermisos de otrospermses una combinación de las letrasrwxX, que corresponden a los permisos:rleerwescribirxejecutarXejecutar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuarioAlternativamente,
permspuede ser un dígito octal (0-7) que indica el conjunto de permisos.setcap: cambiar las capacidades del archivoUso:
A
capability-clauseconsiste en una lista de nombres de capacidades separados por comas seguidos de una lista de pares de operador-bandera.Los operadores disponibles son
=,+y-. Los indicadores disponibles sone,iypque corresponden a los conjuntos de capacidades Efectivo , Heredable y Permitido .El
=operador elevará los conjuntos de capacidades especificados y reiniciará los demás. Si no se dan banderas en conjunto con el=operador, todos los conjuntos de capacidades se restablecerán. El+y-los operadores puedan aumentar o disminuir el uno o más conjuntos de capacidades especificadas respectivamente.chcon: cambiar el contexto de seguridad de SELinux del archivoUso:
usuario es el usuario de SELinux, como
user_u,system_uoroot.role es el rol de SELinux (siempre
object_rpara archivos)tipo es el tipo de sujeto SELinux
chsmack: cambiar los atributos extendidos de SMACKUso:
valuees la etiqueta SMACK que se establecerá para elSMACK64atributo de archivo extendidosetrichacl : cambia la lista de control de acceso enriquecido.
Los richacl son una característica que agregará ACL más avanzadas.
Actualmente un trabajo en progreso, por lo que no puedo contarte mucho sobre ellos. No los he usado.
Consulte también esta pregunta ¿Existen ACL de sistema de archivos más avanzadas además de las tradicionales 'rwx' y POSIX ACL? y página man
fuente
desde un alto nivel:
-rwxrwxrwxmanejachmod, junto con los identificadores de propietarios y grupos vinculados a cada archivo o carpeta en el sistema de archivos manejado porchownychgrp; básicamente todos conocen esta pieza.Otros puntos clave:
user_xattry podría elegir no tener xattr disponible en el sistema de archivos raíz en el momento de la instalación; Creo que ahora con RHEL / CentOS 7 que xattr está allí por defecto y no puede no tenerlo.lssi ve-rwxrwxrwx+que+indica que un atributo de archivo extendido está presente en ese objeto .tarde cosas con xattr, si permanece en ese sistema no hay problema, pero si va a otra parte puede ser problemático si los xattr son importantes (es decir, samba y copia entre win10 ntfs y linux ext3 / 4, btrfs, xfs; o volver y adelante entre dispositivos de almacenamiento conectados a la red)xattrs, entoncesxattrs teóricamente no puede significar nada y caerse o despojarse porque en ese momento es solo equipaje adicional.El recurso compartido básico de Samba no funciona en RHEL / CentOS 7 ... porque selinux está configurado de forma predeterminada para hacer cumplir; selinux negó todo hasta que lo permitiste, así que deshabilita selinux (malo) o configúralo en permisivo. Si deja que selinux sea obligatorio, debe etiquetar la carpeta que desea compartir con un atributo extendido, para que selinux reconozca y permita el recurso compartido. Entonces, si deja que selinux se aplique con todos los comandos de selinux (que luego establecerán los
xattrs necesarios ):usted usa además selinux, en el sistema linux con este recurso compartido de samba, para imponer restricciones en los archivos / carpetas bajo este recurso compartido de samba (usando cualquier atributo extendido). Debido a que estos archivos / carpetas se comparten, un usuario copia legítimamente algunos en su PC win10 y luego los copia de nuevo, perdiendo el atributo extendido. Ahora, después de esa copia de ida y vuelta, en ese sistema Linux, selinux restringirá el acceso a dichos archivos porque el xattr necesario ya no está presente, y los usuarios / administradores golpean sus cabezas preguntándose por qué las cosas simplemente funcionaron ahora no ... configuran selinux para permitir y reconocer el problema de la pérdida de
xattrs que aparece en los registros de auditoría, pero no indicará directamente que fue el resultado de la copia de ida y vuelta que perdió el xattr. También considere la copia de seguridad y restauración de datos, y el trabajo potencial necesario para recordarxattrs además de uid / gid si desea aplicar la seguridad basada en losxattrs correctos .fuente