mkdir como outro usuário baseado no arquivo de configuração

mkdir como outro usuário baseado no arquivo de configuração

Temos um ambiente Linux compartilhado onde a maioria dos arquivos são montados em muitas máquinas em um compartilhamento NFSv3, que não controlamos. Como só temos permissões básicas de sistema de arquivos disponíveis (sem ACLs), estamos procurando uma maneira de permitir que as pessoas executem mkdir em um disco compartilhado sem conceder permissões de gravação a todo o grupo na raiz do compartilhamento.

Por exemplo, um binário com o bit setuid definido, e o proprietário do binário definido como o proprietário do compartilhamento, poderia ler um arquivo de configuração que definiria quais usuários ou grupos têm permissão para criar um diretório no referido diretório compartilhado. Em seguida, ele poderia decidir se o usuário que executa o binário tem permissão para criar um diretório no compartilhamento.

As permissões no compartilhamento de nível superior seriam:

drwxr-x--- 1 owner group …

Portanto, a idéia é que exista um wrapper para mkdir que seja executado como proprietário do compartilhamento, verifique um arquivo de configuração e crie o diretório solicitado se o arquivo de configuração permitir. Dessa forma, os usuários não podem simplesmente executar o mkdir integrado.

O diretório criado ficaria mais ou menos assim:

drwx------ 1 normaluser group 4096 Nov 3 18:14 newdir

Esta é a melhor abordagem? Ou estamos reinventando a roda?

Responder1

Defina umaskconforme cada usuário faz login:

umask 002

Depois disso, o grupo terá as mesmas permissões que o usuário:

mkdir newdir
ls -ld newdir
drwxrwxr-x+ 1 roaima roaima 0 Nov  3 22:04 newdir

Se não é isso que você deseja, crie um alias para mkdir

alias md='mkdir -m 775'
md newdir

informação relacionada