本文簡要介紹了如何在Linux和類unix服務(wù)器系統(tǒng)中使用mkhomedir_helper命令為現(xiàn)有用戶創(chuàng)建主目錄。
你已經(jīng)知道,我們可以在Linux和Unix類系統(tǒng)中使用adduser命令創(chuàng)建一個(gè)新用戶,對嗎?是的,沒錯(cuò)! 當(dāng)我們添加一個(gè)新用戶時(shí),默認(rèn)情況下會(huì)自動(dòng)創(chuàng)建相應(yīng)用戶的主目錄。
在Linux服務(wù)器中還有另一個(gè)創(chuàng)建用戶的命令。它就是useradd。當(dāng)我在Alpine Linux中使用useradd命令創(chuàng)建了幾個(gè)用戶后,我發(fā)現(xiàn)沒有創(chuàng)建用戶的$HOME目錄。我之前并不知道。在閱讀了 useradd 命令的手冊后,我意識(shí)到我應(yīng)該加入 -m (或 –create-home) 選項(xiàng)來創(chuàng)建帶有 $HOME 目錄的新用戶,如下所示。
$ sudo useradd -m user_name
或者
$ sudo useradd –create-home user_name
但是,我忘了加入這個(gè)選項(xiàng),于是繼續(xù)創(chuàng)建了一些新用戶。如果你和我一樣,不要?jiǎng)h除現(xiàn)有的用戶,而是用-m選項(xiàng)重新創(chuàng)建他們。在Linux服務(wù)器中,你可以很容易地使用mkhomedir_helper命令為現(xiàn)有用戶創(chuàng)建主目錄,而不需要?jiǎng)h除和重新創(chuàng)建用戶。
在Linux服務(wù)器中為現(xiàn)有用戶創(chuàng)建主目錄
mkhomedir_helper 是 pam_mkhomedir 模塊的輔助程序。pam_mkhomedir PAM模塊會(huì)在會(huì)話開始時(shí)創(chuàng)建一個(gè)用戶的主目錄,如果它不存在的話。首先,這個(gè)模塊會(huì)創(chuàng)建主目錄,然后用指定的skel目錄的內(nèi)容填充。umask的默認(rèn)值是0022,path-to-skel的默認(rèn)值是/etc/skel。
我舉一個(gè)例子來解釋如何在mkhomedir_helper命令的幫助下為現(xiàn)有用戶創(chuàng)建主目錄。
首先,讓我們使用useradd命令創(chuàng)建一個(gè)名為a5idc的新用戶。
$ useradd a5idc
給用戶設(shè)置密碼。
$ passwd a5idc
現(xiàn)在切換到新用戶。
$ su – a5idc
你會(huì)遇到以下錯(cuò)誤信息。
su: warning: cannot change Directory to /home/a5idc: No such file or Directory
正如你在上面的輸出中所看到的,用戶a5idc的home目錄不存在,因此出現(xiàn)了這個(gè)錯(cuò)誤。
讓我們通過查看/home目錄來驗(yàn)證。
$ ls -l /home/
total 0
drwx—— 1 vagrant vagrant 72 Dec 15 13:19 vagrant
嗯,確實(shí)沒有用戶a5idc的主目錄。
所以讓我們用mkhomedir_helper命令為現(xiàn)有的用戶(即本例中的a5idc)創(chuàng)建主目錄。
要做到這一點(diǎn),首先要從用戶a5idc注銷,如果你已經(jīng)登錄了。
$ exit
然后運(yùn)行以下命令為名為a5idc的用戶創(chuàng)建主目錄。
$ sudo mkhomedir_helper a5idc
請注意,你必須以root用戶或不同的sudo用戶運(yùn)行上述命令。
現(xiàn)在切換到用戶 a5idc。
$ su – a5idc
這次你不會(huì)收到任何警告信息,因?yàn)槊麨?nbsp;a5idc 的用戶的主目錄已經(jīng)用 mkhomedir_helper 命令創(chuàng)建了。
更多細(xì)節(jié)請參考man頁面。
$ man mkhomedir_helper
你現(xiàn)在知道如何在服務(wù)器中創(chuàng)建用戶后創(chuàng)建主目錄了。當(dāng)你在使用useradd命令創(chuàng)建用戶時(shí)忘了包含-m選項(xiàng)時(shí),這將會(huì)很有用的。
與useradd相比,你可以使用adduser命令,它將自動(dòng)創(chuàng)建用戶的主目錄,而不需要任何選項(xiàng)。