Właśnie natrafiłem na coś nieoczekiwanego (dla mnie) dotyczącego uprawnień do plików w systemie Linux (Arch Linux). Zasadniczo mam:
userX
wgroupX
fileX userX:groupX ---rwx----
Co mnie zastanawia: nie mogę wykonać żadnej akcji ( rwx
) fileX
. Czy to jest poprawne? Czy ktoś może potwierdzić, że rzeczywiście jest to oczekiwane zachowanie?
Jedyne czynności, które mogę wykonać, mv
i rm
ponieważ mam uprawnienia do zapisu w katalogu nadrzędnym.
Rzecz w tym, że zawsze myślałem, że te uprawnienia się załamują, zaczynając od najbardziej ogólnego (inne -> grupa -> użytkownik). Innymi słowy, jeśli o=rwx
kogo to obchodzi, jakie są przekonania dla grupy i użytkownika? Najwyraźniej tak nie jest, ale nie ma to dla mnie większego sensu; wydaje się to sprzeczne z intuicją. Jedyne, co wydaje się przydatne w tym podejściu, to łatwe wykluczenie bardzo konkretnej osoby / grupy, co nie wydaje się być mądrym sposobem na to (imho). Poza tym właściciel (i grupa?) I tak powinien móc, chmod
prawda? Masz jakieś przemyślenia na ten temat?
id
Odpowiedzi:
Gdyby tak było, wówczas dla wszystkich obowiązywałyby „inne” uprawnienia.
To różni się od twojego poprzedniego zdania. Tutaj sugerujesz, że uprawnienia są lub są połączone razem, np. Że użytkownik X ma uprawnienia do odczytu, jeśli użytkownik X jest właścicielem pliku i plik jest czytelny dla użytkownika, lub jeśli grupa, do której należy użytkownik X, jest właścicielem pliku, a plik jest grupą -czytelny lub jeśli plik można odczytać w inny sposób. Ale nie tak to działa. W rzeczywistości
o=rwx
oznacza to, żerwx
uprawnienia dotyczą innych, ale nie mówi nic o podmiotach, które nie są innymi.Po pierwsze, nie ma bezpośredniego znaczenia, do której grupy należy użytkownik. Jądro nie ma pojęcia użytkowników należących do grup. Jądro utrzymuje dla każdego procesu identyfikator użytkownika ( efektywny UID ) i listę identyfikatorów grup (efektywny GID i dodatkowe GID). Grupy są określane w czasie logowania przez proces logowania - to proces logowania odczytuje bazę danych grupy (np
/etc/group
.). Identyfikatory użytkowników i grup są dziedziczone przez procesy potomne¹.Gdy proces próbuje otworzyć plik z tradycyjnymi uprawnieniami w systemie Unix:
Zawsze używany jest tylko jeden zestaw bitów rwx. Użytkownik ma pierwszeństwo przed grupą, która ma pierwszeństwo przed innymi. Gdy istnieją listy kontroli dostępu , algorytm opisany powyżej jest uogólniony:
Zobacz także Pierwszeństwo ACLS, gdy użytkownik należy do wielu grup, aby uzyskać więcej informacji na temat korzystania z wpisów ACL, w tym efektu maski.
W ten sposób
-rw----r-- alice interns
wskazuje plik, który Alice może odczytać i zapisać, i który może odczytać wszyscy inni użytkownicy oprócz stażystów. Plik z uprawnieniami i prawem własności----rwx--- alice interns
jest dostępny tylko dla stażystów, z wyjątkiem Alicji (bez względu na to, czy jest stażystą, czy nie). Ponieważ Alicja może dzwonić wchmod
celu zmiany uprawnień, nie zapewnia to żadnych zabezpieczeń; to jest skrzynia krawędzi. W systemach z listami ACL uogólniony mechanizm pozwala na usunięcie uprawnień określonych użytkowników lub określonych grup, co czasem jest przydatne.Użycie jednego zestawu bitów zamiast uporządkowania wszystkich bitów dla każdej akcji (odczyt, zapis, wykonanie) ma kilka zalet:
¹ Mogą się zmieniać, gdy wykonywany jest proces setuid lub setgid. Nie ma to związku z danym problemem.
źródło
Bardziej szczegółowe uprawnienia mają pierwszeństwo przed mniej szczegółowymi.
Ponieważ jesteś właścicielem pliku, otrzymasz tylko uprawnienia właściciela. Właściciel nie ma uprawnień. Dlatego nic nie możesz zrobić. Gdybyś nie był właścicielem pliku i członkiem grupy, obowiązywałyby uprawnienia grupy.
Przeczytaj tę sekcję strony wiki
https://en.wikipedia.org/wiki/File_system_permissions#Classes
źródło
-rwxrw----
oznacza, że właściciel ma uprawnienia do odczytu, zapisu i wykonywania, grupa ma uprawnienia do odczytu i zapisu, a inni nie mają uprawnień.Podane uprawnienia dają grupie „groupX” uprawnienia do odczytu, zapisu i wykonania pliku. Jeśli jesteś członkiem grupy „groupX”, ale nie jesteś właścicielem pliku, te uprawnienia będą obowiązywać.
W tym przypadku zakładam, że rzeczywiście jesteś właścicielem pliku. Zastosowanie będą miały tylko uprawnienia ustawione dla właściciela. Oczywiście właściciel może zastąpić lub zmienić uprawnienia do pliku. Grupa nie może tego jednak zrobić. Na przykład vim poprosi cię o potwierdzenie, czy piszesz do pliku, do którego nie masz uprawnień do zapisu, ale jesteś właścicielem.
Zwykle czytam uprawnienia od lewej do prawej. Czy jestem właścicielem? Jeśli tak, obowiązują uprawnienia właściciela. Jeśli nie; czy jestem członkiem grupy? Jeśli tak, obowiązują uprawnienia grupowe. Jeśli nie, to dotyczą mnie uprawnienia do „Inne”.
W niektórych przypadkach warto być właścicielem pliku, ale nie mieć uprawnień do zapisu. Chroni przed przypadkowym usunięciem lub modyfikacją pliku. Osobiście ustawiłem uprawnienia 400 na wszystkie moje pliki szablonów, aby upewnić się, że nie zmodyfikuję ich przypadkowo. To samo dotyczy uprawnień do wykonywania.
źródło
Byłem w stanie dodać użytkownika do grupy, nadać grupie uprawnienia do katalogu (070), a następnie PO PONOWNYM PONOWNYM uruchomieniu dostępu do folderu.
Utwórz grupę: sudo groupadd nazwa grupy
Dodaj użytkownika do grupy: sudo gpasswd -a nazwa użytkownika nazwa grupy
Upewnij się, że cały katalog ma poprawne prawo własności do grupy (aby występować, musi być bieżącym członkiem nazwy grupy): sudo chgrp -R nazwa_grupy ścieżka do katalogu /
Podaj tylko grupę rwx dla folderu (może to być tylko rw, dostosuj w razie potrzeby): sudo chmod -R 070 ścieżka_katalogu
Po wykonaniu powyższych czynności wyloguj się i zaloguj ponownie. Jeśli to nie zadziała, uruchom ponownie komputer. To działało dla mnie.
źródło