Nie mogę uzyskać dostępu do katalogu, którego jestem członkiem grupy


10

Na moim serwerze internetowym mam katalog „www” z uprawnieniami drwxrwxr--i użytkownik: grupa root:www-data, aby Apache mógł uzyskać do niego dostęp.

Teraz dodałem swoje konto do grupy www-data za pomocą

sudo usermod -g www-data myuser

a jeśli to zrobię, groupsto www-databędzie wśród nich, ale kiedy spróbuję po prostu w nią zapisać, dostaję komunikat „Odmowa zezwolenia”.

Jeśli zmienię użytkownika na „mój użytkownik” lub ustawię grupę na inną, do której należę, mogę się przyłączyć.

Czy coś brakuje?

Odpowiedzi:


14

Twój proces ma ustawioną listę grup w czasie logowania, więc aby zmiana mogła zostać zastosowana, musisz się ponownie zalogować.

Sugeruję również dodanie www-datagrupy uzupełniającej zamiast podstawowej (która jest ustawiona na grupę, do której należy tylko użytkownik. Powinieneś być w stanie to zrobić za pomocą następujących poleceń:

# Reset to your original primary group
sudo usermod -g myuser myuser
# Add an extra supplementary group
sudo usermod --append -G www-data group

Jeśli chcesz, aby tworzone pliki były czytelne dla innych członków www-datagrupy, dostosuj odpowiednio swój umask:

umask 002

Ponieważ członkostwo w grupie podstawowej jest grupą osobistą, nie powinno to wpływać na bezpieczeństwo tworzonych plików.

Warto również ustawić setgidbit na katalogi, w których będziesz tworzyć pliki: spowoduje to, że pliki odziedziczą własność grupy katalogu nadrzędnego:

chmod g+s www/

1
zaloguj się ponownie, załatwiłem sprawę, więc głupio. Również bardzo przydatny serverfault.com/questions/6895/…
dazz

Dzięki, że wspomniałeś o Dazzie. Nigdy nie zrozumiałem, dlaczego to nie działało dla mnie xD. Teraz mogę odpoczywać w pokoju.
f4der

0

Dla mnie było to coś innego, co skutkowało tym błędem

ta sama nazwa użytkownika z dwoma różnymi identyfikatorami UID

Mam użytkownika „apache” skonfigurowanego lokalnie z UID = 123 oraz w katalogu NIS o tej samej nazwie („apache”), ale innym UID = 456. W zależności od kolejności uruchamiania i zależności od usługi, użytkownik lokalny może być używany, zanim użytkownik NIS będzie dostępny. Oznacza to również, że kiedy wyświetlasz nazwy użytkowników, będzie to mylące, oba pojawią się jako „apache”. Tylko gdy spojrzysz na numeryczne identyfikatory UID (na przykład ls -lnzobaczysz różnicę. Przykład: [root@mymachine]# ls -l drwxr-x--- 4 apache ggg1 88 May 31 17:12 file1 drwxr-x--- 4 apache ppp2 88 May 31 17:12 file2 zobacz, że identyfikator UID jest inny dla pliku 2 (456 zamiast 123): [root@mymachine]# ls -ln drwxr-x--- 4 123 48 88 May 31 17:12 file1 drwxr-x--- 4 456 48 88 May 31 17:12 file2

inna grupa zdefiniowana w konfiguracji Apache

Innym problemem, który miałem z niedopasowaniem użytkownika i wynikającym z niego błędem uprawnień, było ograniczenie dostępu do plików za pomocą grupy „httpd”. To była podstawowa grupa użytkowników „Apache” (która była wyświetlana przy użyciu idlub getent). Apache uruchamia się jako root, następnie przełącza się na skonfigurowanego użytkownika i upuszcza uprawnienia. Użytkownik przełącza się definiuje się /etc/httpd/conf/httpd.confprzez Userparametr. Oto jednak problem - grupa (GID), którą proces będzie działał, NIE jest podstawową grupą tego użytkownika. Grupa jest zdefiniowana w tym samym pliku konfiguracyjnym za pomocą Groupparametru.

Tak więc w moim przypadku było to ( /etc/httpd/conf/httpd.conf ): User apache Group apache

A katalogowi przyznano dostęp w następujący sposób: drwxr-x--- 4 someuser httpd 88 May 31 17:12 mydir

Ponieważ httpd (GID = 444) był podstawową grupą tego użytkownika: [root@somemachine]# id apache uid=48(apache) gid=444(httpd) groups=444(httpd)

Spowodowało to trochę czasu debugowania, dopóki nie zdałem sobie sprawy, że Groupw pliku konfiguracyjnym jest „apache”, a nie „httpd”.

Błąd z / var / log / httpd / error_log : [Fri May 31 17:13:40.070343 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of Require all granted: granted [Fri May 31 17:13:40.070367 2019] [authz_core:debug] [pid 2527] mod_authz_core.c(809): [client 11.22.32.21:53824] AH01626: authorization result of <RequireAny>: granted [Fri May 31 17:13:40.070396 2019] [core:error] [pid 2527] (13)Permission denied: [client 11.22.32.21:53824] AH00132: file permissions deny server access: /var/www/html/somedir/otherdir/css/file1.txt

Mam nadzieję, że to pomoże.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.