Bagaimana cara memeriksa izin direktori tertentu?

315

Saya tahu itu menggunakan ls -l "directory/directory/filename" memberi tahu saya izin file. Bagaimana saya melakukan hal yang sama pada direktori?

Saya jelas dapat menggunakan ls -lpada direktori yang lebih tinggi dalam hierarki dan kemudian gulir sampai saya menemukannya tetapi itu menyebalkan. Jika saya gunakan ls -lpada direktori aktual, itu memberikan izin / informasi dari file di dalamnya, dan bukan dari direktori aktual.

Saya mencoba ini di terminal Mac OS X 10.5 dan Linux (Ubuntu Gutsy Gibbon), dan hasilnya sama. Apakah ada semacam bendera yang harus saya gunakan?

user42228
sumber

Jawaban:

418

Inilah jawaban singkatnya:

$ ls -ld directory

Inilah fungsinya:

-d, --directory
    list directory entries instead of contents, and do not dereference symbolic links

Anda mungkin tertarik pada halaman manual . Di situlah semua orang di sini mendapatkan jawaban yang bagus.

lihat halaman manual online

Johannes Schaub - litb
sumber
24
Saya pikir halaman manual adalah kata-kata yang buruk. Saya menyisirnya lima kali sebelum mulai googling. Saya tidak ingin direktori 'entri' (hal 'dimasukkan' ke direktori? Seperti file dan sub-direktori mereka?) Atau 'konten' mereka (mereka terdengar seperti konsep yang sama dengan saya), saya ingin direktori itu sendiri .
user151841
2
itu sepenuhnya terminologi standar, direktori itu sendiri adalah entri direktori, yaitu entri dalam sistem file
alldayremix
33
Ini mungkin terminologi standar, tetapi bagi seseorang yang mungkin akan mengajukan pertanyaan seperti itu, itu mungkin jargon yang membingungkan.
CatShoes
60

Anda juga dapat menggunakan statperintah jika Anda menginginkan informasi terperinci pada file / direktori. (Saya tepat seperti yang Anda katakan Anda sedang belajar ^^)

Piotr Lesnicki
sumber
4
stat akan menunjukkan kepada Anda di antara banyak hal izin: (0755 / drwxr-xr-x)
zzapper
2
ini berguna sehingga Anda dapat melihat format izin numerik juga - ty
mendarat
2
"stat -c% a direktori" ini akan ditampilkan secara numerik
Nerius Jok
2
Yang sesuai pada macOS adalah stat -f %A dir_or_filename.
iled
12

Ada juga

getfacl /directory/directory/

yang termasuk ACL

Pengantar yang bagus untuk Linux ACL di sini

Taylan
sumber
10

Di GNU / Linux, cobalah untuk menggunakan ls, namei, getfacl, stat.

Untuk Dir

[flying@lempstacker ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[flying@lempstacker ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[flying@lempstacker ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[flying@lempstacker ~]$ 

atau

[flying@lempstacker ~]$ stat -c "%a" /tmp
1777
[flying@lempstacker ~]$ stat -c "%n %a" /tmp
/tmp 1777
[flying@lempstacker ~]$ stat -c "%A" /tmp
drwxrwxrwt
[flying@lempstacker ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[flying@lempstacker ~]$

Untuk file

[flying@lempstacker ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[flying@lempstacker ~]$ namei -l /tmp/anaconda.log
f: /tmp/anaconda.log
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
-rw-r--r-- root root anaconda.log
[flying@lempstacker ~]$ getfacl /tmp/anaconda.log
getfacl: Removing leading '/' from absolute path names
# file: tmp/anaconda.log
# owner: root
# group: root
user::rw-
group::r--
other::r--

[flying@lempstacker ~]$

atau

[flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log
644
[flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[flying@lempstacker ~]$

sumber
10

Direktori $ ls -ld

(ls) menunjukkan daftar file dan direktori.

(-) menunjukkan bahwa file tersebut adalah file biasa.

(l) menunjukkan daftar panjang.

(D) menunjukkan bahwa file tersebut adalah direktori, yang pada dasarnya adalah jenis file khusus.

Mehul Jariwala
sumber
7

Ini menampilkan file dengan izinnya

stat -c '%a - %n' directory/*
Brandon Aguilar
sumber
5

Selain posting di atas, saya ingin menunjukkan bahwa "man ls" akan memberi Anda panduan yang bagus tentang perintah "ls" (List ").

Juga, menggunakan ls -la myFile akan mendaftar & menunjukkan semua fakta tentang file itu.

Filip Ekberg
sumber
5

Pada OS X Anda dapat menggunakan:

ls -lead

Opsi e menunjukkan ACL. Dan ACL sangat penting untuk mengetahui apa hak akses pada sistem Anda.

Tony Topper
sumber
2

ls -str

Ini menunjukkan tampilan normal ls dengan izin dan grup pengguna: juga

pengguna2201302
sumber