Đọc từ APUE , chỉ cảm thấy tò mò:
Tệp mật khẩu được sử dụng mỗi khi người dùng đăng nhập vào hệ thống UNIX và mỗi khi ai đó thực thi
ls -l
lệnh.
Tất nhiên, thực tế ngày nay phức tạp hơn. Nó không có
—
JdeBP
/etc/passwd
trên BSD. Một người chủ động nscd
sẽ thay đổi mọi thứ; NSS cũng vậy. Vì vậy, lưu ý rằng câu hỏi này dựa trên thế giới quan Phiên bản thứ 7.
@JdeBP Lập trình cổ trong môi trường Unix thì sao?
—
Andrew Henle
@JdeBP Không phải sao? Tôi ngạc nhiên khi bạn nói rằng bởi vì tôi nghĩ rằng rất nhiều chương trình (tập lệnh và nhị phân) sẽ phá vỡ sự tin cậy (có lẽ sai, nhưng vẫn) về sự hiện diện của / etc / passwd.
—
Peter - Tái lập lại
Không phải, vì đọc đúng hướng dẫn sử dụng, bao gồm cả phần PHIM, sẽ tiết lộ. (-:
—
JdeBP
strace ls -l
sau này, tôi thấy mộtopenat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 4
tuyên bố.