Apa arti "+ 3" dalam hasil 'ls -al'?

9

Secara tidak sengaja, ketika pindah ke volume yang terpasang, dan mengetik ll(alias untuk 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/

Saya memiliki bagian yang menarik ini: drwxr-x---+ 3

Saya mengerti bagian itu drwxr-x---, tetapi apa arti bagian yang lain + 3?

Ps: Saya menggunakan Ubuntu 16.04 x86

mja
sumber
1
Maksud Anda, Anda ingin tahu nomor antara string izin dan nama pemilik?
Byte Commander
4
Untuk bagian ls -loutput yang dijelaskan, lihat askubuntu.com/q/710905 , askubuntu.com/q/517229 atau unix.stackexchange.com/q/103114 silakan.
Byte Commander

Jawaban:

14

The +setelah izin bit yang normal menunjukkan izin khusus ini berlaku untuk file / direktori. Izin khusus adalah POSIX ACL (Daftar Kontrol Akses).

Anda dapat mengatur aturan ACL dengan menggunakan setfacldan melihat aturan yang sudah ditetapkan oleh getfacl.

Contoh:

% 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

Periksa man getfacldan man setfacldapatkan lebih banyak ide.

Sebagai catatan tambahan, jika Anda melihat .inplace of +, itu untuk konteks SELINUX.


Dan 3setelahnya +menunjukkan jumlah tautan keras yang dimiliki file. Hardlink adalah nama untuk file (inode file tepatnya) sehingga jumlah tautan keras menunjukkan jumlah nama file tersebut.

Dalam kasus Anda, entri adalah:

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

Ini untuk direktori induk dari direktori saat ini ( /media/username/DATA), jadi ..arahkan ke /media/usernamedirektori.

Sekarang, di Linux, setiap direktori memiliki setidaknya dua tautan keras, satu untuk .(direktori saat ini, tautan ke dirinya sendiri) dan yang lainnya adalah entri di direktori induk (pemetaan nama-inode), ini diwarisi dari Unix.

Anda memiliki jumlah tautan keras sebagai 3 untuk /media/username, yang berarti /media/usernamememiliki satu subdirektori (default 2 plus satu untuk ..entri subdirektori). Jika ada 2 subdirektori, jumlah tautan keras akan menjadi 4 karena kedua subdirektori memetakan ..kembali ke induknya.


Periksa man lsjuga.

heemayl
sumber
1
Itu adalah direktori, jadi jumlah tautannya adalah jumlah subdirektori ditambah dua.
Kevin
@ Kevin menambahkan penjelasan rinci.
heemayl
7

+di akhir string izin menandakan izin ACL ( Access Control List ). Anda dapat melihat dengan tepat izin apa yang diizinkan dan dengan pengguna mana

getfacl ../

atau sebaiknya

getfacl /media/$USER

Dalam hal ini:

$ 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::---

Ini memperlihatkan pemilik dan grup dan kemudian izin "pengguna" (pemilik) grup dan dunia (lainnya) dengan entri tambahan untuk zanna pengguna. "Mask" membatasi hak efektif untuk pengguna grup dan yang disebutkan.

ACL adalah ekstensi untuk sistem izin Linux tradisional yang memungkinkan izin ditetapkan untuk satu pengguna atau grup, memungkinkan kontrol yang lebih baik. Anda dapat membaca lebih lanjut tentang alasan keamanan karena root memiliki titik pemasangan ini dan penggunaan izin ACL /mediadi pos ini

Tidak 3terkait dengan +. ini menunjukkan jumlah tautan keras ke file.

Zanna
sumber
2
Ini hanya menjelaskan +, yang menandakan bahwa ACL aktif untuk entri ini selain pengaturan izin tradisional. Namun, ini tidak menjelaskan 3.
Byte Commander
2
@ByteCommander hah tidak terpikir oleh saya mereka bertanya tentang 3, terima kasih!
Zanna