Users

通過“useradd -ms which false”創建使用者究竟會發生什麼?

  • April 19, 2022

我正在觀看一個影片,作者說我們可以使用此命令來阻止使用者登錄。

useradd -ms `which false` u2

下面是我的測試。

[root@192 ~]# tree -dL 1 /home
/home
├── u1
└── user1

2 directories
[root@192 ~]# useradd -ms `which false` u2
[root@192 ~]# tree -dL 1 /home
/home
├── u1
├── u2
└── user1

3 directories
[root@192 ~]# passwd u2
Changing password for user u2.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@192 ~]# logout
[u1@192 ~]$ whoami
u1
[u1@192 ~]$ logout
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password: 
[user1@192 ~]$ whoami
user1
[user1@192 ~]$ su - u2
Password: 
Last login: Tue Apr 19 11:22:01 PDT 2022 on pts/0
[user1@192 ~]$ whoami
user1
[user1@192 ~]$

對我來說,我覺得使用者可以成功登錄,因為沒有錯誤。而且,如您所見,當我再次嘗試登錄時,它甚至會告訴我上次登錄時間。只是使用者一連接就斷開了連接。這是真的?下面到底發生了什麼?

手冊頁)的-s選項是:useradd

-s,--shell SHELL

使用者登錄shell的名稱。

並且which false只給出 command 的路徑false,除了 exit 之外什麼都不做(有錯誤,但這沒關係)。

所以,在大多數情況下,使用者正常工作,只是他們有一個不執行的外殼,所以他們實際上不能做任何事情。

您可能應該為他們創建密碼,而是使用類似usermod -L u2( man page ) 來鎖定帳戶密碼,或chage( man page ) 使帳戶過期,這取決於您想用它做什麼。

(就核心而言,將密碼鎖定在 中/etc/shadow或使帳戶過期完全沒有任何作用。只是與登錄等相關的各種工具和庫。看看那些東西。)

引用自:https://unix.stackexchange.com/questions/699604