Encontrei o setfacl
neste link:
sudo setfacl -m u:$(id -u):rwx -R /some/folder
Mas ele definirá todas as permissões de arquivo rwx
conforme different
minha exigência.
Aqui está a pasta de teste:
rm -rf /test
mkdir -p /test/hello/world
echo "hello" > /test/hello.txt
echo "hi" > /test/hi.sh
chmod 755 /test/hi.sh
echo "foo" > /test/foo.sh
chmod 400 /test/foo.sh
echo "bar" > /test/bar.sh
chmod 700 /test/bar.sh
Aqui estão as permissões do arquivo:
# ls -l /test
-rwx------ 1 root root 4 Jun 1 12:20 bar.sh
-r-------- 1 root root 4 Jun 1 12:20 foo.sh
drwxr-xr-x 3 root root 4096 Jun 1 12:20 hello
-rw-r--r-- 1 root root 6 Jun 1 12:20 hello.txt
-rwxr-xr-x 1 root root 3 Jun 1 12:20 hi.sh
Quero conceder ao usuário 1234
a mesma permissão que root
:
sudo setfacl -m u:1234:(???) -R /test
Aqui está a permissão esperada para o usuário 1234 (sem alterar o proprietário aqui, apenas use 1234 aqui para explicar as permissões detalhadas como as mesmas do usuário root):
# ls -l /test
-rwx------ 1 1234 root 4 Jun 1 12:20 bar.sh
-r-------- 1 1234 root 4 Jun 1 12:20 foo.sh
drwxr-xr-x 3 1234 root 4096 Jun 1 12:20 hello
-rw-r--r-- 1 1234 root 6 Jun 1 12:20 hello.txt
-rwxr-xr-x 1 1234 root 3 Jun 1 12:20 hi.sh
Como escrever isso sudo setfacl -m u:1234:(???) -R /test
?
Apenas uma indicação, pois considero isso um pouco desajeitado... Mas você vai entender.
Em um loop de shell:
Foi um teste ... Quando estiver satisfeito com o resultado, remova-o
--test
e execute-o novamente para realmente modificar as ACLs.