`adduser --disables-login` làm gì?


16

Một tài liệu cài đặt tôi đang làm theo hướng dẫn để thêm người dùng như vậy:

sudo adduser --disabled-login --gecos 'GitLab' git

Các --disabled-logincờ không có mặt tại hầu hết các trang người đàn ông tôi đã tìm kiếm.

Tôi đã tạo hai người dùng, một người có --disabled-login( foo) và một người không có ( git).

Theo như tôi có thể nói --disabled-logincờ không làm gì cả. Tôi vẫn có thể sucho cả người dùng và cả hai sử dụng /bin/bashlàm vỏ đăng nhập của họ.

Sự khác biệt duy nhất tôi có thể thấy là getent passwdcó thêm dấu phẩy trước thư mục chính trên người dùng đã bị vô hiệu hóa đăng nhập. Không có tài liệu nào tôi có thể tìm thấy để chỉ ra điều này có nghĩa là gì.

root@gitlab:~# getent passwd git
git:x:998:998:GitLab:/home/git:/bin/bash  

root@gitlab:~# getent passwd foo
foo:x:1001:1002:GitLab,,,:/home/foo:/bin/bash

CẬP NHẬT # 1

Tôi đã tìm thấy một sự khác biệt khác, một người dùng có *mật khẩu của họ, người dùng khác có !:

root@gitlab:~# getent shadow git
git:*:15998::::::
root@gitlab:~# getent shadow foo
foo:!:15998:0:99999:7:::

Chính xác thì --disabled-loginlàm gì trên Ubuntu?


Đối với bản ghi, dấu phẩy thừa tách các trường trong trường "gecos": tên đầy đủ, số phòng, điện thoại cơ quan, điện thoại nhà. Tôi không biết tại sao họ sẽ có mặt trong một phiên bản chứ không phải phiên bản kia. Bạn có thể tìm thấy tài liệu về điều này trong trang chủ của chfncông cụ.
Random832

Điều đó có ý nghĩa. Tôi đã vô tình chọn 'y' khi được nhắc nhập thông tin đó khi tôi thêm một trong những người dùng. Người dùng khác đã được thêm thông qua con rối.
kẻ phá hoại

Câu trả lời:


17

Lời giải thích không được ghi chép tốt.

--disables-login đặt mật khẩu thành !

Giá trị mật khẩu

NP or null = The account has no password
*  = The account is deactivated & locked
!  = The login is deactivated, user will be unable to login
!!  = The password has expired

Ví dụ

root@gitlab:~# getent shadow vagrant
vagrant:$6$abcdefghijklmnopqrstuvwxyz/:15805:0:99999:7:::

root@gitlab:~# getent shadow foo
foo:!:15998:0:99999:7:::

root@gitlab:~# getent shadow git
git:*:15998::::::

wikipedia ngắn gọn bao gồm điều này. Có vẻ như * và! có hiệu quả làm điều tương tự; ngăn người dùng đăng nhập (nhưng không từ người dùng khác)


3

Nó được thảo luận một phần ở đây trong shadowtrang người đàn ông.

đoạn trích

$ man shadow
...
...
encrypted password
     Refer to crypt(3) for details on how this string is interpreted.

     If the password field contains some string that is not a valid result of 
     crypt(3), for instance ! or *, the user will not be able to use a unix
     password to log in (but the user may log in the system by other means).

     This field may be empty, in which case no passwords are required to 
     authenticate as the specified login name. However, some applications which
     read the /etc/shadow file may decide not to permit any access at all if the
     password field is empty.

     A password field which starts with a exclamation mark means that the 
     password is locked. The remaining characters on the line represent the 
     password field before the password was locked.

Tùy thuộc vào phiên bản trang nam của bạn cho addusernó được tham chiếu ở đó.

trích đoạn trang người dùng

--disabled-login
       Do  not  run passwd to set the password.  The user won't be able
       to use her account until the password is set.

--disabled-password
       Like --disabled-login, but logins are still possible (for  exam-
       ple using SSH RSA keys) but not using password authentication.
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.