como cada arquivo / diretório em uma árvore para ter o mesmo dono, grupo, perms, acls?

2

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.

    
por user52874 26.08.2011 / 03:26

4 respostas

4

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.

    
por 26.08.2011 / 03:56
1

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.

    
por 26.08.2011 / 03:38
1

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
    
por 29.08.2011 / 15:04
0

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.

    
por 26.08.2011 / 09:03