Você não pode. Use ACLs estendidas para fornecer as permissões necessárias (com os padrões para aplicá-las a todos os novos arquivos) e efetivamente ignore os bits de permissão tradicionais.
tocando com uma caixa scilinux 6.1. fs é ext4 com acls ativado.
Se eu tiver um diretório, digamos / pub, quero que tudo nele sempre, sem exceção, tenha um proprietário predefinido, um grupo predefinido, um conjunto predefinido de permissões e um conjunto predefinido de acls, independentemente de quem copiou o arquivo / diretório / o que quer que seja, não importa se ele entra, não importa o que aconteça.
Basicamente, qualquer arquivo / diretório no diretório 'top' (/ pub no caso de / pub, src no caso de / usr / src, html no caso de / var / lib / html, o que for) Sempre pertencente: agrupado pelo proprietário: grupo do diretório principal, não importa como ele chegue lá, não importa quem tente alterá-lo. E as permissões sempre serão o que for o conjunto de permissões, não importa o que ou como, e o conjunto de acl será sempre o mesmo, não importa o que / onde.
Como configuro isso?
Eu sei que isso deve ser um FAQ, mas mergulhado se eu conseguir.
Você não pode. Use ACLs estendidas para fornecer as permissões necessárias (com os padrões para aplicá-las a todos os novos arquivos) e efetivamente ignore os bits de permissão tradicionais.
Você pode usar o recurso "set group id" com chmod g+s /pub
para forçar o grupo a ser o mesmo para todos os arquivos e diretórios adicionados a esse diretório, mas "set user id" ( chmod o+s /pub
) não funciona na maioria dos sistemas.
Um jeito sujo de fazer isso é montar sistemas de arquivos FAT e usar uid = gid = para isso. Dessa forma, você não terá como alterar o proprietário de qualquer arquivo, simplesmente porque o sistema de arquivos não suporta usuários, grupos ou ACLs.
Você pode testá-lo com algo parecido com os comandos listados abaixo:
dd if=/dev/zero of=/var/pubfs bs=1024 count=40960 # Create a file to test it
mkfs.vfat -F 32 /var/pubfs # Format it as FAT32
mount -t vfat -o uid=user,gid=group /var/pubfs /pub # Mount it
Você não pode. Uma opção que pode funcionar para você seria configurar um cron job para executar periodicamente um chown -R
, chgrp -R
e chmod -R
em toda a estrutura de diretório para definir recursivamente o proprietário / grupo / permissões como você gostaria. É definitivamente um kludge, e será muito trabalhoso para estruturas de diretórios muito grandes, mas irá corrigir as permissões.
Você precisará fornecer o proprietário / grupo / permissões para os comandos e o diretório de nível superior para operar para que esses comandos funcionem, como chown -R nobody /tmp/testdir
.
Como alternativa, você pode configurar um programa usando inotify
para observar as alterações no diretório e, em seguida, verificar ou corrigir as permissões conforme necessário, mas o inotify tem seu próprio conjunto de problemas, especialmente se houver muitos subdiretórios aninhados. Você tem que se inscrever para alterar as notificações em todos esses diretórios ...
Parece que a resposta do @ womble é a melhor aposta, mas não usei ACLs estendidas. Só queria dar algumas alternativas.
Tags linux access-control-list