setacl HPUX deixa para trás

2

Eu tenho um script de shell que executo depois de desinstalar um aplicativo da web. O script serve para limpar as permissões necessárias durante a execução do aplicativo.

find /opt/path -exec setacl -d user:myUser {} ';'

Depois que isso é executado e o acl é removido, fico com um acl que se parece com o seguinte

user:101:--- /opt/path

Como posso chamar corretamente setacl para remover o usuário sem deixar um uid?

    
por Woot4Moo 14.01.2011 / 15:49

2 respostas

3

Se você citou seu comando com precisão:

find /opt/path -exec setacl -d user:myUser{} ';'

você está perdendo um espaço crucial:

find /opt/path -exec setacl -d user:myUser {} ';'

O primeiro invoca o comportamento indefinido (ou talvez definido pela implementação) de find ; pode ou não expandir o nome do arquivo quando o {} não estiver em um argumento sozinho. Mas, em seguida, chama o comando setacl sem nome de arquivo; combina o nome do arquivo com o argumento de controle user:myUser .

É pouco provável que esteja correto, por escrito - mas espero que seja apenas um erro de digitação na sua transcrição do seu sistema para o SO.

    
por 15.01.2011 / 01:18
1

O usuário 101 é o proprietário do arquivo? Nesse caso, você precisa alterar o arquivo para um ID de usuário diferente, com chown (além de, ou em vez de, a chamada setacl ). Cada arquivo pertence a um usuário e um grupo; ACLs vêm além disso.

Note que nunca usei ACLs em HP / UX, então talvez esteja faltando alguma coisa.

Pode ser útil mostrar a saída de ls -ld /opt/path e getacl /opt/path antes de executar o comando find .

    
por 15.01.2011 / 00:54