it-mot-dan-vi.com

Vô hiệu hóa đăng nhập của người dùng mà không vô hiệu hóa tài khoản

Giả sử tôi tạo một người dùng có tên "không có thật" bằng cách sử dụng lệnh adduser. Làm cách nào tôi có thể đảm bảo người dùng này sẽ KHÔNG phải là một tùy chọn đăng nhập khả thi, mà không vô hiệu hóa tài khoản. Nói tóm lại, tôi muốn tài khoản có thể truy cập được thông qua su - bogus, nhưng tôi không muốn nó có thể truy cập được thông qua Nhắc đăng nhập thông thường.

Tìm kiếm xung quanh, có vẻ như tôi cần phải tắt mật khẩu của người dùng đó, nhưng thực hiện passwd -d bogus đã không giúp đỡ. Trong thực tế, nó làm mọi thứ tồi tệ hơn, bởi vì bây giờ tôi có thể đăng nhập vào không có thật mà không cần nhập mật khẩu.

Có cách nào để vô hiệu hóa thông tin đăng nhập thông thường cho một tài khoản nhất định không?

Lưu ý: Để rõ ràng, tôi biết cách xóa người dùng khỏi các tùy chọn menu của màn hình đăng nhập đồ họa như gdm, nhưng các phương pháp này chỉ đơn giản là ẩn tài khoản mà không thực sự tắt đăng nhập. Tôi đang tìm cách để tắt hoàn toàn đăng nhập thường xuyên, bao gồm chế độ văn bản.

92
Malabarba
passwd -l user

là những gì bạn muốn.

Điều đó sẽ khóa tài khoản người dùng. Nhưng bạn vẫn có thể

su - user

nhưng bạn sẽ phải su - user là root.

Ngoài ra, bạn có thể thực hiện điều tương tự bằng cách đăng ký ! với mật khẩu của người dùng trong /etc/shadow (đây là tất cả passwd -l không ở hậu trường). Và passwd -u sẽ hoàn tác điều này.

105
Chad Feller

Trang man của passwd(1) nói về passwd -l:

Lưu ý rằng điều này không vô hiệu hóa tài khoản. Người dùng vẫn có thể đăng nhập bằng mã thông báo xác thực khác (ví dụ: khóa SSH). Để vô hiệu hóa tài khoản, quản trị viên nên sử dụng usermod - expiredate 1 (điều này đặt ngày hết hạn của tài khoản thành ngày 2 tháng 1 năm 1970).

Vì thế

usermod --expiredate 1 [LOGIN]

đối với tôi có vẻ như đúng cách để vô hiệu hóa tài khoản mà người dùng không thể sử dụng được nữa (ví dụ: vì anh ta đã rời công ty).

39
Jörg Gottschlich

Có hai phương pháp để ngăn người dùng không thể đăng nhập:

  1. bạn có thể khóa người dùng bằng cách chỉnh sửa /etc/passwd
  2. bằng cách trực tiếp ban hành lệnh passwd với -l công tắc điện

Trong trường hợp thứ hai, người dùng có thể đăng nhập bằng mã thông báo xác thực khác (ví dụ: khóa SSH).

Phương pháp số 1

  1. Tìm vị trí của nologin:/bin/nologin hoặc/bin/sbin/nologin
  2. Mở terminal và đăng nhập bằng root
  3. Kiểu vi /etc/passwd

Bây giờ bạn đang ở trong passwd nhấn tập tin Ins để chỉnh sửa tập tin.

Thay đổi dòng dưới đây với tùy chọn nologin (/bin/bash có nghĩa là người dùng có thể đăng nhập).

root:x:0:0:root:/root:/bin/bash

đến đây nologin có nghĩa là người dùng không thể đăng nhập.

root:x:0:0:root:/root:/bin/nologin

(hoặc với/bin/sbin/nologin)

  1. Đóng vi Esc:wq

Phương pháp # 2

Để khóa người dùng: passwd -l username

Để mở khóa người dùng: passwd -u username

28
Mansur Ul Hasan

Nhiệm vụ khá dễ dàng của bạn, bạn chỉ cần thực hiện một số thay đổi trong /etc/passwd tập tin.

Đơn giản là bạn phải thay đổi Shell thường theo mặc định /bin/bash I.e bạn có thể đăng nhập bằng Shell này đổi nó thành /bin/nologin hoặc là /bin/false. Nên đổi nó thành /bin/nologin bởi vì /bin/false Đã lỗi thời.

7
PRABHAT PARASHAR

Bộ /bin/false như một Shell trong /etc/passwd

4
danadam

Khi chúng tôi khóa người dùng bằng cách sử dụng passwd -l user chỉ huy, "!! "được chỉ định trong /etc/shadow tập tin. Nhưng chúng tôi vẫn có thể chuyển sang Shell người dùng từ tài khoản root, nhưng không thể chuyển sang tài khoản người dùng bằng cách đăng nhập Shell người dùng bình thường khác.

Chúng tôi cũng có thể vô hiệu hóa tài khoản bằng cách cung cấp /bin/nologin hoặc là /bin/false vào /etc/passwd tập tin. Vì vậy, người dùng có thể không thể đăng nhập.

0
Sushil Musande