Làm thế nào để bạn biết nếu một người dùng có được phép đăng nhập vào trên Linux không?


12

Câu hỏi rất đơn giản, tôi muốn liệt kê tất cả các tài khoản người dùng có thể đăng nhập vào hệ thống của mình, nhưng tôi không chắc liệu tất cả người dùng trong / etc / passwd có phải là người dùng "có thể đăng nhập" không?

Chi tiết:

Tôi có thể thấy người dùng có vỏ được đặt /usr/sbin/nologin/bin/falsetrong /etc/passwd, điều đó có nghĩa là họ không thể đăng nhập?

Tôi cũng biết rằng tôi có thể thiết lập mật khẩu được mã hóa của người sử dụng *hoặc !trong /etc/shadowvô hiệu tài khoản, do đó, "người khuyết tật sử dụng" cũng nên được điều trị là "không thể đăng nhập" user, phải không?

Câu trả lời:


13

Rất nhiều điều này phụ thuộc vào định nghĩa của bạn về "đăng nhập" - về mặt kỹ thuật, bất kỳ người dùng nào tồn tại trong /etc/passwd& /etc/shadowlà "người dùng hợp lệ" và về mặt lý thuyết có thể đăng nhập theo đúng hoàn cảnh.

Các phương pháp bạn đang nói về rơi vào các loại lớn sau:

  • Người sử dụng với "khóa" chiếm
    Một người sử dụng có mật khẩu được thiết lập để *, !hoặc một số băm khác mà sẽ không bao giờ kết hợp được "khóa" (trong những ngày Sun ước là thường *LK*, vì "Locked").
    Những người dùng này không thể đăng nhập bằng cách nhập mật khẩu , nhưng họ vẫn có thể đăng nhập bằng các cơ chế xác thực khác (ví dụ: khóa SSH).

  • Người dùng có vỏ "không tương tác"
    Người dùng có tài khoản có "vỏ không tương tác" ( /bin/false, /sbin/nologin) không thể đăng nhập tương tác - tức là họ không thể nhận được lời nhắc shell để chạy lệnh tại (điều này cũng ngăn SSH thực thi lệnh nếu người dùng có khóa SSH trên hệ thống).
    Những người dùng này vẫn có thể đăng nhập để thực hiện những việc như đọc / gửi email (thông qua POP / IMAP & SMTP AUTH). Đặt shell không tương tác cho người dùng không bao giờ cần sử dụng shell (và đối với hầu hết "tài khoản dịch vụ") thường được coi là thực hành tốt.

Vì vậy, tùy thuộc vào tiêu chí của bạn để "có thể đăng nhập", bạn có thể muốn kiểm tra một hoặc cả hai điều này.


6

Có một sự khác biệt giữa việc vô hiệu hóa người dùng và đặt shell thành / bin / false hoặc tương tự.

Đặt shell thành / bin / false sẽ ngăn người dùng lấy shell, nhưng họ vẫn có thể đăng nhập vào hệ thống nếu người dùng cục bộ được sử dụng cho mục đích khác (xác thực thư, ftp, v.v.). Vô hiệu hóa người dùng khiến anh ta không thể sử dụng bất kỳ dịch vụ nào của máy chủ sử dụng người dùng cục bộ.


vì vậy, thực sự tất cả người dùng trong / etc / passwd đều là người dùng "có thể đăng nhập", nhưng một số người trong số họ bị vô hiệu hóa (*!) và một số người trong số họ bị hạn chế (/ bin / false)?
harryz

3

Ngoài những điều trên, người dùng có thể bị khóa khỏi một hệ thống mặc dù mục nhập mật khẩu của họ có vẻ chính xác bằng một số phương pháp khác nhau.

/etc/security/access.conf có thể được sử dụng để giới hạn người có thể đăng nhập.

Có nhiều mô-đun PAM có thể được cấu hình để hạn chế người dùng cụ thể hoặc sửa đổi hành vi đăng nhập dựa trên nhu cầu. (tức là không có thư mục chính trên máy chủ không cho phép đăng nhập.)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.