2009-08-24 40 views
3

我目前正在爲內部程序開發Debian軟件包。作爲這個軟件包的一部分,我需要創建程序的大部分功能運行的用戶。我正在postinst腳本中執行此操作。 postinst腳本可以運行多次(例如在升級時),所以確保我不會每次嘗試創建用戶都很重要。確保在Debian GNU/Linux系統上存在用戶

那麼,如何確保僅在腳本運行的第一次時創建用戶,而不會影響腳本的後續運行?

回答

2

你不需要知道用戶是否存在。如果用戶已經存在相同的參數,adduser(8)不會返回錯誤。從手冊頁:

EXIT VALUES 
     0  The user exists as specified. This can have 2 causes: The user 
       was created by adduser or the user was already present on the 
       system before adduser was invoked. Invoking adduser a second 
       time with the same parameters as before also returns 0. 
1

如mentionned纔可以使用的「ID」命令,如果你想獲得系統中的所有用戶可以使用:

getent passwd 

這將列出所有系統上的用戶(即使他們在遠程數據庫上,如ldap或nis等)。

+0

好的答案。可能比id更強大。 – 2009-08-30 12:47:39