Como remover a ACL de um diretório e retornar ao controle de acesso normal?

29

Utilizamos um servidor de hospedagem do FreeBSD 10.3, onde não temos autoridade para ser um superusuário. Usamos o servidor para executar o apache2 nas páginas da web da nossa empresa. O administrador anterior de nossas páginas da Web parecia definir uma permissão de ACL para um diretório, mas queremos removê-la. Digamos que o diretório seja chamado foobar.

Agora, o resultado de ls -al foobaré o seguinte:

drwxrwxr-x+   2 myuser  another_user   512 Nov 20  2013 foobar

E a permissão é a seguinte:

[myuser@hosting_server]$ getfacl foobar
# file: foobar/
# owner: myuser
# group: another_user
user::rwx
group::rwx
mask::rwx
other::r-x

Aqui, queremos remover a permissão da ACL e o sinal de mais no final da lista de permissões. Portanto, nós fizemos

setfacl -b foobar

Eliminou a permissão especial governada pela ACL, mas não apagou o sinal de mais +.

Nossa pergunta é como podemos apagar o sinal de mais +na lista de permissões, mostrada por 'ls -al foobar'?

Taiki Bessho
fonte
getfaclindica não ACLs. No entanto, lsestá mostrando a +. Tem certeza de que está sempre olhando para o mesmo arquivo? (isto é, normalmente a razão para me)
ctrl-alt-Delor
@ Richard sim, definitivamente o mesmo arquivo.
Taiki Bessho

Respostas:

28

Nosso problema foi resolvido usando:

setfacl -bn foobar

O ponto foi que também tivemos que remover o aclMask do diretório com uma opção -n ... A página de manual setfacldiz o seguinte:

 -n      Do not recalculate the permissions associated with the ACL mask
         entry.  This option is not applicable to NFSv4 ACLs.

Não sabemos ao certo por que essa opção funcionou, mas funcionou ...


Caso você obtenha d?????????permissão após a solução acima, tente chmod -R a+rXcomo dois comentados abaixo.

Taiki Bessho
fonte
Isso fez com que meus arquivos: d?????????isso é estranho
JREAM
11
Atualização: Isso resolveu chmod -R a+rXa capital X
JREAM
@JREAM Qual sistema Linux você usa?
Taiki Bessho
Eu tenho o mesmo d ?????? coisa com o Ubuntu 16. Corrigido com o chmod acima. Esquisito.
TonyG
3

Estranho ... não é possível reproduzir:

ls -l | grep foobar
drwxr-xr-x+ 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

setfacl -b foobar/
ls -l | grep foobar
drwxr-xr-x 2 maulinglawns maulinglawns 4096 jan 24 14:25 foobar

Infelizmente, não tenho acesso ao BSD para testar agora.


Informação do sistema:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:   jessie
maulinglawns
fonte
Na verdade, eu não posso reproduzir no servidor Ubuntu 16.04.1 ...
Taiki Bessho
Por fim, consegui excluir o sinal de mais, setfacl -bn foobarmas não sei por que a nopção funcionou.
Taiki Bessho