Napotykam dziwny problem na maszynie unix / linux:
Jestem członkiem grupy, nazwijmy to grupą A, a pewien plik (który ma innego właściciela) również należy do grupy A. Uprawnienia do tego pliku to
-rw-rw----
więc spodziewam się, że powinienem móc otworzyć ten plik, ale nie jestem: otrzymam komunikat o błędzie „Odmowa zezwolenia”, gdy spróbuję spojrzeć na zawartość pliku (używając cat).
Ponieważ uprawnienia wydają się być prawidłowe, co jeszcze może być przyczyną? Czy obowiązują „nadrzędne” ograniczenia uprawnień? Jeśli tak, to jak się dowiem?
permissions
files
nfs
group
Lagerbaer
źródło
źródło
Odpowiedzi:
Wylogowałeś się i zalogowałeś ponownie, odkąd zostałeś dodany do grupy A?
Jeśli nie, twoje obecne procesy logowania będą miały tylko członkostwa w grupach, które miał w momencie logowania, bez żadnych zmian od tego czasu. I wszystkie procesy potomne tego logowania będą miały te same członkostwa w grupach (tj. Jeśli zalogujesz się do X, to każda aplikacja, w tym emulator terminala i powłoka)
Możesz to przetestować, logując się ponownie na innej konsoli lub przez ssh, lub coś podobnego
exec sudo -u $(id -u -n) -i
(aby skutecznie zabić i zastąpić bieżącą powłokę nową powłoką - wszelkie procesy w tle należące do tej powłoki zostaną osierocone)źródło
W NFS zależy to od używanego trybu zabezpieczeń, ale w tradycyjnym lista grup, do których należy użytkownik, jest wysyłana przez klienta na serwer, a liczba grup, które można wysłać (jest ograniczona) 16, kiedy ostatnio sprawdzałem).
Więc klient mówi: Jestem pod numerem 1234, a swoją drogą jestem członkiem grup 12, 13, 14 ... Jeśli jesteś w więcej niż 16 grupach, ta lista zostanie obcięta i będą grupy dla którego serwer nie wie, że jesteś jego członkiem.
To chyba wytłumaczenie. Tylko administrator systemu na komputerze lokalnym i / lub zdalnym może coś z tym zrobić, zmieniając model bezpieczeństwa lub ustawienie serwera NFS lub zmniejszając liczbę grup, do których należysz.
źródło
Jak zauważyłeś w komentarzu, nie masz uprawnień do odczytu
/home/username
. Ale aby przeczytać/home/username/path1/path2/file
, musisz wykonać uprawnienia do wykonania dla całej ścieżki.Aby to debugować, uruchom
namei -l /home/username/path1/path2/file
jako użytkownik, który czyta plik.źródło
Mogą to być listy ACL. Widzieć
Możliwe, że z jakiegoś powodu grupy, w których masz być, nie są odpowiednio ustawione. Sprawdź z
Co powiesz na
W jakim systemie plików się znajduje?
Jakikolwiek apparmor, SELinux lub jakakolwiek inna obowiązkowa kontrola dostępu w systemie?
Jesteś pewien, że plik nie zawiera tekstu „Odmowa zezwolenia”, prawda ;-)?
źródło