uprawnienia 755 na / home / <użytkownik> /

15

Zastanawiam się, dlaczego domyślnie mój katalog /home/<user>/ma ustawione uprawnienia 755. Pozwala to innym użytkownikom wchodzić do katalogów i czytać pliki w moim domu. Czy jest to uzasadniony powód?

Czy mogę ustawić uprawnienia 700dla mojego domu i wszystkich podkatalogów, na przykład:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

bez zepsucia czegokolwiek?

Czy możliwe jest również ustawienie uprawnień w moim domu, tak aby wszystkie utworzone nowe pliki miały 600katalogi 700?

Martin Vegter
źródło
1
w RHEL / CentOS 5 domyślnie jest 700, ale w Ubuntu 755
Rahul Patil
2
Jest to powszechne w niektórych konfiguracjach, które public_htmlpozwalają serwerowi internetowemu na dostęp do katalogu. Chociaż jest to bardzo wygodne dla użytkowników, nie jestem jego wielkim fanem.
Marco

Odpowiedzi:

18

Jeśli twój katalog domowy jest prywatny, nikt inny nie może uzyskać dostępu do żadnego z twoich plików. Aby uzyskać dostęp do pliku, proces musi mieć uprawnienia do wykonywania wszystkich katalogów na ścieżce w dół drzewa od katalogu głównego. Na przykład, aby umożliwić innym użytkownikom na odczyt /home/martin/public/readme, katalogi /, /home, /home/martini /home/martin/publicwszystko trzeba mieć uprawnienia d??x??x??x(może to być drwxr-xr-x, albo drwx--x--xczy jakaś inna kombinacja), a dodatkowo plik readmemusi być publicznie czytelny ( -r??r??r??).

Zwykle katalogi domowe mają tryb drwxr-xr-x(755) lub co najmniej drwx--x--x(711). Tryb 711 (tylko uprawnienie do wykonywania) w katalogu pozwala innym na dostęp do pliku w tym katalogu, jeśli znają jego nazwę, ale nie na liście zawartości katalogu. W tym katalogu osobistym utwórz podkatalogi publiczne i prywatne według potrzeb.

Jeśli nigdy, przenigdy nie chcesz, aby inni czytali twoje pliki, możesz utworzyć katalog domowy drwx------(700). Jeśli to zrobisz, nie musisz indywidualnie chronić plików. Nie wpłynie to na nic innego niż zdolność innych osób do odczytu Twojego pliku.

Jedną z powszechnych rzeczy, które mogą się zepsuć, ponieważ jest to przypadek innych osób czytających twoje pliki, jest to, że masz katalog taki jak ~/public_htmllub ~/wwwzawierający twoją stronę internetową. W zależności od konfiguracji serwera WWW katalog ten może wymagać odczytu z całego świata.

Możesz zmienić domyślne uprawnienia dla tworzonych plików, ustawiając wartość umask w swoim .profile. Umask jest uzupełnieniem maksymalnych uprawnień do pliku. Typowe wartości to 022 (zapis tylko dla właściciela, odczyt i wykonywanie przez wszystkich), 077 (dostęp tylko dla właściciela) i 002 (jak 022, ale także zapis dla grupy). Są to maksymalne uprawnienia: aplikacje mogą ustawić bardziej restrykcyjne uprawnienia, na przykład większość plików może nie zostać wykonana, ponieważ aplikacja, która je utworzyła, nie ustawiła bitów uprawnień do wykonywania podczas tworzenia pliku.

Gilles „SO- przestań być zły”
źródło
Nie uruchamiam serwera WWW na moim komputerze, więc nie muszę zezwalać na dostęp ~/public_html. Czy istnieją inne popularne programy poza Apache, które mogą wymagać dostępu do mojego domu? Co postfixna przykład.
Martin Vegter
1
@MartinVegter Dobra uwaga. Programy pocztowe zawsze działają jako użytkownik, gdy dostarczają pocztę, ale niektóre systemy .forwardmuszą być czytelne dla systemu pocztowego działającego jako użytkownik systemu. Postfix jest jednak w porządku z prywatnym .forward.
Gilles „SO- przestań być zły”
3

Jeśli zaznaczysz w RHEL / CentOS 5.x, domyślnym uprawnieniem jest 700, ale w Ubuntu 755.

Według członka personelu Ubuntuforms.org ma to ułatwić udostępnianie plików nowym użytkownikom. Możesz zmienić uprawnienie na 700 lub 750, jeśli nie chcesz, aby pliki były czytelne i mogły być wykonywane przez inne osoby.

Czy można również ustawić uprawnienia w moim domu, aby wszystkie utworzone nowe pliki miały 600, a katalogi 700?

Można ustawić umask 0077za to

Będzie działać jak:

Domyślne uprawnienia do katalogu to 0777, więc kiedy ustawisz umask, 0077nowy katalog utworzy się z uprawnieniami, (0777-0077) tzn 0700. Jak chcesz.

Rahul Patil
źródło
nie umaskstosuje się do plików, jak również? Wydaje się, że działa tylko wtedy, gdy tworzę nowe katalogi.
Martin Vegter
2
Tak ... możesz sprawdzić w swojej bieżącej powłoce, po prostu ustaw umask 0077i utwórz plik, katalog i sprawdź uprawnieniastat filename
Rahul Patil
3

Tak, istnieje bardzo uzasadniony powód. Pamiętaj, że inni użytkownicy mogą czytać, ale nie zapisywać plików. Jest to bardzo przydatne w profesjonalnych sieciach, ponieważ możesz łatwo udostępniać swoje pliki współpracownikom.

Na przykład w laboratorium, w którym kiedyś pracowałem, wszyscy mieliśmy dostęp do swoich $HOMEkatalogów, abyśmy mogli z łatwością udostępniać sobie nawzajem swoje dane lub skrypty. Gdyby moja przyjaciółka Alice miała fajny skrypt do robienia X, po prostu uruchomiłbym go:

~alice/bin/scriptX.pl mydata

Jak wspomniano inni, aby to zmienić, musisz ustawić umask. Na przykład, aby nowe pliki i foldery były czytelne tylko dla Ciebie, dodaj to do ~/.bashrc:

umask 0077
terdon
źródło
3
Trochę o używaniu skryptu Perla Alice jest przerażająca. Skopiuj skrypt do katalogu domowego, sprawdź go, a następnie użyj tylko swojej kopii.
AlexWebr
6
@AlexWebr przede wszystkim, najpierw przeczytałbym, druga Alice w tym przypadku to osoba siedząca obok mnie, która właśnie napisała fajny scenariusz. Możemy założyć, że ufam im tak samo, jak każdemu programistowi, którego pracę ślepo instalowałbym i wykonywał na moim komputerze. Bardziej niż większość. Było to także laboratorium, dlatego często pobieraliśmy kilka GB genomów i był to łatwy sposób na zapewnienie sobie dostępu do nich.
terdon
1

Musisz zmienić umask, aby zmienić sposób tworzenia nowych plików w folderze domowym. Odbywa się to zazwyczaj poprzez edycję skryptu startowego powłoki, jest to całkiem dobry przegląd tutaj

Jeśli chodzi o zmianę wszystkich uprawnień w folderze domowym na 700, zastanawiam się, w jaki sposób wpłynęłoby to na usługi działające na kontach usług, które wymagają informacji o konfiguracji z folderu domowego ... Może się zdarzyć, że te usługi nie będą mogły odczytać wymaganych plików konfiguracyjnych .

Niall Byrne
źródło