linux 用戶、用戶組及相關命令(useradd 、passwd、userdel 、groupadd 、groupdel、usermod 、gpasswd 、 id、su)

linux是一個多用戶系統,用於權限管理(權限最小化);linux

相關命令:shell

7 8 9 10 11 12 13 14 15
useradd passwd userdel groupadd groupdel usermod gpasswd id su

##一、linux系統中主組和附加組bash

在Linux系統中建立每一個用戶時,將自動建立一個與其同名的基本用戶組,並且這個基本用戶組只有該用戶一我的。若是該用戶之後被概括入其餘用戶組,則這個其餘用戶組稱之爲擴展用戶組。一個用戶只有一個基本用戶組,可是能夠有多個擴展用戶組;dom

用戶的基本組(主組) 用戶的附加組:用戶額外屬於的組,一個用戶能夠加入多個附加組tcp

##二、Linux中的用戶類別post

在linux系統中共有3種用戶:ui

管理員用戶(root) uid=0 能夠登陸系統 有管理權限
普通用戶 1000<uid 可登陸系統 沒有管理權限
系統用戶 1<uid<999 不能夠登陸用戶 沒有管理權限

注意:是否能夠登陸系統由shell類型決定,詳見:本文中useradd命令講解加密

##三、用戶管理相關文件3d

文件位置 文件信息
/etc/passwd 用戶基本信息
/etc/shadow 用戶密碼信息、過時時間等
/etc/group 用戶組信息
/etc/gshadow 用戶組密碼
/etc/default/useradd 建立用戶的默認配置信息
/etc/skel/ 用戶家目錄模板
/etc/login.defs 全局用戶設定信息

##四、/etc/passwd文件詳解 /etc/passwd: 每行是一個用戶,用來記錄用戶的基本信息,每行的格式code

account:password:UID:GID:GECOS:directory:shell 其中: accout:用戶名 password:用戶密碼,密碼位置默認是x UID:用戶身份id,用來惟一的標識一個用戶 GID:用戶組id,用來在系統中惟一的標識一個用戶組(這裏指的是其基本組的組ID) GECOS:用戶描述信息,能夠空白,也能夠隨意寫(useradd -c ) directory:用戶家目錄 shell:用戶所使用的shell類型 /bin/bash–>能夠登陸系統 /sbin/nologin–>該用戶必定沒法登陸系統

╭─root@localhost.localdomain ~  
╰─➤  cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
du:x:1000:1000:du:/home/du:/bin/bash

root   :   x   :    0    :       0       :   newuser  :  /root  :  /bin/bash
用戶名  :  密碼  :  用戶id  :  用戶所在組的id :  描述信息  :  家目錄  :  shell類型

##五、/etc/group文件詳解

###用戶組信息

linux,用戶必定是屬於一個組的在linux中,建立用戶的時候,會自動建立一個組,組名和組id都和所建立的用戶相同,並且,該用戶會自動加入到這個組中;

groupname:password:GID: [user1, user2…..]
組成: groupname:組名 password:組密碼 GID:組id [user1, user2…..]:該組中的用戶列表

╭─root@localhost.localdomain ~  
╰─➤  cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
mail:x:12:postfix
tcpdump:x:72:
du:x:1000:du

##六、/etc/shadow文件詳解

zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :

第一段:用戶名: 第二段:加密後的密碼 第三段:上次修改密碼舉例元年通過的天數1970年1月1日(若是該字段空,意味着該用戶密碼被禁用) 第四段:密碼最短使用時間(0表示不限制) 第五段:密碼最長有效期(99999表示不限制)(若是第5的值小於第四段,那麼用戶沒法修改本身的密碼) 第六段:密碼到期前幾天開始發送告警,提示密碼即將過去,請當即修改 第七段:非活動期間,密碼到期後的寬限時間(登陸系統的時候必須先修改密碼,才能登陸) 第八段:密碼過時時間(也是舉例計算機元年通過的天數)(這裏和前面的幾個時間沒有聯繫) 第九段:保留字段

╭─root@localhost.localdomain ~  
╰─➤  cat /etc/shadow
root:$6$8.xhQ.jTum4dlHEi$fM.SZ2c7mEx7pfCNRJbOrwGBDM5OUySnv7pXIGrjhDbCWEk8Omba3atvGw8GexM/IhEyxskiPx4sE4beJPVKK.::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
du:$6$0RkDAuAfxyCuINAA$3PokksZIeoqccUXseqJBhhHoQEjT0G97IvztZNupUwBC4cxN3JtZkLlsaExH7Api0GTmDcASMZnCG/mVsa3dJ.::0:99999:7:::

##七、Useradd命令

useradd [options] username options: -d:指定用戶家目錄 –home
-c:用戶說明信息–comment -e: 指的帳號的過時時間–expiredate ;時間格式 YYYY/MM/DD -g:指的用戶的基本組的組id –gid #1
-G:指的用戶的附加組列表 –groups #2 -u :指的用戶的uid #3 -r :建立一個系統用戶 #4 不建立家目錄,不會複製 /etc/skel 下的文件; -s :指定用戶的shell類型(/bin/bash/,/sbin/nologin) #5 /bin/bash–>能夠登陸系統 /sbin/nologin–>該用戶必定沒法登陸系統

useradd -s /sbin/nologin  -r user1                       #建立一個系統用戶user1

##八、passwd 修改用戶密碼

passwd [[options] username]

options: -l:鎖定用戶 -u:解鎖用戶 -d:刪除用戶密碼 -e:讓用戶密碼過時 :若是不指定用戶名,那麼就是修改當前用戶的密碼 --stdin

echo 「 123「 | passwd --stdin user1        #表示給user1 用戶設置密碼123 (user1 用戶必須存在)

##九、Userdel命令

userdel [-r] username #-r:在刪除用戶的時候,連同用戶數據一併刪除 rm -rf /home/username 刪除用戶名 rm -rf /var/spool/mail/* 刪除郵件mail

##十、 groupadd 建立用戶組

groupadd [-g] groupname # -g 指定組ID

##十一、 groupdel 刪除用戶組

groupdel groupname

##十二、Usermod命令

usermod [options] username options: -g, –gid 基本組組id #1 -G, –groups 附加組組id #2 -u, –uid user的id #3 -s, –shell 更改shell類型 #4 -L, –lock: 鎖定用戶帳號 -U : 解鎖用戶帳號 -l, –login變動使用者login時的名稱爲login_name -e, –expiredate 加上使用者賬號中止日期 ,日期格式爲MM/DD/YY. -d, –home 更新使用者新的登入目錄 -m, –move-home:移動用戶家目錄至新的位置

╭─root@localhost.localdomain ~  
╰─➤  useradd -s /sbin/nologin test1
╭─root@localhost.localdomain ~  
╰─➤  usermod -s /bin/bash test1
╭─root@localhost.localdomain ~  
╰─➤  id test1
uid=1001(test1) gid=1001(test1) group=1001(test1)

##1三、gpasswd 命令

option: -a, --adduser 向名爲 group 的組中添加用戶 user -d, --deleteuser 從名爲 group 的組中移除用戶 user

╭─root@localhost.localdomain ~  
╰─➤  usermod -G root du
╭─root@localhost.localdomain ~  
╰─➤  id du
uid=1000(du) gid=1000(du) 組=1000(du),0(root)
╭─root@localhost.localdomain ~  
╰─➤  usermod -G du du
╭─root@localhost.localdomain ~  
╰─➤  id du
uid=1000(du) gid=1000(du) 組=1000(du)
╭─root@localhost.localdomain ~  
╰─➤  man gpasswd 
╭─root@localhost.localdomain ~  
╰─➤  gpasswd -a du root
正在將用戶「du」加入到「root」組中
╭─root@localhost.localdomain ~  
╰─➤  id du
uid=1000(du) gid=1000(du) 組=1000(du),0(root)
╭─root@localhost.localdomain ~  
╰─➤  gpasswd -a root du
正在將用戶「root」加入到「du」組中
╭─root@localhost.localdomain ~  
╰─➤  gpasswd -d du root
正在將用戶「du」從「root」組中刪除
╭─root@localhost.localdomain ~  
╰─➤  gpasswd -d root du
正在將用戶「root」從「du」組中刪除

##1四、id命令

###做用:用來查看指定的用戶的信息(或判斷用戶是否存在)

id [-u|-g|-G] username option: -u:僅僅顯示用戶uid -g:僅僅顯示用戶gid -G:僅僅顯示用戶所有組id

##1五、su命令(switch user)

  • 做用:進行切換用戶
  • 格式:su – 目標用戶
  • su命令和su -命令最大的本質區別就是: 前者只是切換了root身份,但Shell環境仍然是普通用戶的Shell;然後者連用戶和Shell環境一塊兒切換成root身份了;只有切換了Shell環境纔不會出現PATH環境變量錯誤;su切換成root用戶之後,pwd一下,發現工做目錄仍然是普通用戶的工做目錄;而用su -命令切換之後,工做目錄變成root的工做目錄了;用echo $PATH命令看一下su和su -之後的環境變量有何不一樣;以此類推,要從當前用戶切換到其它用戶也同樣,應該使用su -命令.
╭─root@localhost.localdomain ~  
╰─➤  su - du
上一次登陸:五 5月 10 20:30:49 CST 2019pts/0 上
[du@localhost ~]$

相關文章
相關標籤/搜索