<pre name="code" class="php">用戶與組管理
==================================================
一:賬號的管理
---------------------------------------------------------------------------------------------
(1)useradd:創建一個新的用戶或更新默認的新用戶信息
SYNOPSIS
useradd [options] LOGIN
useradd -D
useradd -D [options]
OPTIONS
-c, --comment COMMENT:是一個簡短的登錄描述,默認是用戶的全名。
~]# useradd -c 'login description' test
-d, --home-dir HOME_DIR:指定用戶家目錄:目標路徑不能事先存在,否則會有警告,不會得利skel相關的文件給用戶
~]# mkdir /home/test1
~]# ls /home
mdx test1
~]# useradd -d /home/test1 test1
useradd: warning: the home directory already exists. Not copying any file from skel directory into it.
useradd:警告:這個家目錄已經存在,不能複製任何文件到skel目錄裏
~]# useradd -d /home/test2 test2
-D, --defaults:創建用戶默認選項
-b, --base-dir BASE_DIR
-e, --expiredate EXPIRE_DATE
-f, --inactive INACTIVE
-g, --gid GROUP
-s, --shell SHELL
-e, --expiredate EXPIRE_DATE:用戶帳戶將被禁用的日期,日期格式爲:YYYY-MM-DD
~]# vi /etc/default/useradd
EXPIRE= (默認爲空)
~]# useradd -e 2016-03-09 user
~]# chage -l user
...
Account expires : Mar 09, 2016 (用戶過期時間)
...
-f, --inactive INACTIVE:密碼過期後的天數,直到該帳戶被永久禁用。0:在密碼過期時禁用該帳戶,1:禁用該功能。
~]# vi /etc/default/useradd (查看默認值)
INACTIVE=-1
-g, --gid GROUP:指定主組(組id或者組名)
~]# id test
uid=1001(test) gid=1001(test) groups=1001(test)
~]# useradd -g 1001 test1 或者 useradd -g test test1
~]# id test1
uid=1003(test1) gid=1001(test) groups=1001(test)
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用戶的附加組。每個組由一個逗號分隔,中間沒有空格。
~]# useradd -G test,test1,test2,test3 user
~]# id users
~]# uid=1004(user) gid=1005(user) groups=1005(user),1001(test),1002(test2),1003(test3),1004(test1)
-m, --create-home:強制創建家目錄
~]# vi /etc/login.defs
56 # If useradd should create home directories for users by default
57 # On RH systems, we do. This option is overridden with the -m flag on
58 # useradd command line.
59 #
60 CREATE_HOME yes (如果選項爲no的話需要指定 -m 強制創建家目錄,默認爲yes)
~]# useradd user (默認爲yes狀態)
~]# ls /home
mdx user
~]# vi /etc/login.defs
CREATE_HOME no (修改爲no)
~]# useradd test (默認爲不創建家目錄)
~]# ls /home
mdx user
~]# useradd -m test1 (強制創建家目錄)
~]# ls /home
mdx test1 user
-M, --no-create-home:不創建家目錄,甚至系統/etc/login.defs設置爲yes
~]# vi /etc/login.defs
CREATE_HOME yes (默認值爲yes)
~]# useradd -M user
~]# ls /home
mdx
-p, --password PASSWORD:指定用戶默認登錄密碼
~]# useradd -p 123456 user
-r, --system:創建一個系統賬戶
~]# useradd -r user
~]# ls /home
mdx
~]# id user
uid=992(user) gid=990(user) groups=990(user)
-s, --shell SHELL:用戶的登錄 shell 名,默認爲留空,讓系統根據 /etc/default/useradd 中的 SHELL 變量選擇默認的登錄shell。
-u, --uid UID:指定用戶uid
~]# useradd -u 2000 user
~]# id user
uid=2000(user) gid=2000(user) groups=2000(user)
注意:用戶id必須爲唯一的,除非使用了 -o 選項。此值必須非負,默認使用大於等於UID_MIN,且大於任何其他用戶 ID 最小值。
---------------------------------------------------------------------------------------------
(2)usermod:修改用戶帳戶
SYNOPSIS:
usermod [options] LOGIN
OPTIONS:
-c, --comment COMMENT:用戶密碼文件註釋字段的新值。它通常使用 chfn 修改
-d, --home HOME_DIR:修改家目錄爲新的位置,但一般應該同時使用-m選項以保證原家目錄中的文件會移動到新目錄中;
~]# ls /home
mdx user
~]# usermod -md /home/user1 user
~]# ls /home
mdx user1
-g, --gid GROUP:用戶新主租
a選項,表示爲用戶添加新的附加組;
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user)
~]# id test
uid=1002(test) gid=1002(test) groups=1002(test)
~]# usermod -g user test (覆蓋)
~]# id test
uid=1002(test) gid=1003(user) groups=1003(user)
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改時會覆蓋原有的附加組,同名的附加組不變,一同使用 -a 表示追加
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user)
~]# usermod -G test1,test2,test3 user
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user),1004(test2),5003(test1),5004(test3)
~]# usermod -G test user (覆蓋原來的組)
~ ]# id user
uid=1003(user) gid=1003(user) groups=1003(user),5002(test)
~]# usermod -aG test1,test2,test3 user (一同使用-a 追加到原來的組)
~]# id user
uid=1003(user) gid=1003(user) groups=1003(user),5002(test),1004(test2),5003(test1),5004(test3)
-l, --login NEW_LOGIN:修改用戶名。家目錄,郵箱等不會改變
~]# usermod -l aaa user (usermod -l 新用戶名 原用戶名)
~]# id aaa
uid=1003(aaa) gid=1003(user) groups=1003(user)
-s, --shell SHELL:修改用戶登錄shell
~]# usermod -s abc aaa
-u, --uid UID:修改用戶uid
~]# id test1
uid=5003(test1) gid=5003(test1) groups=5003(test1)
~]# usermod -u 4000 test1
~]# id test1
uid=4000(test1) gid=5003(test1) groups=5003(test1)
-L, --lock:鎖定用戶的密碼。這會在用戶加密的密碼之前放置一個“!”
~]# usermod -L test1
~]# vi /etc/shadow
test1:!!:16870:0:99999:7:::
-U, --unlock:解鎖用戶的密碼。這將移除加密的密碼之前的“!”
~]# usermod -U test1
~]# vi /etc/shadow
test1:!:16870:0:99999:7:::
---------------------------------------------------------------------------------------------
(3)userdel:刪除用戶帳戶和相關文件
SYNOPSIS:
userdel [options] LOGIN
OPTIONS:
-r, --remove:家目錄和用戶郵箱一起刪除
~]# userdel -r test
---------------------------------------------------------------------------------------------
(4)passwd:密碼管理命令(輸入的時候,屏幕上不會有任何提示 如:**)
SYNOPSIS:
root用戶:(無需輸入原密碼,密碼可以簡單化)
root]# passwd test2
New password: (新密碼)
Retype new password: (再次輸入新密碼)
passwd: all authentication tokens updated successfully.
當前用戶:(輸入原密碼,新密碼必須符合規範)
mdx]$ passwd
(current) UNIX password: (原密碼)
New password: (新密碼)
Retype new password: (再次輸入新密碼)
密碼規範:
(1) 不能少於8個字符。
(2) 不能使用與過去的密碼太相似的密碼。
(3) 應該使用四類字符中的至少三類。
DESCRIPTION:
-l:鎖定密碼
-u:解鎖解密
-d:清除密碼
--stdin:從標準輸入接收密碼。
echo "PASSWORD" | passwd --stdin USERNAME
---------------------------------------------------------------------------------------------
(5)id:打印真實有效的用戶和組
SYNOPSIS:
id [OPTION]... [USER]
DESCRIPTION:
mdx]# id test
uid=1001(test) gid=1001(test) groups=1001(test),1000(mdx)
-g, --group:打印有效的用戶主組id
mdx]# id -g test
1001
-G, --groups:打印所有的附加組
mdx]# id -G test
1001 1000
-u, --user:打印有效的用戶id
mdx]# id -u test
1001
---------------------------------------------------------------------------------------------
(6)su:用戶切換
SYNOPSIS:
su [options...] [-] [user [args...]]
OPTIONS:
切換用戶:
(1) 不讀取目標用戶的配置文件(非登錄式切換,半切換);
su USERNAME
(2) 讀取目標用戶的配置文件(登錄式切換,完全切換);
su -l USERNAME
su - USERNAME
-c command, --command=command:僅以指定的用戶的身份運行此處指定的命令,而不執行真正的身份切換操作;
---------------------------------------------------------------------------------------------
(7)chfn:改變用戶信息
SYNOPSIS:
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [user‐
name]
OPTIONS
-f, --full-name full-name:指定真實用戶名
-o, --office office:指定辦公室地址
-p, --office-phone office-phone:設定辦公室電話
-h, --home-phone home-phone:設置家裏手機號碼
---------------------------------------------------------------------------------------------
(8)chsh: 改變登錄shell
SYNOPSIS
chsh [-s shell] [-l] [-u] [-v] [username]
OPTIONS
-s, --shell shell:設定登錄shell
-l, --list-shells:打印shell列表並退出
---------------------------------------------------------------------------------------------
二:用戶組的管理
---------------------------------------------------------------------------------------------
詳解:/etc/group
格式:test:x:1007:
組名:密碼點位符:GID:以此組爲附加組的用戶列表,以逗號分隔
---------------------------------------------------------------------------------------------
(1)groupadd:添加組
SYNOPSIS:
groupadd [options] group
OPTIONS:
-g GID:指明GID。
mdx]# groupadd -g 2000 test1
mdx]# tail -1 /etc/group
test1:x:2000:
-r, --system:系統組。
mdx]# groupadd -r test2
mdx]# !tail -1 /etc/group
test2:x:990:
---------------------------------------------------------------------------------------------
(2)groupmod:修改組
SYNOPSIS:
groupmod [options] GROUP
OPTIONS:
-g GID:改變組id
mdx]# cat /etc/group | grep ^test2
test2:x:990:
mdx]# groupmod -g 3000 test2
mdx]# cat /etc/group | grep ^test2
test2:x:3000:
-n, --new-name NEW_GROUP:修改組名。
mdx]# cat /etc/group | grep ^test2
test2:x:3000:
mdx]# groupmod -n test3 test2
mdx]# cat /etc/group | grep ^test2 (test2組不存在)
mdx]# cat /etc/group | grep ^test3
test3:x:3000:
---------------------------------------------------------------------------------------------
(3)groupdel:刪除組
SYNOPSIS:
groupdel [options] GROUP
OPTIONS:
mdx]# cat /etc/group | grep ^test3
test3:x:3000:
mdx]# groupdel test3
mdx]# cat /etc/group | grep ^test3
mdx]#
---------------------------------------------------------------------------------------------
(4)gpasswd:管理組 /etc/group 和 /etc/gshadow
SYNOPSIS:
gpasswd [option] group
OPTIONS:
修改組密碼:
mdx]# gpasswd test
Changing the password for group test
New Password:
Re-enter new password:
mdx]# grep ^test /etc/gshadow
test:$6$4ixwfMX2abZ6Ug7$0HKG5LLycTh.nBhNYjth1r1kERPS6PZIfyyy6A15b/TNehEjKl3ua.TDOHBQwk.YIzyVb6.9mVrOPXh0GoO/J1::
-a, --add user:添加用戶到組
mdx]# gpasswd -a mdx test
Adding user mdx to group test
mdx]# grep ^test /etc/group
test:x:1001:mdx
-d, --delete user:從組刪除用戶
mdx]# gpasswd -d user test
Removing user user from group test
mdx]# grep ^test /etc/group
test:x:1001:
-r, --remove-password:刪除密碼,密碼爲空。
~]# gpasswd -r test
~]# grep ^test /etc/gshadow
test:::
-R, --restrict:限制用戶登入組,只有組中的成員纔可以用newgrp加入該組
~]# gpasswd -R test
-A, --administrators user,...:指定管理員
~]# gpasswd -A mdx test
~]# grep ^test /etc/gshadow
test:!:mdx:mdx,user
-M, --members user,...:指定組成員(覆蓋原來)
~]# grep ^test /etc/group
test:x:1001:user,mdx,test1,test2
test1:x:1003:
test2:x:1004:
~]# gpasswd -M mdx test
~]# grep ^test /etc/group
test:x:1001:mdx
test1:x:1003:
test2:x:1004:
---------------------------------------------------------------------------------------------
(5)newgrp:登錄到一個新的組
SYNOPSIS:
newgrp [-] [group]
OPTIONS:
~]$ newgrp test
Password:
---------------------------------------------------------------------------------------------
(6)chage:改變用戶密碼終止日期
參數意思:
-m, --mindays MIN_DAYS :密碼可更改的最小天數。爲零時代表任何時候都可以更改密碼。
-M, --maxdays MAX_DAYS :密碼保持有效的最大天數。
-W, --warndays WARN_DAYS :用戶密碼到期前,提前收到警告信息的天數。
-E, --expiredate EXPIRE_DATE: 帳號到期的日期。過了這天,此帳號將不可用。(YYYY-MM-DD)
-d 上一次更改的日期。(YYYY-MM-DD)
-I, --inactive INACTIVE: 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l 例出當前的設置。
root]$ chage -l mdx
-d:最近一次密碼修改時間 : Mar 01, 2016
密碼過期時間 : never
密碼失效時間 : never
-E:帳戶過期時間 : never
-m:兩次改變密碼之間相距的最小天數 : 0
-M:兩次改變密碼之間相距的最大天數 : 99999
-W:在密碼過期之前警告的天數 :7
用戶與組管理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.