/etc/securetty
được tham khảo bởi mô-đun pam_securetty để quyết định từ gốc thiết bị đầu cuối ảo (ttyS) nào được phép đăng nhập từ đó. Trước đây, /etc/securetty
được tư vấn bởi các chương trình như đăng nhập trực tiếp, nhưng bây giờ PAM xử lý việc đó. Vì vậy, những thay đổi /etc/securetty
sẽ ảnh hưởng đến mọi thứ khi sử dụng PAM với tệp cấu hình sử dụng pam_securetty.so. Vì vậy, chỉ có chương trình đăng nhập bị ảnh hưởng theo mặc định. /etc/pam.d/login
được sử dụng cho đăng nhập cục bộ và /etc/pam.d/remote
được sử dụng cho đăng nhập từ xa (như telnet).
Các loại mục nhập chính và ảnh hưởng của chúng là như sau:
- Nếu
/etc/securetty
không tồn tại, root được phép đăng nhập từ bất kỳ tty nào
- Nếu
/etc/securetty
tồn tại và trống, quyền truy cập root sẽ bị hạn chế ở chế độ người dùng hoặc các chương trình không bị hạn chế bởi pam_securetty (ví dụ: su, sudo, ssh, scp, sftp)
- nếu bạn đang sử dụng devfs (hệ thống tệp không dùng để xử lý / dev), việc thêm các mục có dạng vc / [0-9] * sẽ cho phép đăng nhập root từ số bảng điều khiển ảo đã cho
- nếu bạn đang sử dụng udev (để quản lý và thay thế thiết bị động cho devfs), việc thêm các mục ở dạng tty [0-9] * sẽ cho phép đăng nhập root từ số bảng điều khiển ảo đã cho
- bảng điều khiển liệt kê trong securetty, thường không có tác dụng vì / dev / bàn điều khiển trỏ đến bảng điều khiển hiện tại và thường chỉ được sử dụng làm tên tệp tty trong chế độ người dùng duy nhất, không bị ảnh hưởng bởi
/etc/securetty
- thêm các mục như pts / [0-9] * sẽ cho phép các chương trình sử dụng thiết bị đầu cuối giả (pty) và pam_securetty để đăng nhập vào root giả sử pty được phân bổ là một trong những chương trình được liệt kê; Thông thường, không nên bao gồm các mục này vì đó là rủi ro bảo mật; chẳng hạn, nó sẽ cho phép ai đó đăng nhập vào root thông qua telenet, sẽ gửi mật khẩu trong bản rõ (lưu ý rằng pts / [0-9] * là định dạng cho udev được sử dụng trong RHEL 5.5; nó sẽ khác nếu sử dụng devfs hoặc một số hình thức quản lý thiết bị khác)
Đối với chế độ người dùng, /etc/securetty
không được tham khảo vì sulogin được sử dụng thay vì đăng nhập. Xem trang người đàn ông sulogin để biết thêm. Ngoài ra, bạn có thể thay đổi chương trình đăng nhập được sử dụng /etc/inittab
cho mỗi runlevel.
Lưu ý rằng bạn không nên sử dụng /etc/securetty
để kiểm soát đăng nhập gốc thông qua ssh. Để làm điều đó thay đổi giá trị của PermitRootLogin trong /etc/ssh/sshd_config
. Theo mặc định /etc/pam.d/sshd
không được cấu hình để tham khảo pam_securetty (và do đó /etc/securetty
). Bạn có thể thêm một dòng để làm như vậy, nhưng ssh không đặt tty thực tế cho đến khi nào đó sau giai đoạn xác thực, vì vậy nó không hoạt động như mong đợi. Trong giai đoạn xác thực và tài khoản - ít nhất là cho openssh - tty (PAM_TTY) được mã hóa thành "ssh".
Câu trả lời trên được dựa trên RHEL 5.5. Phần lớn nó sẽ liên quan đến các bản phân phối hiện tại của các hệ thống * nix khác, nhưng có những khác biệt, một số trong đó tôi lưu ý, nhưng không phải tất cả.
Tôi đã tự trả lời điều này vì các câu trả lời khác không đầy đủ và / hoặc không chính xác. Nhiều diễn đàn, blog, vv trực tuyến cũng có thông tin không chính xác và không đầy đủ trong chủ đề này, vì vậy tôi đã thực hiện nghiên cứu và thử nghiệm rộng rãi để cố gắng có được thông tin chi tiết chính xác. Nếu bất cứ điều gì tôi nói là sai, xin vui lòng cho tôi biết mặc dù.
Nguồn: