Posted on 2009-08-13 18:38
Prayer 閱讀(22938)
評論(0) 編輯 收藏 引用 所屬分類:
Shell 、
LINUX/UNIX/AIX
如果沒有在useradd時候指定的話,是沒有密碼的。第一次用該用戶登陸系統的時候,系統會提示你修改密碼。
只能用passwd修改密碼
useradd -p 設密碼 useradd有一個選項 p,可以直接設置密碼,但是是密文,形如
$1$EaTjv12a$yAYHKjRflqHtqH807o59D0
這是加密過的,比如我想給用戶設置的密碼為123456,那么你在現在系統中設置一個用戶密碼用passwd,在/etc/shadow的第二個字段,拿到這個密文就可以用p直接設置密碼了
useradd -p \$1\$EaTjv12a\$yAYHKjRflqHtqH807o59D0 user
useradd命令 -p 參數的一個誤解
關鍵詞:
useradd
linux下 man useradd可以看到幫助,其中-p參數的解釋如下:
-p passwd
The encrypted password, as returned by crypt(3). The default is
to disable the account.
英語好的人也許一看就懂了,但是我不是,我很弱。所以也因此疑惑了一天。
我本來打算用useradd命令添加用戶后就可以直接賦予密碼的,故此我在root下添加用戶
/usr/sbin/useradd -d '/home' -p iampig123 hehe
嘗試了下,不能用該密碼登陸
/usr/sbin/useradd -d '/home' -p 'iampig123' hehe
還是不行。
這是為什么呢,在高手的指點下我才看懂了,原來幫助里面說得很清楚了,
as returned by crypt(3),也就是說這里寫得必須是加密得字符。
linux將帳號信息保存在/etc/passwd,將密碼信息保存在/etc/shadow,
因使用加密策略,保存在shadow中的是隱性的代號。
說我們cat一下就可以看到許多賬號的信息
比方說如下這行
deepspace:$1$zpe.sRXJ$Id6zoW0h.9xn6b84Ybfjo/:13200:0:99999:7:::
也就是說如果你非要用-p參數來直接賦予密碼的話,必須使用那竄加密過的字符串;)
編輯/etc/passwd文件。
[組名]:[口令]:[組ID]:[用戶]。
如果使用了shadow隱藏口令,就編輯/etc/shadow文件
要有root權限。