Como você define o usuário padrão no Linux para criação de arquivos?

2

Eu quero criar um diretório, por exemplo:

/ public / all

Mas eu quero isso para que, se você criar um arquivo no total, o proprietário seja root, mas qualquer um com acesso à pasta / public / all possa excluir / editar / etc o arquivo, apenas não altere as permissões. (Eu usarei um aplicativo "setx" criado automaticamente para alterar o valor de execução, se necessário.)

Razão para isso, eu não quero que você seja capaz de negar a outros usuários acesso de gravação / leitura aos arquivos em / public / all. Eu ouvi que setuid em diretórios não funciona para isso.

    
por Not a Name 26.11.2011 / 01:23

1 resposta

6

Você não pode fazer isso; o proprietário inicial é sempre o criador do objeto.

O que você pode fazer é definir as ACLs padrão para permitir automaticamente leitura / gravação para todos:

setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /public/all

Opcionalmente, também defina um grupo padrão:

chown :nobody /public/all
chmod g+s /public/all

No entanto, nenhuma delas impedirá que o proprietário altere as permissões mais tarde.

Uma solução alternativa é monitorar o diretório com inotify (usando incron ) e executar automaticamente chown na criação. Coloque isso em incrontab:

/public/all IN_CREATE chown nobody:nobody $@/$#; chmod 0666 $@/$#
    
por 26.11.2011 / 14:39

Tags