usuario una todos propietario permisos los especifico dar carpeta cambiar archivos c linux permissions mkdir

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.