Users通過“useradd -ms
通過“useradd -ms which false
”創建使用者究竟會發生什麼?
我正在觀看一個影片,作者說我們可以使用此命令來阻止使用者登錄。
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
或使帳戶過期完全沒有任何作用。只是與登錄等相關的各種工具和庫。看看那些東西。)