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.