Nie można odczytać pliku, mimo że znajduje się on w mojej grupie, a uprawnienia do odczytu grupy są ustawione

15

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?

Lagerbaer
źródło
2
Co z uprawnieniami do katalogu?
Karlson
Jeśli jesteś w wielu grupach, czy twoja obecna grupa jest ustawiona na A?
Code-Guru,
2
@Karlson, jeśli problemem byłyby uprawnienia do katalogu, nie zobaczysz uprawnień do pliku w pierwszej kolejności.
cjm
Pokaż nam pełną ścieżkę i nazwę pliku.
jippie
Jest w /home/theotheruser/somefolder/bla.txt Jestem w wielu grupach.
Lagerbaer,

Odpowiedzi:

8

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)

cas
źródło
Nie, to nie był problem; Wylogowałem się i zalogowałem ponownie, ale to nie rozwiązało problemu.
Lagerbaer,
3

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.

Stéphane Chazelas
źródło
Mam silne przeczucie, że to jest powód, ponieważ grupa, w której jestem, pojawia się na pozycji 19 w wyniku polecenia „grupy”. Pokażę tę odpowiedź administratorowi sys i zobaczę, czy to pomoże. :)
Lagerbaer,
Jak zmieniłbyś „model bezpieczeństwa” w NFS, aby to rozwiązać?
Danny
3

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/filejako użytkownik, który czyta plik.

Adam Trhon
źródło
To był problem w moim przypadku. Chciałem dać innemu użytkownikowi prawa do działania w podfolderze mojego katalogu domowego, ale mój katalog domowy ma dostęp 700, więc otrzymali „Odmowę dostępu” dla dowolnego polecenia.
Cerberus,
1

Mogą to być listy ACL. Widzieć

getfacl the-file

Możliwe, że z jakiegoś powodu grupy, w których masz być, nie są odpowiednio ustawione. Sprawdź z

id -a

Co powiesz na

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

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 ;-)?

Stéphane Chazelas
źródło
Nie, nie ma żadnej specjalnej listy ACL, po prostu powtarza to, co mówią mi standardowe flagi, a id -a mówi mi, że jestem w grupie tego pliku
Lagerbaer,
Dziwne jest to, że widzę pliki innego użytkownika należącego do grupy B, której jestem również członkiem ...
Lagerbaer
System plików wygląda na nfs4. namei daje mi / i dom należący do root, root. / home / nazwa użytkownika należąca do nazwy użytkownika i grupy X (której nie jestem członkiem), następnie reszta to / home / nazwa użytkownika / ścieżka1 / ścieżka2 / plik, gdzie ścieżka1 należy do nazwy użytkownika i grupy X, a ścieżka2 należy do nazwy użytkownika, oraz grupa A, której jestem członkiem.
Lagerbaer,