Tak naprawdę nie ma znaczenia, czy pliki w /bin
(lub w innym standardowym katalogu, w którym przechowywane są pliki wykonywalne) są zapisywane przez root, czy nie. Na serwerze Linux, którego używam, są one zapisywane przez root, ale na moim komputerze OpenBSD nie.
Tak długo, jak nie są zapisywalne przez grupę lub przez „inne”!
Nie ma problemu z bezpieczeństwem, np
-rwxr-xr-x 1 root root 126584 Feb 18 2016 /bin/ls
Jeśli ktoś chciałby go zastąpić, musiałby być rootem, a jeśli tak, root
i to, to albo
- instalowanie nowej wersji lub
- niezdarny lub
- atakujący z uprawnieniami roota już .
Inną rzeczą do rozważenia jest to, że root może zapisywać do pliku bez względu na to, czy jest chroniony przed zapisem, czy nie, ponieważ ... root.
Zauważ też, że „skrypt” jest tak samo wykonywalny jak plik binarny. Skrypt nie musi być zapisywalny „ponieważ jest to plik tekstowy”. Jeśli już, to prawdopodobnie powinno mieć takie same uprawnienia jak inne pliki wykonywalne w tym samym katalogu.
Nie zmieniaj teraz uprawnień do wszystkiego! Może to powodować wszelkiego rodzaju spustoszenie i potencjalnie dezorientować menedżerów pakietów, którzy mogą sprawdzić, czy uprawnienia są ustawione poprawnie. Może również narazić system na niebezpieczeństwo, jeśli przypadkowo zmienisz uprawnienia w niewłaściwy sposób w aplikacji o kluczowym znaczeniu dla bezpieczeństwa.
Po prostu załóż, że uprawnienia do plików wykonywalnych są ustawione poprawnie, chyba że znajdziesz coś, co wygląda naprawdę dziwnie, w takim przypadku prawdopodobnie powinieneś skontaktować się z odpowiednim opiekunem pakietu, aby zweryfikować, a nie zacząć zmieniać rzeczy.
Z komentarzy i na czacie było wezwanie do historii.
Historia uprawnień do plików binarnych w systemie Linux nie jest niczym, o czym wiem. Można spekulować, że po prostu odziedziczyli uprawnienia z katalogu lub po prostu z domyślnego umask
systemu Linux, ale tak naprawdę nie wiem.
Wiem tylko, że OpenBSD instaluje pliki binarne w systemie podstawowym 1 z domyślnym trybem uprawnień 555 ( -r-xr-xr-x
). Jest to określone we fragmencie Makefile, w /usr/share/mk/bsd.own.mk
którym ustawia się BINMODE
na 555 (chyba że jest już ustawione). Jest to później używane podczas instalowania plików wykonywalnych podczas make build
in /usr/src
.
Spojrzałem na opatrzony adnotacjami dziennik CVS tego pliku i stwierdziłem, że ta linia w pliku pozostaje niezmieniona, ponieważ została zaimportowana z NetBSD w 1995 roku.
Na NetBSD plik został po raz pierwszy umieszczony w CVS w 1993 roku, z BINMODE
ustawieniem 555.
Projekt FreeBSD wydaje się być używany dokładnie ten sam plik jako NetBSD co najmniej od 1994 roku , a z później popełnić dodaje podpowiedź w commit wiadomość, że stare pliki zostały z wydaniem 4.4BSD z Berkeley Software Distribution.
Poza tym CSRG w Berkeley zachowało źródła w SCCS, ale ich repozytorium jest dostępne w formie Git na GitHub 2 . Wydaje się, że akta, które tutaj zajmujemy się badaniem kryminalistycznym, zostały popełnione przez Keitha Bostica (lub kogoś bliskiego) w 1990 roku.
To jest ta historia. Jeśli chcesz dlaczego , to chyba będziemy musieli zapytać Keitha. Miałem nadzieję, że zobaczę komunikat zatwierdzenia zmiany, który mówi „ to musi być 555, ponieważ ... ”, ale nie.
1 Systemy BSD mają bardziej rygorystyczny podział na „system podstawowy” i „pakiety innych firm” (porty / pakiety) niż Linux. System podstawowy jest spójną jednostką, która zapewnia pełny zestaw funkcji do uruchamiania systemu operacyjnego, podczas gdy porty lub pakiety są postrzegane jako „oprogramowanie lokalne” i są instalowane pod nimi /usr/local
.
2 Bardziej kompleksowe repozytorium GitHub uwolnień Unix od 70. roku dostępna jest zbyt .
root
ma uprawnienia do zapisu do pliku binarnego? Jeśli nic innego nie pomogłoby to podczas aktualizacji tego pakietu.