Mengapa / etc / passwd digunakan setiap kali seseorang mengeksekusi perintah `ls -l`?


28

Baca dari APUE , hanya ingin tahu:

File kata sandi digunakan setiap kali pengguna masuk ke sistem UNIX dan setiap kali seseorang menjalankan ls -lperintah.


3
FYI saya coba strace ls -lnanti, saya melihat openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4pernyataan.
Rick

7
Tentu saja, kenyataan kini lebih kompleks. Itu tidak ada /etc/passwddi BSD. Aktif nscdakan mengubah banyak hal; seperti halnya NSS. Jadi perhatikan bahwa pertanyaan ini didasarkan pada pandangan dunia Edisi ke-7.
JdeBP

4
@JdeBP Pemrograman Kuno di Lingkungan Unix , lalu?
Andrew Henle

@ JdeBP Bukan? Saya terkejut ketika Anda mengatakan itu karena saya akan berpikir bahwa banyak program (skrip dan binari) akan rusak yang bergantung (mungkin salah, tapi tetap saja) pada keberadaan / etc / passwd.
Peter - Pasang kembali Monica

Itu tidak, seperti membaca halaman manual dengan benar, termasuk bagian FILES-nya, akan mengungkapkan. (-:
JdeBP

Jawaban:


50

Sistem file secara langsung mengaitkan nilai UID numerik (ID Pengguna) dan GID (ID Grup) dengan file, bukan nama pengguna dan nama grup (yang merupakan string). Jadi ls -lperintah (dan perintah lain yang menampilkan pengguna dan pemilik grup dari suatu file) perlu mendapatkan nama pengguna dan grup dari suatu tempat. The /etc/passwdfile satu sumber seperti (mungkin sumber asli dan yang paling umum). Manual memuat ini - dari PASSWD (5) (yaitu halaman manual untuk /etc/passwdfile):

banyak utilitas, seperti ls (1) menggunakannya untuk memetakan ID pengguna ke nama pengguna


17
Untuk melengkapi jawabannya: POSIX menentukan opsi -nuntuk ls. Ini mencegah terjemahan UID dan GID ke nama pengguna dan nama grup. Saya telah mengujinya ls -ndengan GNU core utils ' lsdan opsi mencegah akses keduanya /etc/passwddan /etc/groupseperti yang diharapkan.
pabouk
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.