Linux用戶和用戶組管理
Linux是個多用戶多任務的分時操作系統,所有要使用系統資源的用戶必須向系統管理員申請一個賬號,然后以這個身份進入系統。用戶登陸系統是也是一種驗證方式,系統通過用戶的UID(Username IDentification)這種機制來識別用戶的身份和權限。每個用戶賬號都是唯一的用戶名和用戶口令。用戶在登陸時鍵入正確的用戶名和口令才能進入系統和自己的家目錄。Linux用戶分為管理員和普通用戶。普通用戶又分為系統用戶和登陸用戶。管理員的UID為0,系統用戶的UID為CentOS6:1-499 登陸用戶UID為500-60000. CentOS7系統用戶為1-999 登陸用戶為1000-60000。
Linux用戶和組的主要配置文件:
/etc/passwd:#用戶及其屬性信息(名稱、UID、主組ID等)
[root@localhost ~]# whatis passwd #查看passwd章節號 sslpasswd (1ssl) - compute password hashes passwd (1) - update user's authentication tokens passwd (5) - password file #5章節為配置章節 [root@localhost ~]# man 5 passwd ......
name:password:UID:GID:GECOS:directory:shell #用":"分為7個主要信息
#用戶名:密碼占位符:用戶ID:用戶主組ID:注釋信息:家目錄:默認shell
…..
/etc/group:組及其屬性信息
組的主要信息有同":"為4個主要信息
root:x:0: #組用戶:密碼占位符:GUI:用戶列表
/etc/shadow:用戶密碼及其相關屬性
[root@localhost ~]# whatis shadow #查看章節號 shadow (3) - encrypted password file routines shadow (5) - shadowed password file [root@localhost ~]# head -1 /etc/shadow
#用:分9個字段,每個字段的信息如下
root:$6$dGARWYghrvhD9W7P$4af2uw8A4tHvNLe2F6bDrk0J69dt.uYoV4SneKG4kzIsc/nF3JpfnuHg7D5lVE.jxC3p6.K29FCjwtom9VXWf.::0:99999:7:::
#用戶名:$#(算法)$salt(雜質)$密碼占位符:從1970年1月1日起到密碼最近一次被更改的時間:密碼再過幾天
可以被變更(0表示隨時可被變更):密碼再過幾天必須被變更(99999表示永不過期):密碼過期前
幾天系統提醒用戶(默認為一周):密碼過期幾天后帳號會被鎖定:從1970年1月1日算起,多少天后帳號失效:保留
/etc/gshadow:組密碼及其相關屬性
root::: 4個分組
組名:組密碼:組管理員:組的用戶列表
Linux用戶賬號的管理
用戶的管理用到用戶的添加、刪除和修改等操作。
useradd或adduser:添加用戶或更改默認新用戶信息
語法
useradd [options] LOGIN #創建用戶 useradd -D #查看創建用戶的默認屬性 useradd -D [options] #修改新建用戶默認屬性
常用參數
-u --uid UID #指定新用戶UID -o, --non-unique #不檢測現存UID,創建相同UID的新用戶 ou同用居多 -g, --gid GROUP:#指定基本組ID; -G, --groups,GROUP1[,GROUP2... [,GROUPN]]:#指明用戶所屬的附加組,多個組之間用逗號分隔 -c,--comment COMMENT: #添加注釋信息: -d, --home HOME_DIR:# 以指定的路徑為用戶的家目錄; -s,--shell SHELL: #指定用戶的默認shell,可用的所有shell列表為/etc/shells文件 -r, --system:#創建系統用戶 -M #不創建主目錄 -N, --no-user-group #不創建私有組,還有user組做主組 -p, --password #創建新用戶時,設置密碼 -f, --inactive INACTIVE # 禁用啟用賬戶 -1啟用 0禁用 例如: 創建用戶gentoo,UID為5000,附加組為bin和root,默認shell為/bin/csh,注釋信息為"Gentoo Distribution" [root@localhost ~]# useradd -u 5000 -G bin,root -s /bin/csh -c "Gentoo Distribtution" gentoo [root@localhost ~]# tail -1 /etc/passwd gentoo:x:5000:5000:Gentoo Distribtution:/home/gentoo:/bin/csh #gentoo的信息 [root@localhost ~]# useradd -D #顯示useradd默認用戶配置 GROUP=100 #當不創建主組是用的的主組是UID的user組 HOME=/home #默認家目錄 INACTIVE=-1 #不禁用賬戶 -f EXPIRE= #過期時間空為永不過期 SHELL=/bin/bash #默認shell SKEL=/etc/skel #配置文件路徑 CREATE_MAIL_SPOOL=yes #默認創建郵箱
usermod:更改用戶屬性
語法
usermod [options] LOGIN
常用選項
-u, --uid UID #修改用戶的ID為此處指定的新UID -g, --gid GROUP #修改用戶所屬的基本組 -G, --groups GROUP1[,GROUP2,...[,GROUPN]]] #修改用戶的附加組,原來的附加組會被覆蓋 a要放在G的前面 -a, --append:#與-G一同使用,為用戶添加新的附加組; -c, --comment COMMENT #修改注釋信息 -d, --home HOME_DIR #修改用戶的家目錄:用戶原有的文件不會被移動到新的位置 -m, --move-home #只能與-d選項一同使用,用于將原來的家目錄移動為新的家目錄,所有原有的文件予以保留。 -l, --login NEW_LOGIN #修改用戶名 -s, --shell SHELL #修改用戶的shell為指定shell -L, --lock #鎖定用戶密碼:即在用戶原來的密碼字符串之前添加一個“!” -U, --unlock #解鎖用戶的密碼
例如 修改用戶gentoo的UID為5001,更改用戶的基本組為tty,默認shell改為/bin/dash,家目錄為/var/Archilinux,更改用戶名為Archilinux,注釋信息為"Archilinux Distribution Now
[root@localhost ~]# usermod -u 5001 -g tty -s /bin/dash -d /var/Archilinux -l Archilinux -c "Archilinux Distribution Now" gentoo [root@localhost ~]# getent passwd Archilinux Archilinux:x:5001:5:Archilinux Distribution Now:/var/Archilinux:/bin/dash #改成Archilinux的原gentoo用戶信息
usermod:刪除用戶
語法
userdel [options] LOGIN
常用選項
-r: 刪除用戶家目錄
linux安全上下文:運行中的程序叫做進程,進程所能夠訪問資源的權限取決于進程運行者的身份,root用戶和普通用戶使用同一個命令,能夠做的操作權限是不相同的!
如果有很多用戶需要同樣的權限時,管理用戶和設定權限就很麻煩,所有就有了組的概念。每個系統都有組的概念,它能讓系統更好的管理用戶的權限和資源。組也可以說是用戶的容器。
組分為系統組和普通組,GID和UID相同概念。普通組分為私有組和附加組,每個用戶在創建時一般都會默認創建和自己同名的私有組,私有組只能有一個。一個用戶也可以零或多個的附加組。
groupadd :創建新組
語法
groupadd [options] group
常用選項
-g GID: #指明GID號 -r: #創建系統組 -p:#指定組密碼 -o:#不檢車現存GID,創建相同的GID 和og通用
例如
[root@localhost ~]# groupadd -g 10000 -r goodluck #創建GID為10000的系統組goodluck [root@localhost ~]# tail -1 /etc/group goodluck:x:10000: #顯示組
groupmod : 修改組屬性
語法
groupmod [options] GROUP
常用選項
-g, --gid GID #修改GID -n, --new-name NEW_GROUP #組重命名 -o, --non-unique #修改GID為不唯一
例如
[root@localhost ~]# groupmod -g 10001 -n goodlook goodluck #更改GID為10001 改名goodlook [root@localhost ~]# tail -1 /etc/group goodlook:x:10001: #顯示結果
groupdel 刪除組 沒有太多選項
passwd:修改指定用戶的密碼,僅root用戶權限
選項
-d:#刪除密碼,僅有系統管理者才能使用;
-f:#強制執行;
-k:#設置只有在密碼過期失效后,方能更新;
-l:#鎖住密碼;
-s:#列出密碼的相關信息,僅有系統管理者才能使用;
-u:#解開已上鎖的帳號。
-e:#強制用戶下次登錄修改密碼
-n mindays: #指定最短使用期限
–stdin:#從標準輸入接收用戶密碼;
[root@localhost ~]# echo "123456" |passwd --stdin root #使用管道更改密碼 Changing password for user root. passwd: all authentication tokens updated successfully.
chage 修改密碼有效期限
語法
chage[OPTION]… LOGIN
常用選項
-d, --lastday LAST_DAY #上一次密碼更改日期 -E, --expiredate EXPIRE_DATE #密碼的過期時間 -I, --inactive INACTIVE #賬號的非活動期限 -m, --mindays MIN_DAYS #密碼的最小有期限 -M, --maxdays MAX_DAYS #密碼的最大有期限 -W, --warndays WARN_DAYS #密碼的警告期限 -l, --list #列出用戶密碼等信息 -1
也可在/etc/login.defs修改創建用戶默認的值 PASS_MAX_DAYS99999 #最大有效日期 PASS_MIN_DAYS0 #最小有效日期 0表示用不過期 PASS_MIN_LEN5 #密碼的最小長度 PASS_WARN_AGE7 #密碼的警告日期
示例
[root@localhost /]# chage -l root #顯示root的密碼的信息 Last password change: Jul 26, 2016 Password expires: never Password inactive: never Account expires: never Minimum number of days between password change: 0 Maximum number of days between password change: 99999 Number of days of warning before password expires: 7
groupmems 管理用戶的主要成員
語法
groupmems -a user_name | -d user_name | [-g group_name] |
-l | -p
常用選項
-a, --add user_name #新增用戶到當前用戶的組 -d, --delete user_name#刪除用戶于當前的組 -g, --group group_name#更改組名 -l, --list #列出組成員 -p, --purge #清空組成員 [root@localhost ~]# groupmems -a linux #新加linux用戶到組 [root@localhost ~]# groupmems -a gentoo #新加gentoo用戶到組 [root@localhost ~]# groupmems -l #列出組成員 linux gentoo #成員 [root@localhost ~]# groupmems -p #清空組成員 [root@localhost ~]# groupmems -l #查看組成員顯示為空
groups 顯示用戶所屬組
語法
groups [OPTION]… [USERNAME]…
[root@localhost ~]# groupmems -a linux #新增用戶到組 [root@localhost ~]# groups root 顯示root用戶的組 root : root # 用戶:組 [root@localhost ~]# groups linux #顯示linux所屬的組 linux : linux root #它有兩個組,linux、root組
chgrp 用來改變文件或目錄所屬的用戶組
語法
chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
常用選項
-c, –changes #顯示更改過程
-R, –recursive #遞歸更改,當更改為父目錄是,子目錄及文件都更改
–reference=RFILE #參照其他文件或目錄
例如
[root@localhost testdir]# ll -d /testdir #顯示目錄屬性 drwxr-xr-x 2 root root 6 Aug 6 14:44 /testdir [root@localhost testdir]# chgrp -v Cloud /testdir #更改目錄組 changed group of ‘/testdir’ from root to Cloud #顯示更改過程 [root@localhost testdir]# ll -d #顯示更改組 drwxr-xr-x 2 root Cloud 6 Aug 6 14:43 .
原創文章,作者:ladsdm,如若轉載,請注明出處:http://www.www58058.com/29251