eu tenho a seguinte pasta
drwxr-xr-x 7 root root 45056 Nov 25 12:39 data
que incluem subdiretórios e arquivos são todos 755,
mas quando eu crio um novo arquivo dentro desses diretórios, ele obtém permissão
-rw-r--r-- 1 root root 0 Nov 28 2013 new
como fazer com que novos arquivos sejam criados nestes diretórios take 755 sem fazer isso manualmente eu tentei chmod g+s e nada aconteceu,
qualquer dica
Responder1
A única maneira de definir as permissões de bits é através do seu umask. Quando um arquivo é criado, digamos, com permissões 666 (isto é em octal), sua umask decide quais bits serão transformados em 0.
Para explicar melhor: rwx rwx rwx é para User Group World respectivamente. Se cada bit fosse definido como 1 (111 111 111), seria 0777 (em octal). 0666 é 110:110:110 ou rw_rw_rw. Espero que isso faça sentido.
Sua umask será, por padrão, 022 - (octal 022). Isto diz quais bits devem ser mantidos (0) e quais não são (1). (É um pouco não intuitivo dessa forma).
Pegue um arquivo criado 666: 6 & ~0 = 6 6 & ~2 = 4 6 & ~2 = 4
Assim o arquivo criado terá permissões de 644 (rw-r--r--).
Observe que o efeito de umask é mascarar os bits fornecidos à chamada de criação de arquivo. Se a chamada for 666, não há como fazer 755 sem fazer um "arquivo chmod a+x" manualmente.
Além disso, o efeito de g+s, configurando o grupo suid, é definir o grupo proprietário, não as permissões de bits. O Windows é muito mais refinado nesse aspecto (ACLs), mas existem extensões de sistema de arquivos para adicionar permissões ACL aos sistemas de arquivos Linux.