ls -l /etc/passwd
cho
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Vì vậy, một người dùng bình thường có thể đọc các tập tin. Đây có phải là một lỗ hổng bảo mật?
ls -l /etc/passwd
cho
$ ls -l /etc/passwd
-rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd
Vì vậy, một người dùng bình thường có thể đọc các tập tin. Đây có phải là một lỗ hổng bảo mật?
Câu trả lời:
Băm mật khẩu thực tế được lưu trữ trong /etc/shadow
đó, người dùng thông thường không thể đọc được. /etc/passwd
giữ thông tin khác về id người dùng và shell phải được đọc bởi tất cả người dùng để hệ thống hoạt động.
/etc/shadow
. Các BSD sử dụng /etc/master.passwd
. Solaris sử dụng /etc/security/passwd
. HP-UX sử dụng /.secure/etc/passwd
và danh sách tiếp tục ...
Thông thường, mật khẩu băm được lưu trữ /etc/shadow
trên hầu hết các hệ thống Linux:
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
(Chúng được lưu trữ /etc/master.passwd
trên các hệ thống BSD .)
Các chương trình cần thực hiện xác thực vẫn cần chạy với các root
đặc quyền:
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
Nếu bạn không thích các setuid root
chương trình và một tệp duy nhất chứa tất cả mật khẩu được băm trên hệ thống của bạn, bạn có thể thay thế nó bằng mô-đun PAM Openwall TCB . Điều này cung cấp cho mỗi người dùng một tệp riêng để lưu trữ mật khẩu băm của họ - kết quả là số lượng setuid root
chương trình trên hệ thống có thể giảm đáng kể.
Mật khẩu đã không được lưu trữ trong /etc/passwd
nhiều năm nay; Tên là di sản, chức năng là cơ sở dữ liệu người dùng cục bộ vẫn còn và tất cả phải được đọc cho mục đích đó.
Ở một mức độ nào đó, như bạn có thể xác định người dùng. Trước đây bạn cũng có thể lấy mật khẩu của họ. Tuy nhiên, một userid thực sự đáng để bẻ khóa là root
nổi tiếng mà không cần tập tin mật khẩu.
Tiện ích của việc có thế giới tập tin mật khẩu có thể đọc được nói chung vượt xa rủi ro. Ngay cả khi nó không thể đọc được trên thế giới, một getent passwd
lệnh chức năng sẽ khiến khoảng bảo mật tăng lên.
Khả năng người dùng không root xác định các tệp do người khác sở hữu sẽ biến mất. Có thể xác định được sở hữu (người dùng trong tệp passwd) và các tệp chưa được đặt tên (người dùng không phải trong tệp passwd) có thể hữu ích trong việc xem xét nội dung của hệ thống tệp. Mặc dù có thể giải quyết vấn đề này bằng các setuid
chương trình thích hợp , nhưng điều đó sẽ thêm một vectơ tấn công khổng lồ thông qua các chương trình đó.
Cuối cùng, đó là vấn đề về sự cân bằng, và trong trường hợp này tôi sẽ nói rằng sự cân bằng chắc chắn là có thế giới mật khẩu có thể đọc được.