Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum, zapoznaj się z kilkoma zasadami savoir-vivre'u w dziale Administracja.
Wiadomości z problemami zamieszczone w wątku "Przywitaj się" oraz wszelkie reklamy na naszym forum będą usuwane.

CHOWN - bezpieczeństwo plików i katalogów

Zaczęty przez TataPingu, Luty 16, 2018, 10:01:47 PM

Poprzedni wątek - Następny wątek

TataPingu

Przed chwilą podczas dyskusji pod innym wątkiem, Kolega "lesio" napomknął o podstawowej, ale w dużym stopniu wpływającej na bezpieczeństwo linuksowej funkcji uprawnień plików i katalogów.  Poniżej zacytuję istotną część jego wypowiedzi:

"Swoją drogą ciekawy jestem, ile osób z tutejszego forum wykonuje taką elementarną operację związaną z bezpieczeństwem, jak zmiana umasku i zmiana uprawnień katalogów i plików użytkownika do minimalnych i kontrola uprawnień katalogów i plików systemowych :-)"

Kolega lesio ma rację, od czasu do czasu powinno się to sprawdzić. Najlepiej, starać się regularnie sprawdzać wszystkie pliki i katalogi przynajmniej pod własnym accountem. Nie jest to trudne i właściwie można to całkowicie zautomatyzować podczas startu systemu.

Co prawda, gdy robimy to podczas startu systemu, to zależnie od wydolności kompa i ilości plików/katalogów ta operacja może spowolnić sam start, ale jeśli komuś zależy na bezpieczeństwie (i wygodzie), to pogodzi się z trochę dłuższym startem systemu.

By rozwinać funkcję automatycznie podczas każdego startu systemu wystarczy w pliku /etc/rc.local (tyczy się to "debianów", pod innymi dystrami odpowiednio dopasować) nanieść następujący tekst:

chown -cR account:account /home/account

"Account" to rzeczywista nazwa użytkownika, a funkcja chown powoduje, że wszystkie pliki i katalogi zostaną jemu przyporządkowane (i należą do jego grupy)

Oczywiście, przy wolnym PCcie, czy wielkich ilościach plików/katalogów może być to trochę kłopotliwe (długi start), więc istnieje inna możliwość, rozwinąć funkcję w terminalu. Jedynie tutaj trzeba to zrobić już z uprawnieniami roota:

sudo chown -cR account:account /home/account

I to wszystko....

Podobnie można robić z katalogami i plikami systemowymi, np:

sudo chown -cR root:root /etc

gom1

Pytanie: jaki jest sens takiej operacji w przypadku komputerów używanych przez jedną osobę (z jednym kontem użytkownika)?
Wszędzie dobrze, ale w /home najlepiej

TataPingu

Sprawdź sobie pliki, szczególnie w cache Twoich browserów...
- możesz się ździwić

Poza tym, jeśli używasz wirtualnych maszyn (szczególnie z windą i wyjściem "na zewnątrz", nawet tylko z NATem), a udostępniasz im któreś katalogi pod Twoim home, również możesz przeżyć niespodziankę.

Tak samo, a może bardziej niebezpieczne są programy uruchamiane pod wine, lub pod steamami...

Nie poruszam już problemów związanych z kompromitacją systemu z poziomu roota...

gom1

To wszystko co piszesz ma sens z punktu widzenia kogoś, kto pracuje na swoim sprzęcie. A co da przeciętnemu Kowalskiemu, klikającemu lajki na fejsie, oglądającemu koty na YT czy wysyłającemu maile do teściowej, zmiana uprawnień do katalogów na komputerze, do którego nikt poza nim się nie dotyka? Na moim domowym lapku (z którego teraz właśnie piszę) nie robię nic z rzeczy które wymieniłeś. Łażę po forach, puszczam filmy z YT na Chromecasta, czasem włączę DOSBoksa. Po co miałbym wklepywać owe chown?
Wszędzie dobrze, ale w /home najlepiej

TataPingu

Przy wszystkich "zabiegach" mogących, nawet w minimalnym stopniu zwiększyć bezpieczeństwo użytkowania systemu nie powinno się w ogóle zadawać pytania: "czy ma to sens?"
- a wręcz odwrotnie, powinno się pytać: CO PRZEMAWIA ZA TYM, BY TEGO NIE ROBIć ?

Przypadek z życia wzięty:
Lata trwało, zanim przekonałem żonę do sporadycznego zapisywania dokumentów (plików) na dysku podczas ich tworzenia. Szczególnie, po naniesieniu, czy stworzeniu/sformatowaniu większych części...
- przecież to "sekundowy" zabieg, wciśnięcie Ctrl + klawisz...
Ale nie, jej "argumentem" było ciągle: "ale po co?"
Ze względu na używany stabilny OS (linux, oczywiście), trwało to kilka lat. Aż pewnego dnia, zwykła mucha spowodowała zwarcie w jednej z puszek rozdzielczych. Kwintesencją było wywalenie "różnicówki" i nagły brak prądu w całym domu.
W tym czasie, po dobrych kilku godzinach ślęczenia nad tworzonym tekstem, żona planowała sobie akurat zapisać ten dokument na dysku...
- nie zdążyła...
Zapytaj ją teraz, czy powinno się zastanawiać nad wykonywaniem czynności, które nie kosztują żadnej dodatkowej pracy...

lesio

#5
Systemy unixowe mają rozbudowane atrybuty dostępu do plików. Standardowo wygląda to mniej więcej tak (polecenie ls -l):
-rwxr-xr-x   il_linków user   group  nazwa_pliku
1 znak defuniuje typ pliku (d - katalog, "-" - plik zwykły, "l" - link, itd.)
3 znaki dotyczące uprawnień właściciela pliku (r - czytanie, w - zapis, x -wykonywanie, czasem zamiast "x" jest "s" - wtedy wykonywanie z uprawnieniami właściciela pozycji - potencjalne zagrożenie)
3 znaki dotyczące uprawnień grupy, do której plik należy
3 znaki dotyczące innych (czyli ani user-a, ani group-y)
jeżeli jakiś serwis linuksowy (których w systemie jest uruchomionych kilkadziesiąt) jest użyty przez "niedobrych ludzi do niecnych celów", to ma dostęp tylko do tego, do czego da mu dostęp właściciel pliku. Jeśli plik ma prawa "rwx------", to żaden z licznych serwisów nie może nic z plikiem zrobić (oczywiście oprócz root-a, co oczywiste oraz serwisu uruchamianego z uprawnieniami user-a). To po prostu podstawy bezpieczeństwa zawarte w kernelu ...
Niebezpieczne może być także ustawienie bitu "s" np w pliku binarnym:
-rws--x--x 1 root root plik_binarny
Wtedy KAŻDY może wykonać taki plik_binarny z uprawnieniami root-a - można łatwo zauważyć potencjalne zagrożenie, jeśli dotyczyć to będzie np. pliku "/bin/bash". Oczywiście "profesjonalny atak" na tej zasadzie jest znacznie bardziej subtelny :-)))

gom1

Cytat: TataPingu w Luty 17, 2018, 10:55:10 AM
Przy wszystkich "zabiegach" mogących, nawet w minimalnym stopniu zwiększyć bezpieczeństwo użytkowania systemu nie powinno się w ogóle zadawać pytania: "czy ma to sens?"
- a wręcz odwrotnie, powinno się pytać: CO PRZEMAWIA ZA TYM, BY TEGO NIE ROBIć ?
Odpowiedź jest oczywista: wygoda. Mogę wymagać hasła do logowania. Mogę zaszyfrować dysk twardy. Mogę uruchomić uwierzytelnianie dwuskładnikowe przy wklepywaniu sudo. Tylko po co? Dla podniesienia bezpieczeństwa o całe pół promila? Na kompie, który służy do oglądania kotów i lajkowania na fejsie?
Wszędzie dobrze, ale w /home najlepiej

lesio

ad gom1.
Wspomniane przez Ciebie środki (szyfrowanie, sudo) w żaden sposób nie chronią przed dostępem wynikającym z uprawnień plików

gom1

Ale chronią przed dostępem do komputera w ogóle ;-)

Po prostu chcę wiedzieć co osiągnę regularnym uruchamianiem polecenia chown. Ale nie na serwerze, w chmurze czy na wieloużytkownikowej stacji roboczej - tylko na moim lapku z fejsem.
Wszędzie dobrze, ale w /home najlepiej

lesio

Napisałem trochę o tym wyżej - najwyraźniej nie zwróciłeś uwagi :-)
Nikogo nie namawiam do rezygnacji z szyfrowania.
Nikogo nie namawiam do rezygnacji z zaawansowanego użytkowania "sudo"
Tak w ogóle nikogo do niczego nie namawiam - przedstawiałem tylko pewien aspekt bezpieczeństwa, bo byłem ciekawy, czy ktokolwiek się tym w jakimkolwiek stopniu przejmuje i podejmuje środki zaradcze?
W tej chwili nawet nikogo już nie namawiam do użytkowania linuksa - wydaje mi się, że linuksowi przy dalszym umiarkowanym wzroście popularności grozi niedługo wejście w sferę absolutnej komercji (Linus też nie będzie wieczny, niestety) i z tego punktu widzenia każdy użytkownik Windowsa/Maca/Czegoś_innego jest "na wagę złota".
Nikogo nie namawiam do cyklicznego stosowania "chown" - to polecenie dokonuje zmiany stanu, więc najpierw trzeba stwierdzić, jaki ten stan jest - najpierw analiza sytuacji, potem ewentualne czynności ...


gom1

Cytat: lesio w Luty 17, 2018, 11:56:13 AM
Napisałem trochę o tym wyżej - najwyraźniej nie zwróciłeś uwagi :-)
Zwyczajnie nie widzę sensu stosowania tego rozwiązania na domowych lapkach, nie mających znaczenia "strategicznego".
Wszędzie dobrze, ale w /home najlepiej

TataPingu

@gom1
"Odpowiedź jest oczywista: wygoda"...
- to dziwny argument, sposób, który przedstawiłem, oprócz dodania jednego/dwóch polecen do pliku autostartu PCta nie powoduje żadnych dodatkowych czynności. Przy każdym starcie kompa chown przebiega automatycznie.
Zgodnie z Twoją retoryką, ze względu na "wygodę", musiałyś powyłączać automatyczne ładowanie nieużywanych sterowników przy starcie komputera...
- przecież to cenne sekundy...
Oczywiście, tak, jak Kolega lesio powiedział, nikt nikogo do niczego nie zmusza, Twój PCtet, Twoja decyzja

Ps.
a tak dla ciekawości sprawdź sobie w terminalu:

sudo chown -cR account:account /home/account > /home/account/Wykaz_Obcych_Plikow.txt

account = Twój rzeczywisty account

@lesio
Poleceniem chown przywracamy tylko atrybuty przynależności. Innych atrybutów chown nie zmienia.
Masz rację, niektóre pliki w użytkowaniu przyszeregowane powinne być pod inne grupy (np. dial), a polecenie o którym piszę, automatycznie zmienia ten stan rzeczy. Nie stanowi to jednak problemu. Każdy program, podczas pierwszego startu "sprawdza" te właściwości i w razie potrzeby je koryguje.
Ale to dotyczy się plików/katalogów systemowych. Pliki i katalogi użytkownika, przynajmniej teoretycznie przyszeregowane powinne być jemu i tylko jemu.

Masz rację, namawianie do czegoś ludzi, którzy "wiedzą swoje", czy "wiedzą lepiej", mija się z celem...
- najlepiej jest odczekać, np. do momentu, gdy zintegrowany poprzez bluetootha smartfon, wygeneruje takiemu delikwentowi rachunek na dziesiątki tysięcy złotych, łącząc się np. z Malezją, czy innymi drogimi "tropikami"

gom1

#12
Cytat: TataPingu w Luty 17, 2018, 02:54:26 PM
@gom1
"Odpowiedź jest oczywista: wygoda"...
- to dziwny argument
To bardzo ważny argument, bo obsługa komputera musi być przede wszystkim wygodna. Bezpieczna również, ale jeśli bezpieczeństwo zaczyna brać górę nad wygodą, to zaczynają pojawiać się kwiatki w stylu "hasło na karteczce przyklejone do monitora".

Nadal nie rozumiem przed czym ma uchronić mnie prewencyjne ustawianie właściciela do plików w katalogu domowym.

Edit: jedyne pliki, które miały innego właściciela (root:root) niż mój, znajdowały się w katalogu do którego sklonowałem program z githuba - cache pythona.
Wszędzie dobrze, ale w /home najlepiej

TataPingu

@gom1
"jedyne pliki, które miały innego właściciela (root:root) niż mój, znajdowały się w katalogu do którego sklonowałem program z githuba - cache pythona"
- no dobrze, to było u Ciebie...
U innych nie zawsze tak to wygląda...

A co do "wygody", to nadal nie rozumiem Twoich zastrzeżeń...
- przecież z chownem PC startuje, jak dotychczas!
Jedyne, co się zauważa, to kilkusekundowe dłuższe świecenie diody kontrolnej HD. Nic poza tym.

gom1

Wszędzie dobrze, ale w /home najlepiej

Zobacz najnowsze wiadomości na forum