在Linux中為現(xiàn)有用戶(hù)創(chuàng)建主目錄:useradd問(wèn)題
目錄
- Linux為現(xiàn)有用戶(hù)創(chuàng)建主目錄useradd
- 解決辦法
- Linux用戶(hù)、組管理及目錄操作
- linux用戶(hù)管理
- linux的組管理
- linux中的系統(tǒng)操作命令
- linux中的幫助命令
- linux中的文件目錄命令
- 總結(jié)
Linux為現(xiàn)有用戶(hù)創(chuàng)建主目錄useradd
本文方法也適用于其它的linux 。
我使用的是manjaro ,屬于Arch linux 家族。為了配置samba,增加一個(gè)用戶(hù)user1。
[me@manjaro ~]$ sudo useradd user1
但是之后發(fā)現(xiàn)/home下面并沒(méi)有建立對(duì)應(yīng)的主目錄,例如 /home/user1 。
查找原因,原來(lái)是沒(méi)有加上參數(shù) -m :
[me@manjaro ~]$ sudo useradd -m user1
解決辦法
網(wǎng)上的方法,要么是手工建立目錄,指定屬性;再?gòu)?/etc/skel/下復(fù)制文件 。 要么是重新建立一個(gè)用戶(hù)。但是我找到一個(gè)簡(jiǎn)單的官方解決方法:
[me@manjaro ~]$ sudo mkhomedir_helper user1
就是利用了mkhomedir_helper 命令。它為已經(jīng)存在的用戶(hù)建立相應(yīng)的主目錄,并且自動(dòng)復(fù)制一些文件如.bashrc、.profiles ...
-rwxr-xr-x 1 root root 22704 2月 2 17:21 /usr/sbin/mkhomedir_helper
參考:
補(bǔ)充:
上述 mkhomedir_helper 命令執(zhí)行之后,ctrl-alt-F2 (鍵盤(pán)第一排F1....F8,都可以試。Manjaro F7 是切換到桌面)打開(kāi)一個(gè) 終端界面:
以 user1 用戶(hù)登錄時(shí),可以登錄;但出現(xiàn)錯(cuò)誤提示;
--user1:user1:Change directory failed:No such file or directory.Logining in?with home="/"[user1@manjaro /]$?
這里,查看,/etc/passwd文件:
[user1@manjaro /]$ sudo cat /etc/passwd?...user1:x:1001:1001::user1:/bin/bash...
對(duì)應(yīng)user1一行應(yīng)該是:
user1:x:1001:1001::/home/user1:/bin/bash
mkhomedir_helpe 命令,僅僅是創(chuàng)建了用戶(hù)目錄,卻沒(méi)有修改/etc/passwd 文件。
解決方法就是,更改用戶(hù)user1的家目錄位置信息:
sudo usermod ?user1 ?--home ?/home/user1
再檢查passwd 文件內(nèi)容:
user1:x:1001:1001::/home/user1:/bin/bash
用戶(hù)user1 也能正常登錄了。
Linux用戶(hù)、組管理及目錄操作
linux用戶(hù)管理
1、任何使用linux的系統(tǒng)資源的用戶(hù)
必須用一個(gè)合法的賬號(hào)和密碼,賬號(hào)和密碼一般像系統(tǒng)管理員申請(qǐng),root是linux系統(tǒng)安裝時(shí)默認(rèn)創(chuàng)建的系統(tǒng)管理員賬號(hào)
2、添加用戶(hù):useradd 用戶(hù)名
linux中用戶(hù)不會(huì)獨(dú)立于組存在,創(chuàng)建用戶(hù)時(shí)如果不指定組,會(huì)默認(rèn)創(chuàng)建一個(gè)組,組名和用戶(hù)名相同,并將用戶(hù)添加到該組
3、給用戶(hù)設(shè)置密碼:passwd 用戶(hù)名
當(dāng)我們?cè)O(shè)置過(guò)于簡(jiǎn)單的密碼或者容易被破解的密碼時(shí),linux會(huì)給出相應(yīng)的提示,但是其實(shí)也是可以設(shè)置上的,再輸入一遍密碼即可設(shè)置成功,如果是正式環(huán)境請(qǐng)?jiān)O(shè)置復(fù)雜密碼,因?yàn)槲沂亲鰷y(cè)試,所以設(shè)置比較簡(jiǎn)單。
4、刪除用戶(hù):userdel 用戶(hù)名
userdel user
:僅刪除用戶(hù)userdel -r user
:刪除用戶(hù)的同時(shí)級(jí)聯(lián)刪除它的主目錄
5、查看用戶(hù)信息:id 用戶(hù)名
6、切換用戶(hù) :su 用戶(hù)名
從權(quán)限高的用戶(hù)切換到權(quán)限低的用戶(hù),不需要密碼驗(yàn)證,反之需要密碼驗(yàn)證
linux的組管理
1、linux中的組相當(dāng)于角色的概念,可以對(duì)有共性的用戶(hù)進(jìn)行統(tǒng)一管理,如上:每個(gè)用戶(hù)至少屬于一個(gè)組,不能獨(dú)立于組存在。
2、添加組:groupadd 組名
3、刪除組:groupdel 組名
4、把用戶(hù)添加到組中:gpasswd -a 用戶(hù)名 組名
5、把用戶(hù)從組中移除:gpasswd -d 用戶(hù)名 組名
6、添加用戶(hù)時(shí),指定所屬的組(主組):useradd -g 組名 用戶(hù)名
linux中的系統(tǒng)操作命令
關(guān)機(jī):
- shutdown now 立即關(guān)機(jī)
- shutdown -h xxx 定時(shí)關(guān)機(jī)
- shutdown -r now 立即重啟
重啟:reboot 立即重啟
同步數(shù)據(jù):sync
linux中的幫助命令
1、查看linux系統(tǒng)手冊(cè)上的幫助信息:man 命令
分屏顯示信息,按回車(chē)翻一行,按空格翻一頁(yè),按q退出查看
舉例:man ls
2、查看命令的內(nèi)置幫助信息:help 命令
linux中的文件目錄命令
1、查看當(dāng)前所在目錄:pwd
2、查看指定目錄下所有的子目錄或者文件列表:ls [指定目錄](méi)
- []表示參數(shù)可選ls
- ls -l [指定目錄](méi):列表形式顯示
- ls -a [指定目錄](méi):顯示包含虛擬目錄/隱藏目錄
- ls -al [指定目錄](méi):多個(gè)選項(xiàng)可以組合使用
3、 切換目錄: cd 目錄名
- 絕對(duì)目錄:以盤(pán)符開(kāi)始的目錄
- cd /opt/testDir
- 一個(gè)特殊的絕對(duì)目錄 ~:當(dāng)前用戶(hù)的根目錄 cd ~
- 相對(duì)目錄:以當(dāng)前目錄名開(kāi)始的目錄
- cd testDir
- 特殊的相對(duì)目錄 ..:當(dāng)前目錄的上一級(jí)目錄 cd ..
- .:當(dāng)前目錄 cd . 一般執(zhí)行shell文件時(shí)用到 ./xxx.sh
4、創(chuàng)建目錄:mkdir 目錄名(可用絕對(duì)/相對(duì)目錄)
mkdir默認(rèn)只創(chuàng)建一級(jí)目錄
增加-p選項(xiàng)可以一次創(chuàng)建多級(jí)目錄
5、刪除一個(gè)空目錄:rmdir 目錄名
6、創(chuàng)建文件:touch 文件名列表(文件名之間用空格隔開(kāi))
7、復(fù)制文件/目錄:cp source(源) dest(目標(biāo))
默認(rèn)只復(fù)制當(dāng)前一級(jí)
增加-r選項(xiàng)可以遞歸復(fù)制當(dāng)前級(jí)下的多級(jí)目錄 cp -r test3 test
8、刪除文件或目錄:rm 文件名/目錄名
- -f:強(qiáng)制刪除
- -r:遞歸刪除目錄
- -rf:遞歸強(qiáng)制刪除目錄
9、移動(dòng)文件或目錄:mv source(源) dest(目標(biāo))
- mv t3.txt t3_new.txt:文件重命名
10、查看文件內(nèi)容:cat 文件名
- 內(nèi)容一次性顯示出來(lái)
- -n:顯示行號(hào)
11、分頁(yè)查看文本內(nèi)容:more 文件名
- 空格鍵:翻一頁(yè)
- 回車(chē)鍵:翻一行
q
:離開(kāi)more
12、分頁(yè)查看文件內(nèi)容:less 文件名 效率更高
- 空格鍵:翻一頁(yè)
- 回車(chē)鍵:翻一行
- /字串:向下搜尋字串
- ?字串:向上搜尋字串
13、查看文件頭10行內(nèi)容:head 文件名
-n 5
:查看頭5行內(nèi)容
14、查看文件尾10行內(nèi)容:tail 文件名
-n 5
:查看文件尾5行內(nèi)容-f
:循環(huán)讀取
15、echo指令:主要用于輸出系統(tǒng)變量或者常量值到命令行終端
JAVA_HOME、PATH、CLASSPATHecho $JAVA_HOME
一般寫(xiě)在shell腳本中
16、>指令:向指定文件填寫(xiě)前一個(gè)命令的輸出結(jié)果
查看命令(ls、cat、more、less、、、) > 文件名(如果文件不存在,則會(huì)新建一個(gè))
如果目標(biāo)文件已存在,則把文件以前的內(nèi)容覆蓋
17、把前一個(gè)查看命令的結(jié)果追加輸出到指定的文件中:查看命令 >> 文件名
如果文件不存在,則會(huì)新建一個(gè)
如果目標(biāo)文件已存在,則把文件以前的內(nèi)容覆蓋
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。
