una - la función linux mkdir no puede autorizar el permiso completo
dar permisos a un usuario especifico en linux (3)
Compruebe la función umask: man 2 umask
Estoy probando la función mkdir
para crear un nuevo directorio:
folder = mkdir("./linux", 511);
o
folder = mkdir("./linux", 0777);
o
folder = mkdir("./linux", S_IRWXU | S_IRWXG | S_IRWXO);
Como puede ver, intento autorizar el permiso completo para el directorio, pero esto es lo que surge con ls -l | grep linux
ls -l | grep linux
:
drwxr-xr-x 2 manuzhang manuzhang 4096 2012-01-04 06:53 linux
¿Por qué no puedo autorizar el permiso de escritura para grupos y otros?
Actualizaciones :
Algo extraño, como me dijeron que probé umask
. Funciona con umask(S_IWGRP)
o umask(S_IWOTH)
pero falla con umask(S_IWGRP | S_IWOTH)
, ¿alguna idea?
Del man 2 mkdir
:
El modo argumento especifica los permisos para usar. Se modifica mediante umask del proceso de la forma habitual: los permisos del directorio creado son (mode & ~ umask & 0777).
Te sugiero que mires tu umask: probablemente esté configurado en 0022
. Pruebe un chmod
post- mkdir
.
Los permisos establecidos por llamadas al sistema como mkdir
y open
siempre se enmascaran frente a umask
del proceso actual. Puede cambiar la umask actual usando la función umask()
; asegúrese de volver a configurarlo cuando haya terminado.