Linux

如何從腳本添加具有隨機或無效密碼的 linux 使用者

  • July 16, 2009

我想通過腳本將使用者添加到 linux 系統,但我不想發明或關心密碼。這應該自動完成。

目標是生成 ssh-keys,這個使用者只需要遠端登錄。或者,該使用者將通過 sudo 使用者使用sudo su - thatuser

我想在每次創建這樣的使用者時省去發明和輸入一些安全密碼的麻煩,並且也可以從腳本中執行此操作。

沒有人應該能夠以該使用者的身份使用密碼登錄,所以我的想法是他得到了一個很好的隨機密碼,但沒有人知道。

我可以編寫一個腳本來生成隨機的東西,但也許有一些內置的東西?或者只是停用密碼(這樣密碼登錄是不可能的,但是使用密鑰進行 ssh 登錄並且sudo su - thatuser工作正常。

**編輯:**已經有一些答案,很好,但我仍然不知道該怎麼做。腳本會是什麼樣子?

它的行為應該像 adduser 並創建所有標準(如 std.home 目錄、複製的骨架、具有相同名稱的組)

**Edit2:**最後,在您的幫助下,我找到了一個可行的解決方案,我想分享它。這是一個我稱之為“adduser-nopasswd”的腳本,我將它放入/usr/local/sbin(這是一個好地方嗎?),它只能由root執行。它有一個參數,同時是新組和使用者的名稱:

#!/bin/sh -e
# the -e makes the script exit immediateley if one command fails
NAME=$1
groupadd $NAME
useradd --create-home -d /home/$NAME --shell /bin/bash -g $NAME $NAME

對此功能有何評論?

如果您沒有指定密碼,useradd它將不會被設置(因此使用者將無法通過密碼登錄)。請注意,useraddandadduser是兩個不同的命令。

下面應該使用自己的組創建新使用者,創建它的主目錄(在預設位置,因為我們沒有指定任何位置)並複制骨架文件。

useradd --create-home <user>

然後,您只需.ssh在其主目錄中chmod創建目錄0700(SSH 將需要此以確保安全),並將使用者公鑰放入.ssh/authorized_keys(私鑰/公鑰對應由使用者他/她自己生成,在他/她自己的電腦)。

如果要禁用現有帳戶的密碼,可以使用以下方法。

usermod --lock <user>

引用自:https://serverfault.com/questions/41541