W systemach plików Linux / Unix rozumiem powód, dla którego potrzebujesz uprawnienia do wykonywania folderu nadrzędnego, aby odczytać lub zapisać plik: uprawnienie do wykonywania daje dostęp do i-węzła w pliku, a bez tego nigdy nie możesz dotrzeć zawartość pliku.
Jednak do zmiany nazwy pliku (a nawet usunięcia) wystarczy zmienić nazwę pliku na liście, która nie powinna wymagać dostępu do i-węzła. Więc dlaczego bit wykonywania jest wymagany do zmiany nazwy pliku, uprawnienia zapisu powinny wystarczyć?
Nie wydaje się to symetryczne z dostępem do odczytu: z r--
uprawnienia, możesz to zrobić ls
w katalogu i dostęp do listy nazw plików w tym katalogu. Nie musisz wykonywać, ponieważ nie masz dostępu do i-węzłów. Podobnie z -w-
, powinieneś być w stanie zmienić listę nazw plików (nie musisz też uzyskiwać dostępu do inodes), ale nie możesz, dlaczego?
źródło
rename
wywołanie systemowe przyjmuje dwie nazwy ścieżek jako argumenty. Sprawdza oba.x
jest to wymagane. Ale ostatecznie najlepszą odpowiedzią na „dlaczego” jest „ponieważ POSIX definiuje to w ten sposób”.x
aby uzyskać dostęp do i-węzła. W przypadku zmiany nazwy nie rozumiem, dlaczego potrzebny jest dostęp do i-węzłów.rw-
? Sposób, w jaki odpowiedź jest teraz napisana, brzmi tak, jakbyś miał (prawdopodobnie szkodliwe) narzędzie, które po prostu odłączyło pliki / katalogi bez aktualizacji ich liczby linków lub próbując sprawdzić, jaki to jest wpis w katalogu, możesz usunąć wpisy katalogu bez potrzebyx
kawałek.x
pozwolenie. Złośliwe narzędzie nie może pominąć tych kroków, które wymagają wyszukania i zmniejszenia liczby linków, ponieważ jądro POSIX nie oferuje wywołania systemowego pomijającego te kroki. POSIX oferuje tylkounlink()
(dla plików) irmdir()
(dla katalogów), a te wywołania systemowe wykonują wszystkie właściwe czynności, sprawdzając i zliczając łącza.T bit execute pozwala dotkniętemu użytkownikowi na wejście do niego i dostęp do niego oraz zmianę atrybutów i katalogów plików i katalogów. uprawnienie do wykonywania innych poleceń systemu plików Linux może wymagać „wykonania” w podkatalogach, a pliki są określane przez „bit wykonywania”. Nie należy mylić z wykonywaniem pliku wykonywalnego, oznacza to, że dałeś „wykonawcze decyzje” przywileje do edycji linków do numerów plików i-węzłów lub metadanych związanych z nazwami plików i dowiązaniami symbolicznymi.
Warianty funkcji obejmują Execute with write disabled. co oznacza, że możesz zmienić nazwę pliku, ale nie możesz edytować zawartości. Lub włącz pisanie, ale uruchom wyłączone visa versa.
„Każdy napęd dysków zawiera pewną liczbę systemów plików. System plików składa się z wielu grup cylindrów. Każda grupa cylindrów ma i-węzły i dane.
Inne interesujące szczegóły; http://linux.about.com/library/cmd/blcmdl2_stat.htm
„Jeśli wykonujesz (ale nie zapisujesz) uprawnienia do katalogu I masz uprawnienia do zapisu w pliku znajdującym się wewnątrz, nie możesz usunąć pliku (ponieważ wymaga to usunięcia go z listy). jest to plik tekstowy, którego możesz użyć vi, aby go otworzyć i usunąć wszystko. Plik nadal będzie tam, ale będzie pusty. " ... Baldrick
stat -f "% Sp - & gt; właściciel =% SHp grupa =% SMp inny =% SLp", aby wyświetlić statystyki ACL
źródło
ls
Jeżeli mamr--
. Dlaczego nie mogę tego zrobić?mv
Jeżeli mam-w-
? Powinien działać tak samo, ponieważ żaden z nich nie wymaga dostępu do i-węzłów.