Jaki jest cel uprawnień Linuksa, takich jak 111 lub 333 (tzn. Użytkownik może wykonać , ale nie może odczytać pliku), jeśli zdolność do wykonania nie oznacza automatycznie możliwości odczytu?
permissions
chmod
wózek 813
źródło
źródło
Odpowiedzi:
Grałem z nim i najwyraźniej uprawnienia do wykonywania nie oznaczają uprawnień do odczytu. Pliki binarne mogą być wykonywalne bez możliwości odczytu:
Nie mogę jednak wykonywać skryptów, chyba że mają one zarówno bity uprawnień do odczytu, jak i wykonywania:
źródło
/bin/bash hw.sh
, a następnie bash próbuje otworzyć sięhw.sh
do odczytu (i kończy się niepowodzeniem).ma to sens w przypadku katalogów, na przykład, jeśli trzymasz (tajne) pliki wykonywalne w określonym katalogu, a następnie pozwalasz użytkownikom wywoływać te pliki bez możliwości zobaczenia zawartości katalogu (ale wiedząc, że określony plik istnieje po ich poinformowaniu!). 333 w porównaniu do 111 pozwala na zapisywanie / usuwanie plików do / z tych katalogów bez możliwości zobaczenia zawartości katalogu.
źródło
Oczywiście nie wszystkie kombinacje są tak przydatne, ale biorąc pod uwagę tę, o której wspominałeś ... W rzeczywistości nie potrzebujesz
read
pozwolenia na wykonanie pliku - tylkoexecute
uprawnienie - chyba że dany plik jest skryptem (np. Skryptem powłoki (.sh
), perl-script (.pl
) i tak dalej). Normalne pliki binarne można uruchamiać tylko zaexecute
zgodą. W systemach * BSD kilka plików wykonywalnych dajeexecute
pozwolenie bez zezwoleniaread
, szczególnie na polecenia „ważne dla bezpieczeństwa” - npsu
.Dlaczego więc nie dać użytkownikom
read
uprawnień (i po prostu-execute
uprawnień)? Stwórz plik, którego użytkownik nie może odczytać, nie może go również skopiować ! Usunięcieread
uprawnienia uniemożliwia użytkownikom tworzenie własnych „osobistych” kopii plików wykonywalnych - które później mogą być w stanie nadużyć (np. UzyskaćSUID=root on
).Brak opcji
write
-permission uniemożliwia dostęp do pliku.Pamiętaj, nie dając ani
read
-norwrite
-permission do właściciela jest nieco rzadko, ale czasami może to być dobry pomysł, aby zapobiec nawetowner
z tylko usunięcie pliku. Oczywiścieowner
- nie wspominającroot
- zawsze może obejść takie środki, jeśli nie w inny sposób, to po prostu zachmod
pozwoleniem na plik.źródło
owner
usunięcie pliku”. - z tym wyjątkiem, że nie potrzebujesz żadnego zezwolenia na plik (odczyt, zapis lub wykonanie), aby go usunąć./proc/${PID}/maps
a następnie czytanie odpowiednich sekcji pamięci/proc/${PID}/mem
? Czy też ograniczenie uprawnień do pliku wykonywalnego ogranicza również uprawnienia do odczytu jego odpowiednich sekcji w pamięci podczas wykonywania? (To ostatnie wydaje się mało prawdopodobne, IMO.)