Biorąc pod uwagę użytkownika innego niż root „joshua”, jako root utworzyłem plik o nazwie „foo” w katalogu domowym joshua (/ home / johsua /); wygląda to tak:
-rw-r--r-- 1 root root 0 12-19 21:00 foo
a następnie usunąć jako Joshua, mogę go pomyślnie usunąć.
Spodziewałbym się, że Joshua nie ma wystarczających uprawnień, aby go usunąć. Czy jest to pewnego rodzaju „dziedziczenie uprawnień”? Moja platforma to Debian 5.0.7.
sudo
eskalacji uprawnień lub innej. Prawdopodobnie coś przeoczyłeś.Odpowiedzi:
Użytkownik nie usunął pliku, system to zrobił. Użytkownik po prostu usunął plik ze swojego katalogu. System usunął plik, ponieważ jego liczba odwołań spadła do zera. Zdarza się, że użytkownik usuwający plik z katalogu spadł do zera. (Jeśli plik został na stałe połączony z innym katalogiem lub do pliku został otwarty uchwyt, nie zostałby usunięty).
System automatycznie usuwa pliki, gdy ich liczba odniesień spadnie do zera. Właściciel pliku nie ma znaczenia. Istnieje wiele sposobów, aby ktoś inny niż właściciel pliku mógł zrzucić liczbę referencji pliku do zera.
Usunięcie pliku z katalogu (zwanego „odłączeniem”) to operacja na katalogu. Odłączenie pliku zmniejsza liczbę odwołań.
Podobnie użytkownik inny niż właściciel może zamknąć ostatni uchwyt pliku, który nie jest powiązany z żadnym katalogiem. Zamknięcie tego uchwytu spowoduje również usunięcie pliku, ponieważ ponownie liczba referencji spadnie do zera.
źródło
rm
polecenie nieco zamazuje wody, ponieważrm
jest skrótem „usuń”, a użytkownicy są szkoleni, aby myśleć orm
operacji „usuń”. Wielu użytkowników korzystarm
codziennie, nie będąc świadomym, że operacja, którą faktycznie wykonuje, to „odłącz”, a nie „usuń”. W rezultacie nie powinno dziwić, że wielu użytkowników uważa to zachowanie za zaskakujące, gdy po raz pierwszy je napotyka.rm
polecenie faktycznie usuwa plik lub katalog z katalogu. Gorzej jest w systemie Windows, w którym wywoływane jest to poleceniedel
, ponieważ służyło ono do usuwania pliku, ale na nowoczesnych komputerach z systemem Windows (od NT4) jest to również operacja rozłączania.Pierwsze zgadnięcie: do usunięcia pliku potrzebne są uprawnienia do zapisu w folderze zawierającym. Więc spróbuj / home / johsua / foo / bar, daj 755 na foo i 644 na bar.
źródło