Si tengo una carpeta raíz con algún permiso restrictivo, digamos 600, y si las carpetas / archivos secundarios tienen permiso 777, ¿todos podrán leer / escribir / ejecutar el archivo secundario aunque la carpeta raíz tenga 600?
permissions
directory
Ken Li
fuente
fuente
Respuestas:
La regla precisa es: puede atravesar un directorio si y solo si tiene permiso de ejecución.
Entonces, por ejemplo, para acceder
dir/subdir/file
, necesita ejecutar permisosdir
ydir/subdir
, además de los permisos activadosfile
para el tipo de acceso que desea. Al entrar en casos de esquina, no estoy seguro de si es universal que necesites permiso de ejecución en el directorio actual para acceder a un archivo a través de una ruta relativa (lo haces en Linux).La forma en que accede a un archivo es importante. Por ejemplo, si tiene permisos de ejecución activados
/foo/bar
pero no activados/foo
, pero su directorio actual sí/foo/bar
, puede acceder a los archivos a/foo/bar
través de una ruta relativa pero no a través de una ruta absoluta. No puede cambiar a/foo/bar
en este escenario; presumiblemente se ha realizado un proceso más privilegiadocd /foo/bar
antes de no ser privilegiado. Si un archivo tiene múltiples enlaces duros, la ruta que utiliza para acceder a él determina sus restricciones de acceso.Los enlaces simbólicos no cambian nada. El kernel utiliza los derechos de acceso del proceso de llamada para atravesarlos. Por ejemplo, si se
sym
trata de un enlace simbólico al directoriodir
, debe ejecutar permisodir
para accedersym/foo
. Los permisos en el enlace simbólico en sí mismo pueden o no importar dependiendo del sistema operativo y el sistema de archivos (algunos los respetan, otros los ignoran).Eliminar el permiso de ejecución del directorio raíz restringe efectivamente a un usuario a una parte del árbol de directorios (en el que debe cambiar un proceso más privilegiado). Esto requiere que las listas de control de acceso sean de cualquier uso. Por ejemplo, si
/
y/home
está fuera de los límites dejoe
(setfacl -m user:joe:0 / /home
) y/home/joe
esjoe
el directorio de inicio, entoncesjoe
no podrá acceder al resto del sistema (incluida la ejecución de scripts de shell/bin/sh
o binarios vinculados dinámicamente que necesitan acceder/lib
, por lo que usted " d necesita profundizar para un uso práctico, por ejemplosetfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib
).El permiso de lectura en un directorio da derecho a enumerar las entradas. Otorgar permisos de ejecución sin otorgar permisos de lectura ocasionalmente es útil: los nombres de las entradas sirven como contraseñas para acceder a ellas. No se me ocurre ningún uso para dar permiso de lectura o escritura a un directorio sin permiso de ejecución.
fuente
No. El permiso de la carpeta raíz limita el permiso de los archivos secundarios. Puedes probarlo.
Entiendo esto:
fuente
Puede hacer que el directorio secundario se pueda escribir, incluso el directorio principal no lo es. Hago esto para grupos.
Por ejemplo: el directorio principal es propiedad del codificador de grupo
directorio hijo
Usted (cualquier miembro del grupo codificador) aún puede escribir en el directorio secundario pero no en el directorio principal.
fuente
Puede crear el enlace rígido para acceder al archivo incluso si no tiene un privilegio de ejecución en el directorio principal. Pero el problema aquí es que debe crear el enlace duro antes de perder su privilegio de ejecución en el directorio principal
fuente