Utworzyłem w nim katalog d
i plik f
. Następnie dałem sobie tylko uprawnienia do odczytu w tym katalogu. Rozumiem, że to powinno oznaczać, że mogę wymienić pliki (np. Tutaj ), ale nie mogę.
will@wrmpb /p/t/permissions> ls -al
total 0
drwxr-xr-x 3 will wheel 102 4 Oct 08:30 .
drwxrwxrwt 16 root wheel 544 4 Oct 08:30 ..
dr-------- 3 will wheel 102 4 Oct 08:42 d
will@wrmpb /p/t/permissions> ls d
will@wrmpb /p/t/permissions>
Jeśli zmienię uprawnienia do zapisu i wykonania, zobaczę plik.
will@wrmpb /p/t/permissions> chmod 500 d
will@wrmpb /p/t/permissions> ls d
f
will@wrmpb /p/t/permissions>
Dlaczego to? Używam MacOS.
Edycja: w odniesieniu do odpowiedzi @ ccorn ważne jest, że używam ryb i type ls
podaje:
will@wrmpb /p/t/permissions> type ls
ls is a function with definition
function ls --description 'List contents of directory'
command ls -G $argv
end
permissions
osx
fish
wrgrs
źródło
źródło
alias ls='ls -G'
myślę, że wiele osób tak robi.Odpowiedzi:
Niektóre przygotowania, aby upewnić się, że
ls
nie spróbuje się więcej rzeczy niż powinno:Wykaz uprawnień do
r
katalogu:W tradycyjnych systemach plików Uniksa katalog był po prostu listą par (nazwa, numer i-węzła). Numer i-węzła to liczba całkowita używana jako indeks do tabeli i-węzłów systemu plików, w której jest przechowywana reszta metadanych pliku.
r
Pozwolenie na katalogu pozwala na liście nazwisk w nim, ale nie do dostępu do informacji zapisanych w tabeli węzła, to znaczy coraz typ pliku, długość pliku, uprawnienia do plików etc, lub otwierania pliku. W tym celu potrzebujeszx
uprawnień do katalogu.To dlatego
ls -l
,ls -F
,ls
z wyjściem oznaczone kolorami itp zawieść bezx
zgody, a jedyniels
udaje.Samo
x
zezwolenie pozwala na dostęp do i-węzła, to znaczy, mając nadaną wyraźną nazwę w tym katalogu,x
umożliwia wyszukiwanie jego i-węzła i dostęp do metadanych tego wpisu katalogu:Dlatego, aby otworzyć plik
/a/b/c/f
lub wymienić swoje metadane, katalogi/
,/a
,/a/b
, i/a/b/c
musi być udzielonex
pozwolenie.Nic dziwnego, że tworzenie pozycji katalogu wymaga zarówno uprawnień, jak
w
ix
uprawnień:Wikipedia ma krótki przegląd w artykule na temat uprawnień do systemu plików .
źródło
/bin/ls d
pokazuje mi zawartość. Dzięki!-G
przypadku kolorowego wyjścia, który potrzebuje metadanych, a więcx
perms). Dlatego moje przygotowania zunalias ls
iunset CLICOLOR
. Powinienem również dodać,unset -f ls
aby usunąć taką definicję funkcji. Edytowane.Aby odczytać katalog, musisz także móc przejść do niego (bit x). Więc przynajmniej potrzebujesz rx, aby katalog mógł uzyskać do niego dostęp w jakikolwiek sposób.
źródło
ls
powinien nadal być w stanie wyświetlić listę plików w katalogu, nawet jeśli katalog nie jest wykonywalny.