1. 程式人生 > >Linux 學習之路 (三):使用者管理命令詳解

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