Dlaczego chown
polecenie jest tylko do rootowania? Dlaczego użytkownicy inni niż root nie mogą używać chown do rozdawania swoich plików?
permissions
not-root-user
chown
flegma
źródło
źródło
chown
do rozdania pliki są właścicielami. (Widziałem systemy, w których, w zależności od konfiguracji systemu plików, możesz.)Odpowiedzi:
Większość systemów uniksowych uniemożliwia użytkownikom „rozdawanie” plików, co oznacza, że użytkownicy mogą uruchamiać się tylko
chown
wtedy, gdy mają uprawnienia użytkownika docelowego i grupy. Ponieważ używaniechown
wymaga posiadania pliku lub bycia rootem (użytkownicy nigdy nie mogą przywłaszczyć plików innych użytkowników), tylko root może uruchomić,chown
aby zmienić właściciela pliku na innego użytkownika.Powodem tego ograniczenia jest to, że przekazanie pliku innemu użytkownikowi może pozwolić na złe rzeczy w nietypowych, ale wciąż ważnych sytuacjach. Na przykład:
chown
aby plik ten był własnością innego użytkownika Billa. Plik byłby wtedy wliczany do limitu dysku Billa, nawet jeśli tylko Alice może go użyć.źródło
/bin/bash
, ustawić go, a następnie udostępnić dowolnemuchown
. Teraz mają dostęp do powłoki jako ta osoba.chown
zawsze usuwa bity setuid i setgid.drwxr-xr-x ring0 ring0 .
), w którym korzeń ma regularny plik (-rw-r--r-- root root file
), to dlaczego nie mogę zrobić,chown ring0 file
ponieważ jest to i tak wolno, jakring0
,cp file x ; rm file ; mv x file
(a niektóre opcjonalnetouch sometime file
...)?W Linuksie potrzebujesz zdolności CAP_CHOWN do chown. root otrzymuje takie. Wyjaśnienia : http://vouters.dyndns.org/tima/Linux-OpenVMS-C-Implementing_chown.html w celu uzyskania wyjaśnień. Jeśli zamierzasz udostępnić funkcję CAP_CHOWN, skompiluj swój kod za pomocą libcap-ng lub libcap, jak pokazano przez: http://vouters.dyndns.org/tima/Linux-PAM-C-Pluggable_Authentication_Modules_programming_example.html gdzie musisz po prostu wymienić CAP_AUDIT_WRITE z CAP_CHOWN.
źródło
Możesz uruchomić polecenie, ale nie zadziała, jeśli nie jesteś rootem. To proste: wyobraź sobie użytkownika, który może zmienić oprogramowanie na użytkownika root. Może dodać bit setuida i, voilà, facet jest rootem! Tak więc użycie może dodać bit z chmod, ale nie ma szansy na zmianę właściciela plików.
źródło