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