Respecto a los permisos en carpetas intermedias creadas usando "mkdir -pm 764 a/b/c"

Respecto a los permisos en carpetas intermedias creadas usando "mkdir -pm 764 a/b/c"

Cuando lo uso mkdir -pm 764 a/b/c , solo cobtuve ese permiso 764, mientras que atengo bel permiso predeterminado. ¿Por qué es así? ¿Por qué no todos los directorios obtienen el permiso 764?

Respuesta1

La mkdirutilidad crea un directorio único. Cuando se usa con -mél, se crea el directorio y se ejecuta efectivamente chmoden él con los permisos otorgados (aunque esto no sucede en dos pasos, lo que podría ser importante en algunas circunstancias).

Con -p, se crean los directorios intermedios que aún no existen. El modo dado -mtodavía solo se aplica al apellido en la ruta, ya que ese es el directorio que desea crear (los directorios intermedios se crean para permitir la creación de ese directorio con el modo dado).

ElEstándar POSIX paramkdirdecir que cada directorio intermedio debe crearse con el modo (S_IWUSR|S_IXUSR|~filemask)&0777donde filemaskestá el valor de umask de su shell.

En la sección "Uso de la aplicación", dice

[...] Para los componentes de nombre de ruta intermedios creados por mkdir, el modo es el predeterminado modificado por u+ wxpara que los subdirectorios siempre se puedan crear independientemente de la máscara de creación del modo de archivo; Si se desean permisos finales diferentes para los directorios intermedios, se pueden cambiar posteriormente con chmod.

Esto significa que el modo para los directorios intermedios está configurado para permitirle crear un directorio que potencialmente no tiene permisos de escritura o ejecución de usuario. Si a los directorios intermedios tampoco se les otorgaran permisos de ejecución y/o escritura, no se podrían crear los últimos componentes de la ruta del directorio.

En su caso específico, utilice

mkdir -p -m 764 a/b/c
chmod 764 a/b
chmod 764 a

Si está seguro de que ninguno de los directorios existía anteriormente, utilice

mkdir -p -m 764 a/b/c
chmod -R 764 a

información relacionada