Linux 學習之路 (三):使用者管理命令詳解
使用者管理命令詳解
useradd [options] USERNAME
-u UID(>=500,並且與其他使用者無重複)
-g GID(基本組,組必須事先存在)
-G GID,… (附加組,組必須事先存在)
useradd -G mygroup user3
-c “COMMENT”(指定註釋資訊)
-d /path/to/somedir(指定使用者家目錄,預設在home目錄下會建立跟使用者同名的家目錄)
-r 新增系統使用者(1-499,沒有家目錄)
useradd -c "Tony Blare" -d /home/blare user4
檢視使用者:tail -1 /etc/passwd
-s SHELL路徑
/etc/shells:指定了當前系統可用的安全shell
環境變數:PATH,HISTSIZE,SHELL(用於表示使用者當前shell)
echo $SHELL
-m -k 建立bash配置檔案
-M 不為使用者建立家目錄
/etc/login.defs
userdel [option] USERNAME 刪除使用者
預設不會刪除使用者的家目錄
-r: 同時刪除使用者的家目錄
id: 檢視使用者的賬號屬性資訊
[[email protected] ~] # echo $SHELL
/bin/bash
[[email protected]ost ~]# id
uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c
[[email protected] ~]# id user3
uid=1001(user3) gid=1001(user3) 組=1001(user3)
[[email protected] ~]# id -u user3
1001
[[email protected] ~]# id -G user3
1001
finger USERNAME: 檢視使用者賬號資訊
[[email protected] ~]# finger user3
Login: user3 Name: test add
Directory: /home/zhjn Shell: /bin/bash
Never logged in.
No mail.
No Plan.
usermod:修改使用者賬號屬性(用法與useradd相同)
-u UID
-g GID
-G GID(若使用者以前有一個附加組,則會覆蓋原有附加組)
-a -G(原有附加組上追加一個附加組)
-d 原使用者家目錄下建立的檔案無法訪問了
-d -m:即指定新的家目錄,又移動此前檔案進新的家目錄下去
-l 更改使用者登入名
-L 鎖定賬號 -U 解鎖賬號
chsh:更改使用者shell
chfn USERNAME:修改註釋資訊
密碼管理:
passwd [USERNAME] : 管理員修改其他使用者密碼
--stdin 從標準輸入讀取密碼
通過管道傳送使用者密碼:
echo "redhat" | passwd --stdin user3
-l 鎖定使用者賬號 -u 解鎖使用者賬號
-n 密碼最短使用期限 -d 刪除使用者密碼
pwck 檢查密碼完整性
組管理:
建立組:groupadd
groupadd
-g GID
-r 新增系統組
groupmod
-g GID
-n GRPNAME
groupdel
gpasswd GRPNAME 給組加密碼
切換到組:newgrp DRPNAME <–> exit
一組練習:
1.建立一個使用者mandriva,其ID號為2002,基本組為distro(組ID為3003,附加組為linux)
#groupadd -g 3003 distro
#groupadd linux
#useradd -u 2002 -g distro -G linux mandriva
2.建立一個使用者fedora,其全名為Fedora Community,預設shell為tcsh
#useradd -c "Fedora Community" -s /bin/tcsh fedora
3.修改mandriva的ID號為4004,基本組為linux,附加組為distro和fedora
#usermod -u 4004 -g linux -G distro,fedora mandriva
4.給fedora加密碼,並設定其密碼最短使用期限為2天,最長為50天
#passwd -n 2 -x 50 fedora
5.將mandriva的預設shell改為/bin/bash;
#usermod -s /bin/bash mandirva
6.新增系統使用者hbase,且不允許其登入系統
#useradd -r -s /sbin/nologin hbase
change 改變使用者密碼過期資訊
-d 最近一次的修改時間
-g 過期時間
-I 非活動時間
-m 最短使用期限
-M 最長使用期限
-w 警告時間
許可權管理
r:
w:
x:
三類使用者:
u:屬主
g:屬組
o:其他使用者
chown:改變檔案屬主(只有管理員可以使用此命令)
#chown USERNAME file,...
-R 修改目錄及其內部檔案的屬主
--reference=/path/to/somefile file,…更改somefile屬主屬組資訊與指定file一樣
#chown --reference=/tmp/abc /tmp/test
chown USERNAME:GRPNAME file,…
####chgrp GRPNAME file :改變檔案屬組
chmod:修改檔案的許可權
- 修改三類使用者許可權
chmod MODE file,…
-R
--reference=/path/to/somefile file,…
- 修改某類使用者或某些類使用者許可權
u,g,o,a
chmod 使用者類別=MODE file,…
#chmod g=rw /tmp/abc
#ls -l /tmp/abc
- 修改某類使用者某位或某些位許可權
u,g,o,a
chmod 使用者類別 + | -MODE file
#chmod u+x,g-x /tmp/abc
三類使用者同時加上執行許可權
#chmod +x /tmp/abc
操作多位許可權
#chmod u-wx /tmp/abc
練習:
1.新建一個沒有家目錄的使用者openstack
#useradd -M openstack
2.複製/etc/skel為/home/openstack
#cp -r /etc/skel /home/openstack
3.改變/home/openstack及其內部檔案的屬組屬主均為openstack
#chown -R openstack.openstack /home/openstack
4./home/openstack及其內部的檔案,屬組和其他使用者沒有任何訪問許可權
#chmod -R go= /home/openstack
驗證 su -openstack 切換正常則無誤
敲完一個命令一定要驗證一下:
[[email protected] ~]# useradd -M openstack
[[email protected] ~]# finger openstack
Login: openstack Name:
Directory: /home/openstack Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[[email protected] ~]# ls /home
zhengjiani zhjn
[[email protected] ~]# id openstack
uid=1002(openstack) gid=1002(openstack) 組=1002(openstack)
[[email protected] ~]#
[[email protected] ~]# cp -r /etc/skel /home/openstack
[[email protected] ~]# ls -l /home
總用量 4
drwxr-xr-x. 3 root root 78 10月 13 11:18 openstack
drwx------. 16 zhengjiani zhengjiani 4096 10月 12 16:12 zhengjiani
drwx------. 3 user3 user3 78 10月 13 09:19 zhjn
[[email protected] ~]# ls -l /home/openstack/ -a
總用量 12
drwxr-xr-x. 3 root root 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-r--r--. 1 root root 18 10月 13 11:18 .bash_logout
-rw-r--r--. 1 root root 193 10月 13 11:18 .bash_profile
-rw-r--r--. 1 root root 231 10月 13 11:18 .bashrc
drwxr-xr-x. 4 root root 39 10月 13 11:18 .mozilla
[[email protected] ~]# chown -R openstack.openstack /home/openstack/
[[email protected] ~]# ls -ld /home/openstack/
drwxr-xr-x. 3 openstack openstack 78 10月 13 11:18 /home/openstack/
[[email protected] ~]# ls -la /home/openstack/
總用量 12
drwxr-xr-x. 3 openstack openstack 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-r--r--. 1 openstack openstack 18 10月 13 11:18 .bash_logout
-rw-r--r--. 1 openstack openstack 193 10月 13 11:18 .bash_profile
-rw-r--r--. 1 openstack openstack 231 10月 13 11:18 .bashrc
drwxr-xr-x. 4 openstack openstack 39 10月 13 11:18 .mozilla
[[email protected] ~]# chmod -R go= /home/openstack/
[[email protected] ~]# ls -ld /home/openstack/
drwx------. 3 openstack openstack 78 10月 13 11:18 /home/openstack/
[[email protected] ~]# ls -la /home/openstack/
總用量 12
drwx------. 3 openstack openstack 78 10月 13 11:18 .
drwxr-xr-x. 5 root root 53 10月 13 11:18 ..
-rw-------. 1 openstack openstack 18 10月 13 11:18 .bash_logout
-rw-------. 1 openstack openstack 193 10月 13 11:18 .bash_profile
-rw-------. 1 openstack openstack 231 10月 13 11:18 .bashrc
drwx------. 4 openstack openstack 39 10月 13 11:18 .mozilla
[[email protected] ~]# su openstack
[[email protected] root]$ exit
手動新增使用者hive,基本組為hive(5000),附加組mygroup
nano /etc/group
hive:x:5000:
mygroup:hive
nano /etc/passwd
hive:x:5000:5000:Hive:/home/hive:/bin/bash
nano /etc/shadow
hive:!!:17817:0:99999:7:::
cp -r /etc/skel /home/hive
…
計算器:bc
openssl passwd
openssl passwd -1 -salt '12345678'
md5生成密碼
umask遮罩碼
#umask 022 指定使用者umask
666-umask 建立檔案
777-umask 建立目錄
umask:023
檔案:666-023=643可寫可執行(檔案預設沒有執行許可權,如果算出有執行許可權,則整體+1)
目錄:777-023=754
站在使用者登入的角度來說,SHELL的型別:
登入式shell
正常通過某終端登入
su -USERNAME
su -l USERNAME
非登入式shell
su USERNAME
圖形終端下開啟命令視窗
自動執行的shell指令碼
bash的配置檔案:
全域性配置
/etc/profile, /etc/profile.d/*.sh,/etc/bashrc
編輯其中任何一個,對所有使用者都生效
個人配置
/.bash_profile,/.bashrc
作用範圍越小越是最終生效的
profile類的檔案:
設定環境變數
執行命令或指令碼
bashrc類的檔案:
設定本地變數
定義命令別名
登入式shell如何讀取配置檔案?
/etc/profile --> /etc/profile.d/*sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登入式shell如何讀取配置檔案?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
定義別名 .bashrc
nano .bash_profile
退出登入logout