描述:
用戶類型分爲管理員(root)和普通用戶(user),其中普通用戶又可以分爲系統用戶和登錄用戶。而用戶標識是根據其ID來區分的,簡稱爲UID,每個用戶所對應的ID都不同,也是唯一的,就如同每個人的×××號是不同的。每個用戶的UID及其它信息存放於系統的/etc/passwd文件裏,名稱解析庫,可用cat /etc/passwd命令查看。
[root@localhost ~]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ping:x:500:500::/home/ping:/bin/bash
共有7個字段,每個字段之間用“:”分隔,每個字段所表示的含義爲:
root:用戶名
X:加密後的密碼(也可以是佔位符X)
0:用戶的ID號
0:用戶所屬主組的GID號
root:註釋信息
/root:用戶的家目錄
/bin/shell:用戶登錄時默認shell程序
Linux系統採用16bints二進制數字來爲用戶提供UID(0-65635)。
管理員UID:0 普通用戶UID:1-65635
系統用戶UID:1-499(Centos6),1-999(Centos7)
登錄用戶UID:500-60000(Centos6),1000-60000(Centos7)
每個用戶都有各自的組,簡稱爲:group。每個組也有其對應的ID,也是唯一的,簡稱爲GID。每個用戶的GID及其它信息存放於系統的/etc/group文件裏,名稱解析庫,可用cat /etc/group命令查看。
[root@localhost ~]# cat /etc/group root:x:0:gentoo bin:x:1:bin,daemon,gentoo ping:x:500:
共有4個字段,每個字段之間用“:”分隔,每個字段的含義爲:
root:用戶組名稱
X:加密後的組密碼
0:所屬組的GID號
root:此用戶組支持的賬號名稱
其中root的GID爲0
每個用戶所屬的組按照不同的分類方法可分爲以下幾類:
1,管理員組和普通用戶組。其中普通用戶組又分爲系統組和登錄組
管理員組GID:0 普通用戶GID:1-6535
2,用戶的基本組和附加組
3,私有組(組名同用戶名,且只包含一個用戶)
公共組(組內包含了多個用戶)
用戶如果需要登錄主機以取得shell的環境來工作時,必須要在計算機前面利用tty1~tty7的終端機提供的login接口,並輸入其賬號與密碼才能夠登錄。此過程稱爲認證過程。通過比對事先存儲在/etc/passwd和/etc/shadow中的信息,與用戶登錄時所提供的信息是否一致。
在系統裏的/etc/shadow文件中存放着用戶的密碼信息,只有管理員root才用權限查看
[root@localhost ~]# cat /etc/shadow root:$6$FE7Q336W$g/ry4M33OTbPef0/VHR/YwFg9zdA7QBeJGj.jKGw9tkWR3Wk1DMNBykFuNZef/xbSqRSacRD/MQp.Zr5KKK2D.:17008:0:99999:7::: bin:*:15980:0:99999:7:::
共有9個字段,每個字段之間用“:”分隔,每個字段的含義爲:
1,用戶名:2,加密後的密碼:3,最近一次修改密碼的日期:4,最短使用期限:5,最長使用期限:6,警告天數:7,過期期限:8,賬號失效日期:9,保留字段
用戶組的密碼信息存放於系統/etc/gshadow中,只有管理員root纔有權限查看,可使用cat /etc/gshadow命令查看
[root@localhost ~]# cat /etc/gshadow root:::gentoo ping:!::
共有4個字段,每個字段之間用“:”分隔,每個字段含義:
1,用戶組名: 2,密碼列,開頭爲!表示無合法密碼,所以無用戶組管理員: 3,組管理員列表,更改組密碼和成員: 4,以當前組爲附加組的用戶列表(分隔符爲逗號)
說明:
Passwd命令:修改用戶密碼 用戶密碼文件/etc/shadow
密碼使用策略:
1,應該使用隨機密碼
2,最短長度不低於8位
3,應該包括大寫字母、小寫字母、數字、標點符號四類中的三類
4,須定期更改
密碼的加密算法:
對稱加密、非對稱加密、單向加密
md5: message digest 128bits
sha: secure hash alorithm 160bints
sha: secure hash alorithm 224bints
sha: secure hash alorithm 256bints
sha: secure hash alorithm 384bints
sha: secure hash alorithm 512bints
passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root 用戶權限
passwd: 修改自己的密碼;
常用選項:
-l: 鎖定指定用戶
-u: 解鎖指定用戶
-d:清除用戶密碼
-e: 強制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays :最大使用期限
-w warndays :設置警告期限
-i inactivedays :設定非活動期限;
--stdin :從標準輸入接收用戶密碼;
echo " PASSWORD " | passwd --stdin USERNAME
示例:
1,修改用戶自己的密碼:
[root@localhost ~]# passwd Changing password for user root. New password: BAD PASSWORD: it is WAY too short BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
2,清除指定用戶密碼
[root@localhost ~]# passwd -d ping Removing password for user ping. passwd: Success
3,從標準輸入接受用戶密碼
[root@localhost ~]# echo "123456" | passwd --stdin ping Changing password for user ping. passwd: all authentication tokens updated successfully
Useradd命令:添加新用戶 (具體用法可參考man useradd)
[root@localhost~]# useradd [option] login
其中選項有:
-u, --uid UID 指定用戶的UID
-g, --gid GRIOUP 指定基本組ID,但此組須事先存在
-G,--groups GROUP1[,GROUP2,..] 指明用戶所屬的附加組,多個組之間用“,”分隔,添加附加組須事先存在
-c, --comment COMMENT 指明註釋信息
-d,--home HOME-DIR 以指定的路徑爲用戶的家目錄;通過複製/etc/skel此目錄並重命名實現,指定的家目錄路徑若事先存在,則不會爲用戶複製環境配置文件
-s,--shell SHELL 指定用戶的默shell,可用的所有shell列表存儲於/etc/shells文件中
-r,---system 創建系統用戶
注意:創建用戶時的諸多默認設定配置文件爲/etc/login.defs
-D, 顯示創建用戶的默認配置
-D+選項: 修改默認選項的值修改的結果保存於/etc/default/useradd文件中
示例:創建新用戶user50, uid爲555,註釋信息爲“hello user50", 家目錄爲/home/user50,
shell爲/bin/bash
[root@localhost ~]# useradd -u 555 -G gentoo -c "hello user50" -s /bin/bash user50 [root@localhost ~]# id user50;grep user50 /etc/passwd uid=555(user50) gid=555(user50) groups=555(user50),501(gentoo) user50:x:555:555:hello user50:/home/user50:/bin/bash
新建用戶的相關文件和命令:
/etc/default/useradd
/etc/skel/*
示例:批量創建完用戶後,需將/etc/skel/*下的文件複製到該用戶的家目錄下
[root@localhost ~]# cp -r /etc/skel/.[^.]* /testdir/a [root@localhost ~]# su - a [a@localhost ~]$ ls -a . .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
/etc/login.defs
newusers passwd 格式文件 批量創建用戶
示例:創建用戶a,b,c,d,e,f五個用戶
[root@localhost ~]# vim user.txt [root@localhost ~]# cat user.txt a:x:2000::hello a:/testdir/a:/bin/bash b:x:2000::hello b:/testdir/b:/bin/bash c:x:2000::hello c:/testdir/c:/bin/bash d:x:2000::hello d:/testdir/d:/bin/bash e:x:2000::hello e:/testdir/e:/bin/bash [root@localhost ~]# newusers user.txt [root@localhost ~]# tail -5 /etc/passwd a:x:2000:2000:hello a:/testdir/a:/bin/bash b:x:2000:3011:hello b:/testdir/b:/bin/bash c:x:2000:3012:hello c:/testdir/c:/bin/bash d:x:2000:3013:hello d:/testdir/d:/bin/bash e:x:2000:3014:hello e:/testdir/e:/bin/bash
chpasswd 批量修改用戶口令
示例:修改上面五個用戶的密碼
[root@localhost ~]# vim pass.txt [root@localhost ~]# cat pass.txt a:a123 b:b123 c:c123 d:d123 e:e123 [root@localhost ~]# cat pass.txt | chpasswd [root@localhost ~]# tail -5 /etc/shadow a:$6$zksrb/hGnN./ro.c$Tz8eyweWg6u0r.U8Tz5eC8M0SsUJIdhwdvyuLEwEzRxpxz9sC9ZTRyw5.2J.RVkjuUZIoVHJErSIiKqgSx31I.:14101:0:99999:7::: b:$6$ZrgX2L9cD$Sz4dNtMuwJRhBrRZYbIWlz3JQ2QvFRmUZVHtnh6yw0GOfnfXyF2PA32RSK7ERa/JmEYcxJHGQQM5XZs.MaPP./:14101:0:99999:7::: c:$6$A7zZB6kmIGQn3QG/$zeBLSC1Ph3jemx9JURRHL2nsCd8CivcVxJsNUWlkBHKqlC/k1ebXzmJQXZkPMmyCsTcrBM7vyKbH72ABiGTOl0:14101:0:99999:7::: d:$6$Q2kk4/9m$nmBglyeL2u8pxbe5.jS2kA1G9Hcoavu6lGHa6YYCWm7i14XFIBDDFL3//LDqzFsetzP2r.wZdU3t6KQZvqzMS.:14101:0:99999:7::: e:$6$cP1fr/KReDq/$yhTinFy6AaTLXjzdnxSPO1MX2P6uDsZCsr4fX1yLsb5YENjQgpcUCsjaMyEKFHHC5kwJb.aFrXSMwGH7dmjjM0:14101:0:99999:7:::
usermod 命令:修改用戶屬性
格式: usermode [OPTION] login
-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加組,原來的附加
組將會被覆蓋;若保留原有,則要同時使用-a 選項,表示append; ;
-s SHELL :新的默認SHELL; ;
-c 'COMMENT' :新的註釋信息;
-d HOME: 新家目錄不會自動創建,原家目錄中的文件不會同時移
動至新的家目錄;若要創建新家目錄並移動原家數據,同時使用-m 選項
-l login_name: 新的名字;
-L: lock 指定用戶, 在/etc/shadow 密碼欄的增加 !
-U: unlock 指定用戶,將 將 /etc/shadow 的 密碼欄的 ! 拿掉
-e YYYY-MM-DD: 指明用戶賬號過期日期;
-f INACTIVE: 設定非活動期限;
示例:修改用戶user50的uid爲450, 附加組爲ping, 註釋信息爲“good luck to you”, 家目錄爲/testdir/user50, shell爲/bin/csh
[root@localhost ~]# usermod -u 450 -G ping -c "good lock to you " -d /testdir/user50 -s /bin/csh user50 [root@localhost ~]# grep user50 /etc/passwd user50:x:450:555:good lock to you :/testdir/user50:/bin/csh
userdel命令:刪除用戶
userdel [OPTION]... login
-r: 刪除家目錄
id命令:顯示用戶的有效ID
id [option].. [user]
其中選項有:
-u: 僅顯示有效UID
-g: 僅顯示用戶的基本組ID
-G: 僅顯示用戶所屬的所有組的ID
-n: 僅顯示用戶名字而非ID
[root@localhost ~]# id user50 uid=450(user50) gid=555(user50) groups=555(user50),500(ping)
su命令:switch user 切換用戶
登錄式切換:通過讀取目標用戶的配置文件來重新初始化用戶環境
su - USERNAME
su -l USERNAME
[root@localhost ~]# su - ping [ping@localhost ~]$ pwd /home/ping [ping@localhost ~]$ echo $USER ping
非登錄式切換:不會讀取目標用戶的配置文件進行初始化用戶環境
su USERNAME
[root@localhost ~]# su ping [ping@localhost root]$ ls ls: cannot open directory .: Permission denied [ping@localhost root]$ pwd /root [ping@localhost root]$ whoami ping [ping@localhost root]$ echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [ping@localhost root]$ echo $USER ping
-c ‘COMMAND’ 僅以指定用戶身份運行此處指定的命令
[ping@localhost root]$ su - root -c 'cat /etc/shadow' Password: root:$6$6Sq0.SQE$k6whOyJPZsFPHiJHJY/0PqYJI9sWJ9CWouvCwwPcpkfeL5e1MN/6SAdu6l1uKU.n7Hw0N3QaGzeaiXITfffpB0:14101:0:99999:7::: bin:*:15980:0:99999:7::: [ping@localhost root]$
以某用戶的身份執行完操作後,需exit或者logout命令退出當前終端
groupadd命令:添加組
groupadd [option] GROUP_NAME
其中選項有:
-g, GID 指定GID,默認是上一個組的GID+1
-r 創建系統組
[root@localhost ~]# grep liming /etc/group liming:x:3011:
groupmod命令:修改組屬性
group [option] GROUP
-g GID 修改GID
-n NEW_NAME 修改組名
gpasswd命令:修改組密碼
格式: gpasswd [OPTION] GROUP
-a user: 將user 添加至指定組中;
-d user: 從指定組中移除用戶user
-A user1,user2,...: 設置有管理權限的用戶列表
newgrp 命令:臨時切換基本組;如果用戶本不屬於此組,則需要組密碼
groupdel命令:刪除組
groupdel [option] GROUP
-g, --group groupname 組更改爲指定組 ( 只有root)
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
示例:刪除liming這個組
[root@localhost ~]# groupdel liming
gpasswd命令:更改組密碼
格式: gpasswd [OPTION] GROUP
-a user: 將user 添加至指定組中;
-d user: 從指定組中移除用戶user
-A user1,user2,...: 設置有管理權限的用戶列表
newgrp 命令:臨時切換基本組;如果用戶本不屬於此組,則需要組密碼
groupmems命令:更改和查看組成員
格式:groupmems [options] [action]
options:
-g, --group groupname 組 更改爲指定組 ( 只有root)
Actions:
-a, --add username 指定用戶加入組
-d, --delete username 從組中刪除用戶
-p, --purge 從組中清除所有成員
-l, --list 顯示組成員列表
groups [OPTION].[USERNAME]... 查看用戶所屬組列表
結束語:
本篇內容是本人上課總結和整理的內容,若有錯誤或遺漏請各位路過的達人指出!