Dlaczego inni użytkownicy mogą zobaczyć pliki w moim folderze domowym?

36

Właśnie dodałem nowego, nieuprzywilejowanego „użytkownika pulpitu” i zdziwiłem się, widząc, że widzi pliki w moim folderze domowym.

Jakie są racjonalne założenia takich swobodnych uprawnień?

ændrük
źródło
Powiązane: unix.stackexchange.com/a/315197/85039
Sergiy Kolodyazhnyy

Odpowiedzi:

32

W Publickatalogu głównym ( /home/user) istnieje folder do udostępniania plików innym użytkownikom. Jeśli inny użytkownik chce uzyskać dostęp do tego Publicfolderu, bit wykonawczy dla świata powinien być ustawiony w katalogu głównym.

Jeśli nie musisz zezwalać innym na dostęp do twojego folderu domowego (inni ludzie lub użytkownicy, jak www-datana serwer WWW), nic ci nie będzie chmod o-rwx "$HOME"(usuń odczyt / zapis / uruchom z „innego”, co jest równoważne, chmod 750 "$HOME"ponieważ domyślnym zezwoleniem jest 750 ). W przeciwnym razie należy również zmienić to umaskustawienie, aby nowo utworzone pliki nie otrzymywały domyślnie uprawnień do odczytu dla świata.

W przypadku konfiguracji ogólnosystemowej edytuj /etc/profile; ustawienia poszczególnych użytkowników można skonfigurować w ~/.profile. Wolę te same zasady dla wszystkich użytkowników, więc zmodyfikuję /etc/profileplik i dołączę wiersz:

umask 027

Musisz ponownie zalogować się, aby zastosować te zmiany, chyba że jesteś w powłoce. W takim przypadku możesz uruchomić umask 027w powłoce.

Teraz, aby naprawić istniejące uprawnienia, musisz usunąć uprawnienia do odczytu / zapisu / wykonywania z innych:

chmod -R o-rwx ~

Teraz, jeśli zdecydujesz się udostępnić ~/Publicfolder wszystkim, uruchom następujące polecenia:

  • chmod o+x ~- zezwól wszystkim na zejście do katalogu ( x), ale nie uzyskaj listy katalogów ( rnie należy dodawać)
  • find ~/Public -type f -exec chmod o+r {} \; - zezwól wszystkim na odczyt plików ~/Public
  • find ~/Public -type d -exec chmod o+rx {} \; - pozwalają każdemu zejść do katalogów i wyświetlić ich zawartość

Jeśli używasz GNU coreutils (np. Na Ubuntu, a nie tylko w systemie wbudowanym busybox), wówczas poprzednie dwie komendy używają findi chmodmogą zostać zastąpione tym pojedynczym poleceniem, które rekurencyjnie czyni foldery i pliki czytelnymi (i dodatkowo dodaje wykonanie (schodzenie) bit tylko dla katalogów ):

chmod -R o+rX ~/Public
Lekensteyn
źródło
13

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.

Polecenie to:

chmod 750 $HOME

Uwaga: Domyślnym systemem Ubuntu jest 755

Jason Iverson
źródło
2
Oczywiście inni użytkownicy nie powinni być sudoerami .
Pablo A
7

Według Marka Shuttleworth ,

„Większość użytkowników systemów Ubuntu ma wyłączny dostęp do komputera (osobisty laptop) lub udostępnia je znajomym i krewnym. Zakładamy, że osoby, które współużytkują maszynę, są albo zaufane, albo są w stanie zhakować maszynę (uruchomić z USB!) trywialnie. W rezultacie nie ma żadnej korzyści ”

... od usunięcia tych uprawnień.

ignis
źródło
12
Myślę, że takie samo zachowanie w wersji Server to luka w zabezpieczeniach
warvariuc
4
To szalone wyjaśnienia. Konta inne niż ludzie to konta techniczne, z których ludzie mogą korzystać do izolowania aplikacji. Ponadto istnieje wiele instrukcji, jak skonfigurować lokalny serwer ftp, który zasadniczo dzieli konto na komputerze.
Barafu Albino,
4
Wiem, że to stary wątek, ale uważam to za głupią decyzję. Wyobraź sobie, że jeden z użytkowników uruchamia aplikację / skrypt (może być przypadkowo), który jest w stanie czytać i wysyłać pliki z dowolnego innego profilu.
mauron85
5

Możesz przeczytać sekcję Zarządzanie użytkownikami w Przewodniku po Ubuntu Server, która zawiera niezbędne informacje. Profil użytkownika Zabezpieczenia ustęp prawdopodobnie odpowiedzieć na Twoje pytania - oficjalnie.

Pavlos G.
źródło
4
Doceniam oficjalne źródło. Niestety nie wygląda to na uzasadnienie.
ændrük
1

Myślę, że odpowiedź Lekensteyna można poprawić, zastępując ostatnie dwa polecenia find chmod przy użyciu opcji -X (zwróć uwagę na duże X). Dwa polecenia znajdowania można zastąpić

chmod -R o+rX ~/Public

To odpowiednio rozróżnia pliki i katalogi, ale ma dodatkowy efekt, umożliwiając innym uruchamianie plików wykonywalnych.

zakręcić
źródło
0

Ponieważ interesuje Cię prywatność (sądząc z zastosowanych tagów), bardzo możliwe jest, że ustawienie uprawnień jest niewystarczające (patrz odpowiedź Ignis ). Odpowiedzią może być coś w rodzaju zaszyfrowanego katalogu domowego . To rozwiązanie jest specjalnie zaprojektowane przeciwko atakowi innego użytkownika komputera. Oczywiście, nie będzie w stanie powstrzymać innego użytkownika przed uszkodzeniem twoich plików (po prostu usuwając ~/.Privatekatalog, a tym samym usuwając wszystkie twoje pliki), ale nie będzie w stanie zamontować katalogu i zobaczyć plików bez twojego hasła.

Najłatwiejszym sposobem osiągnięcia tego jest podczas procesu instalacji, jest pole wyboru z napisem „Zaszyfruj katalog domowy” i musisz to zaznaczyć.

Ponieważ jest mało prawdopodobne, że będziesz chciał ponownie zainstalować tylko w tym celu (a ponieważ nadal niesie ze sobą wszystkie ryzyko związane z robieniem tego bez ponownej instalacji), możesz wykonać następujące czynności:

sudo apt-get install encryptfs-utils
encryptfs-migrate-home
v010dya
źródło
-1

Jeśli naprawdę potrzebujesz wysokiego poziomu bezpieczeństwa: zainstaluj ponownie i upewnij się, że wybierasz opcję szyfrowania całego dysku. Będzie to wymagać hasła, aby nawet uruchomić maszynę. Możesz oczywiście zaszyfrować swój folder domowy jeszcze raz, z pewnym pogorszeniem wydajności; chociaż nie jest zauważalny przy normalnym użytkowaniu.

Pamiętaj, że szyfrowanie folderu domowego spowoduje wyłączenie aplikacji takich jak Dropbox. Dropbox nie jest bezpiecznym magazynem, który i tak szanuje prywatność, więc może to być punkt krytyczny. Jeśli jednak potrzebujesz bezpiecznego i prywatnego magazynu w chmurze, osobiście poleciłbym MEGAsync, ponieważ tylko Ty posiadasz klucze do dostępu do danych.

SLS
źródło