Thay đổi vỏ đăng nhập không nhất thiết ngăn người dùng xác thực (ngoại trừ trong một số dịch vụ kiểm tra xem vỏ của người dùng có được đề cập đến không /etc/shells
).
Mọi người vẫn có thể xác thực các dịch vụ khác nhau mà hệ thống của bạn cung cấp cho người dùng unix và vẫn có thể được phép thực hiện một số hành động mặc dù có thể không chạy trực tiếp các lệnh tùy ý.
Thay đổi shell thành /bin/false
hoặc /usr/sbin/nologin
sẽ chỉ ngăn chúng chạy các lệnh trên các dịch vụ có thể được sử dụng để chạy các lệnh (đăng nhập bảng điều khiển, ssh, telnet, rlogin, rexec ...), do đó chỉ ảnh hưởng đến ủy quyền cho một số dịch vụ.
Chẳng ssh
hạn, điều đó vẫn cho phép họ thực hiện chuyển tiếp cổng.
passwd -l
sẽ vô hiệu hóa xác thực mật khẩu, nhưng người dùng vẫn có thể được phép sử dụng các phương thức xác thực khác (như authorized_keys
với ssh
).
Với pam
Linux, ít nhất, bạn có thể sử dụng pam_shells
mô-đun để hạn chế xác thực hoặc ủy quyền cho người dùng có vỏ được phép (những thứ được đề cập trong /etc/shells
). Đối với ssh
, bạn sẽ muốn thực hiện ở cấp ủy quyền ( account
) như để sshd
sử dụng xác thực pam
cùng với các phương thức xác thực khác (như authorized_keys
) hoặc bạn có thể thực hiện với các sshd_config
chỉ thị trong /etc/ssh/sshd_config
(như AllowUsers
và bạn bè).
Coi chừng rằng việc thêm một số hạn chế trong ủy quyền pam toàn cầu sẽ có khả năng ngăn cron
công việc chạy như những người dùng đó.
/bin/false
có vẻ phổ biến hơn/bin/true
.