Jak usunąć ACL z katalogu i wrócić do zwykłej kontroli dostępu?

29

Używamy serwera hostingowego FreeBSD 10.3, na którym nie mamy uprawnień do bycia superużytkownikiem. Używamy serwera do uruchamiania apache2 dla stron internetowych naszej firmy. Poprzedni administrator naszych stron internetowych ustawił uprawnienia ACL do katalogu, ale chcemy je usunąć. Powiedzmy, że katalog się nazywa foobar.

Teraz wynik ls -al foobarjest następujący:

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

Zezwolenie jest następujące:

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

W tym miejscu chcemy usunąć uprawnienie ACL i znak plus na końcu listy uprawnień. Dlatego zrobiliśmy

setfacl -b foobar

Wyeliminowało to specjalne zezwolenie regulowane przez ACL, ale nie usunęło znaku plus +.

Nasze pytanie brzmi: w jaki sposób możemy usunąć znak plus +na liście uprawnień, pokazanej jako „ls -al foobar”?

Taiki Bessho
źródło
getfaclwskazuje nie ACL. Jednak lspokazuje a +. Czy na pewno za każdym razem przeglądasz ten sam plik? (z reguły jest to dla mnie powód)
ctrl-alt-delor
@richard tak, zdecydowanie ten sam plik.
Taiki Bessho

Odpowiedzi:

28

Nasz problem został rozwiązany przy użyciu:

setfacl -bn foobar

Chodziło o to, że musieliśmy również usunąć aclMask z katalogu z opcją -n ... Strona man setfaclmówi następująco:

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

Nie jesteśmy pewni, dlaczego ta opcja działała, ale działała ...


Jeśli uzyskasz d?????????pozwolenie po powyższym rozwiązaniu, wypróbuj chmod -R a+rXdwa komentarze poniżej.

Taiki Bessho
źródło
To sprawiło, że moje pliki: d?????????to dziwne
JREAM
1
Aktualizacja: To rozwiązało go chmod -R a+rXwielką X
JREAM
@ JREAM Z jakiego systemu Linux korzystasz?
Taiki Bessho
Mam to samo d ?????? z Ubuntu 16. Naprawiono powyższy chmod. Dziwne.
TonyG
3

Dziwne ... nie można odtworzyć:

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

Niestety nie mam teraz dostępu do BSD do testowania.


Informacja o systemie:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:   jessie
maulinglawns
źródło
Rzeczywiście, nie mogę reprodukować na serwerze Ubuntu 16.04.1 ...
Taiki Bessho
W końcu udało mi się usunąć znak plus, setfacl -bn foobarale nie wiem, dlaczego ta nopcja działała.
Taiki Bessho,