Co oznacza „+ 3” w wyniku „ls -al”?

9

Przypadkowo przy przejściu na zamontowany wolumin i pisaniu ll(alias dla ls -laF)

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

Mam tę interesującą część: drwxr-x---+ 3

Rozumiem część drwxr-x---, ale co + 3oznacza część jeszcze ?

Ps: Używam Ubuntu 16.04 x86

mja
źródło
1
Masz na myśli, że ciekawi Cię liczba między ciągiem uprawnień a nazwą właściciela?
Bajt Dowódca
4
ls -lWyjaśnione części danych wyjściowych można znaleźć na stronie askubuntu.com/q/710905 , askubuntu.com/q/517229 lub unix.stackexchange.com/q/103114 .
Bajt Dowódca

Odpowiedzi:

14

+Po normalnych bitów uprawnień wskazywać na specjalne pozwolenie obowiązuje do pliku / katalogu. Specjalnym uprawnieniem jest POSIX ACL (lista kontroli dostępu).

Możesz ustawić regułę ACL, używając setfacli przeglądając już ustawione reguły przez getfacl.

Przykład:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

Sprawdź man getfacli man setfaclaby uzyskać więcej pomysłów.

Na marginesie, jeśli widzisz .inplace o +, to na kontekście SELinux.


A 3po +oznacza liczbę twardych dowiązań pliku. Hardlink to nazwa pliku (dokładnie i-węzeł pliku), więc liczba twardych dowiązań wskazuje liczbę nazw pliku.

W twoim przypadku jest to:

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

Dotyczy katalogu nadrzędnego bieżącego katalogu ( /media/username/DATA), więc ..wskazuje na /media/usernamekatalog.

Teraz w Linuksie każdy katalog ma co najmniej dwa twarde dowiązania, jeden dla .(katalog bieżący, link do siebie), a drugi to wpis w katalogu nadrzędnym (mapowanie nazwa-i-węzeł), który został odziedziczony z Uniksa.

Masz twardy link liczony jako 3 dla /media/username, co oznacza, że /media/usernamema jeden podkatalog (domyślnie 2 plus jeden dla ..wpisu podkatalogu). Gdyby były 2 podkatalogi, liczba twardych linków wyniosłaby 4 z powodu odwzorowania obu podkatalogów z ..powrotem na element nadrzędny.


Sprawdź man lstakże.

heemayl
źródło
1
To katalog, więc liczba linków to liczba podkatalogów plus dwa.
Kevin
@Kevin Dodano szczegółowe wyjaśnienie.
heemayl
7

+na końcu ciągu uprawnień oznacza uprawnienie ACL ( lista kontroli dostępu ). Możesz dokładnie zobaczyć, na jakie uprawnienia zezwala i do jakich użytkowników

getfacl ../

albo raczej

getfacl /media/$USER

W moim przypadku:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

To pokazuje właściciela i grupę, a następnie nienazwane uprawnienia „użytkownika” (właściciela) i świata (innych) z dodatkowym wpisem dla użytkownika zanna. „Maska” ogranicza efektywne prawa użytkowników grupowych i nazwanych.

Listy ACL są rozszerzeniem tradycyjnego systemu uprawnień Linuksa, który umożliwia ustawianie uprawnień dla jednego użytkownika lub grupy, umożliwiając lepszą kontrolę. Możesz przeczytać więcej na temat powodów bezpieczeństwa posiadania przez roota tego punktu montowania i użycia uprawnień ACL /mediaw tym poście

To 3nie jest związane z +. wskazuje liczbę twardych linków do pliku.

Zanna
źródło
2
Wyjaśnia to +jednak tylko to , co sygnalizuje, że listy ACL są aktywne dla tego wpisu oprócz tradycyjnych ustawień uprawnień. Nie wyjaśnia to jednak 3.
Bajt Dowódca
2
@ByteCommander hah, nie przyszło mi do głowy, że pytają o 3, dzięki!
Zanna,