我目前正在爲內部程序開發Debian軟件包。作爲這個軟件包的一部分,我需要創建程序的大部分功能運行的用戶。我正在postinst腳本中執行此操作。 postinst腳本可以運行多次(例如在升級時),所以確保我不會每次嘗試創建用戶都很重要。確保在Debian GNU/Linux系統上存在用戶
那麼,如何確保僅在腳本運行的第一次時創建用戶,而不會影響腳本的後續運行?
我目前正在爲內部程序開發Debian軟件包。作爲這個軟件包的一部分,我需要創建程序的大部分功能運行的用戶。我正在postinst腳本中執行此操作。 postinst腳本可以運行多次(例如在升級時),所以確保我不會每次嘗試創建用戶都很重要。確保在Debian GNU/Linux系統上存在用戶
那麼,如何確保僅在腳本運行的第一次時創建用戶,而不會影響腳本的後續運行?
嘗試:
[[email protected] ~]$ id aiden
uid=500(aiden) gid=500(aiden) groups=500(aiden)
[[email protected] ~]$ id foomonkey
id: foomonkey: No such user
[[email protected] ~]$
第一$?
是0,第二個是1
你不需要知道用戶是否存在。如果用戶已經存在相同的參數,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.
如mentionned纔可以使用的「ID」命令,如果你想獲得系統中的所有用戶可以使用:
getent passwd
這將列出所有系統上的用戶(即使他們在遠程數據庫上,如ldap或nis等)。
好的答案。可能比id更強大。 – 2009-08-30 12:47:39