Un poco tarde para la fiesta, pero en caso de que los futuros lectores se encuentren con esto;) Como lo han dicho otros, en un sistema de archivos OS-X estándar se ignora el setUID para directorios, y no parece haber una forma fácil de evitar esto ( mount -o
.... o lo que no). Como a menudo, la página de manual en realidad no cumple con el comportamiento de OS-X, literalmente dice:
4000 (el bit set-user-ID-on-execute) [...] Los directorios con el bit set-user-id set obligarán a que todos los archivos y subdirectorios creados en ellos sean propiedad del propietario del directorio y no de el uid del proceso de creación [...]
pero también enumera la posibilidad de lograr el mismo efecto sin renunciar a la propiedad original. Linux usa '[g /] setfacls' para efectos similares (son permisos que no son realmente visibles a primera vista, por lo que a veces puede ser una molestia).
En cuanto al 'cómo puedo lograr efectos similares', lea la página de manual completa y juegue con:
chmod +a 'guest allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' ./[DIRECTORY]
puedes consultar a través de
ls -le
si todo se ve bien Otras opciones incluyen insertar reglas en posiciones específicas, eliminar o reemplazar reglas específicas. Las dos opciones notables aquí son " file_inherit
y directory_inherit
" que permiten que las reglas se adjunten a un nuevo directorio / archivo.
Realmente no me gusta usar setUID, pero setGID es muy útil en servidores de archivos donde simplemente configurar el grupo 'principal' no funciona o los clientes tienen máscaras de archivos que no permiten la escritura grupal. Eso sería resuelto por:
chmod +a 'mygroup allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' /fileserver/groupfolders/mygroup