Quero criar um diretório onde qualquer usuário possa criar um arquivo, mas depois de criar o arquivo, a propriedade do usuário e do grupo desse arquivo será definida com valores predefinidos. Eu sei que existe uma maneira de fazer isso com GUID, UID, mas sempre esqueço o combo chmod.
Responder1
Você pode fazer isso para o GID:
chgrp users /path/to/directory
chmod g+s /path/to/directory
Você não pode fazer isso para UID. Diretamente.
Você poderia escrever uma entrada cron que de vez em quando executa os comandos:
chown -R user:group /path/to/directory
chmod -R 644 /path/to/directory
(certifique-se de montar o sistema de arquivos em que /path/to/directory está no nosuid para evitar uma condição de corrida em que alguém coloca um shell setuid no diretório)
Responder2
chown user:group file
?
Responder3
Lamento dizer isso, mas RTFM, por favor. De chmod(1)
:
Modes may be absolute or symbolic. An absolute mode is an octal number
constructed from the sum of one or more of the following values:
4000 (the setuid bit). Executable files with this bit set will
run with effective uid set to the uid of the file owner.
Directories with this bit set will force all files and sub-
directories created in them to be owned by the directory
owner and not by the uid of the creating process, if the
underlying file system supports this feature: see chmod(2)
and the suiddir option to mount(8).
2000 (the setgid bit). Executable files with this bit set will
run with effective gid set to the gid of the file owner.
1000 (the sticky bit). See chmod(2) and sticky(8).
0400 Allow read by owner.
0200 Allow write by owner.
0100 For files, allow execution by owner. For directories,
allow the owner to search in the directory.
0040 Allow read by group members.
0020 Allow write by group members.
0010 For files, allow execution by group members. For directo-
ries, allow group members to search in the directory.
0004 Allow read by others.
0002 Allow write by others.
0001 For files, allow execution by others. For directories
allow others to search in the directory.