用戶管理

Linux是個多用戶多任務操作系統,所有要使用系統資源的用戶都必須向管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面能幫助管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問;另一方面也能幫助用戶組織文件,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名和用戶口令。用戶在登錄時輸入正確的用戶名和口令后,才能進入系統和自己的主目錄。

實現用戶的管理,要完成的工作主要有如下幾個方面:

1、用戶賬號的添加、刪除和修改。

2、用戶口令的管理。

3、用戶組的管理。

首先Linux用戶類別有:

管理員,UID:root,0

系統用戶,UID:1-499(CentOS 6),1-999(CentOS 7)

登陸用戶,UID:>500(CentOS 6),>1000(CentOS 7)

用戶組類別:

管理員組,GID:root,0

系統組,GID:1-499(CentOS 6),1-1000(CentOS 7)

普通組,GID:>500(CentOS 6),>1000(CentOS 7)

Linux組的類別:

用戶的主要組(主組):每個有且僅有一個主要組,當用戶創建時,自動創建一個與用戶同名的組作為主要組。

用戶的附加組(輔助組):一個用戶可以屬于零個或多個輔助組。

CentOS6和7的默認UID和GID不同,這個是由于/etc/login.defs文件里面的默認值所決定的


Linux用戶和組的主要配置文件

/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)

該文件里面一共有7項,包括

# [root@centos ~]# cat ?/etc/passwd

# root(用戶名):x(密碼):0(UID):0(GID):root(注釋):/root(家目錄):/bin/bash(默認SHELL)


假如把普通用戶的UID更改成0,該普通用戶會變成管理員賬號,因為在Linux系統里面,識別管理員是否為管理員,就是查看用戶的UID號碼,為0則為管理員,在生產環境中,可能會把管理員root的賬號改成其他名字,這樣做是以防止黑客攻擊root賬號來進行破解。


/etc/group:組及其屬性信息

getent group [groupname]

# [root@centos7 ~]# cat /etc/group

# root(主組):x(組密碼):0(GID):gentoo(附加組的用戶列表)

組成員:將該組作為輔助組的成員列表。當成員先把該組當作輔助組,再轉成主要組時,不改變。當成員離開該組時,被刪除。



/etc/shadow:用戶密碼及其相關屬性

# [root@centos 7~]# cat ?/etc/shadow

# root(用戶名):$6$(加密方式為sha512加密)5wrv8BV(隨機數,俗稱鹽)$n3wljU/4.OUa/X.RYOGbE3SX72vay1Qo1ZXiUNZhuQJIB7fdzE87gaCQiuiOZbin(用戶密碼):17110(從1970-1-1到最近一次修改的時間經過了多少天來表示):0(最小存活期,密碼再過幾天可以被更改):99999(最大存活期,密碼過期時間):7(在正確登錄時,密碼過期前提醒時間):(在正確登錄時,密碼過期后幾天賬號會被鎖定):(從1970年1月1日算起,多少天后帳號失效):(保留)


上面這個設置了密碼顯示的用戶。


現在我們再新建一個用戶看看

[root@centos6 ~]# useradd wang

[root@centos6 ~]# tail -1 /etc/shadow

wang:!!:17015:0:99999:7:::

我們會看見賬號密碼那里有兩個!!,這表示賬號被鎖定,沒有密碼的話不允許該用戶去登陸,假如有密碼,但是那里還是有一個嘆號的話,也表示賬號被鎖定,不對用戶進行解鎖的話該用戶將無法登陸。假如沒有嘆號的話,該用戶可以沒有密碼的情況下面直接登陸。不過該功能只能在CentOS 5版本和更老的版本可以實現,為了安全起見,從CentOS 6以后已經修正此問題。


/etc/gshadow:組密碼及其相關屬性

getent gshadow [groupname]

# cat /etc/gshadow

# root/(主組):(組密碼):(組管理員列表):gentoo(附加組的用戶列表)

當用戶不是該groupname的輔助組成員時,則需要輸入密碼,成功后臨時以主要組的身份加入該組。

當用戶是該groupname的輔助組成員時,無需輸入密碼,將臨時以主要組的身份加入該組,而其原有的主要組,臨時變為輔助組。

注意:為安全起見,現在一般都沒有組密碼,直接管理員指派,因為當其他用戶知道了組密碼,可以隨意加入該組,這樣的話就顯得不安全。


用戶和組管理命令

用戶管理命令: ? useradd ? usermod ?userdel?

組的管理命令: ? groupadd ? groupmod ? groupdel

用戶管理命令

useradd [options] username增加用戶

-u? UID username 創建用戶時指定UID,(如不指定則Centos:500-60000, Centos7: 1000-60000)

-o? 配合-u選項使用,不檢查UID的唯一性,可以與已存在的用戶的uid相同

-g? groupname username 創建用戶時,指定主組為某個已存在的組(將不會再創建與用戶同名的組)

-G? group1[,group2] username ?指定用戶的輔助組,但GID要事先存在

-N username 不創建私用組做主組,使用用戶的主要組做主組

-d? 目錄: 指定家目錄(確保指定的家目錄所在的上級目錄要存在,且家目錄本身不能存在)

-c? 備注 ?創建用戶時指定描述信息

-s? shell:指定默認shell,應該指定使用/etc/shells文件中出現的shell

-r? 創建系統用戶 特點:CentOS 6: ID<500,CentOS 7: ID<1000 默認shell為/sbin/nologin

-D? 顯示或更改默認設置? (默認值設定:/etc/default/useradd或/etc/login.defs文件中)(此命令相當于cat / etc/default/useradd)

注:創建用戶時的諸多默認設定配置文件為/etc/login.defs

useradd –D -s SHELL? ? ? -d是指定用戶的家目錄和登錄shell

注意:創建用戶不加-d和-s是是系統默認的家目錄(/home/qqq)和登錄shell(/bin/bash)。

useradd –D –b BASE_DIR

useradd –D –g GROUP

[root@centos6 ~]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

該命令,可以查看到創建用戶時候的各項默認值

例如更改其他用戶默認的家目錄和默認SHELL之類等等的參數就在這里面

/etc/skel? ? 家目錄文件的來源,在此文件夾里面新建文件的話,創建新用戶的時候會連指定的新文件一并創建

/etc/login.defs? 一些用戶和組等創建的默認設置的文件


usermod [options] username 修改指定用戶(跟useradd命令使用方法類似)

-u UID 更改用戶的UID

-g 組名 ?用戶名 更改用戶的主組

-G "" username? 或 usermod -G primarygroup username 清空用戶所有的輔助組

-aG ?組名,可以追加輔助組而不用覆蓋之前的組

-s SHELL 更改用戶的默認SHELL

-c 注釋

-d home,跟-m同時用移動家目錄數據,并將家目錄移動到目的目錄并改名 (不會創建,只修改/etc/passwd當中的家目錄信息)

-m 移動家目錄數據,跟-d同時用

-l 新的名字,把用戶改名

-e 指定過期日期yyyy-mm-dd

-f days ?指定密碼過期之后多少天帳戶過期

-L 鎖定指定用戶,在/etc/shadow 里面加!? ? (同以上/etc/shadow的解釋)

-U 解鎖用戶,將/etc/shadow 里面的!號拿掉? ? (同以上/etc/shadow的解釋)


userdel [options] LOGIN 刪除指定用戶

-r 連同家目錄和郵箱一起刪除


組的管理命令

groupadd [options] groupname 添加指定組

-g:指定用戶的GID

-r groupname: 創建系統組 ? ? CentOS 6: ID<500 ? CentOS 7: ID<1000


groupmod [options] GROUP 修改指定組

-g? newgid groupid: 修改組的GID

-n? newgrpname oldgrpname: 修改組的組名


groupdel [options] GROUP 刪除指定組


groupmems [options]? [action] 更改和查看組成員

groupmems -a user_name | -d user_name | [-g group_name] | -l | -p? (CentOS 7才有此命令)

options:

-g, --group groupname 更改為指定組 (只有root)(查看組里有哪些用戶)

-l -g 用戶名: 查看指定用戶名組下面還有哪些用戶屬于此組

-a? ? 要增加的組?


切換用戶或以其他用戶身份執行命令

切換用戶的方式:

su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄

su – UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換

root su至其他用戶無須密碼;非root用戶切換時需要密碼

換個身份執行命令:

su [-] UserName-c 'COMMAND'

選項:-l –login:

su -l UserName相當于su-UserName

查看用戶相關的ID信息

id [OPTION]… [USER]

-u: 查看用戶的UID

-g: 查看用戶的GID

-G: 查看用戶的Groups

-n: 查看用戶的Name


修改用戶密碼策略

chage -l username 顯示帳戶的密碼信息

-d 指定密碼的上次修改時間(yyyy-mm-dd)

-d 0 則強制用戶下次登錄時必須修改密碼

-E 指定賬戶的過期時間

-I 密碼過期之后多少天帳戶過期

-m 設置最小存活時間

-M 設置最大存活時間

-W 設置密碼過期前的提醒時間

chage username 交互式修改用戶的密碼策略


示例:

chage -d 0 tom 下一次登錄時強制重設密碼

chage -m 0 –M 42 –W 14 –I 7 tom

chage -E 2016-09-10 tom


getent? passwd,shadow,gourp,gshadow? USERNAME/GROUPNAME

直接查看指定用戶/組里面的passwd,shadow,gourp,gshadow文件里面的內容

其他命令總結:

chsh:修改默認的shell

chfn:修改用戶注釋

finger:查看個人信息

vipw:使用vim來編輯passwd文件

vigr:使用vim來編輯group文件

pwconv:pwconv命令用來開啟用戶的投影密碼

pwunconv:pwconv命令用來關閉用戶的投影密碼


Linux系統里的用戶和群組密碼,分別存放在名稱為passwd和group的文件中, 這兩個文件位于/etc目錄下。因系統運作所需,任何人都得以讀取它們,造成安全上的破綻。投影密碼將文件內的密碼改存在/etc目錄下的shadow和gshadow文件內,只允許系統管理者讀取,同時把原密碼置換為"x"字符,有效的強化了系統的安全性。


批量增加用戶和改密碼

newusers FILE(有格式的文件)? 批量加用戶? 文件格式? /etc/passwd 文件的格式 root:x:0:0::/root:/bin/bash

ex. newusers user.txt

chpasswd FILE (有格式的文件) 批量改密碼? USERNAME:PASSWORD

ex. cat p.txt |chpasswd

注意,按照以上步驟的方法批量添加完用戶和密碼以后,這些用戶的家目錄里面并沒有配置,此時需要我們手動把這里面的配置復制到它們的家目錄里面

/etc/skel 這個文件甲下面的文件是關于用戶初始配置里面的變量文件之類

cp -r /etc/skel/.[^.]* /home/USERNAME


練習:

創建下面的用戶、組和組成員關系

名字為admins 的組

用戶natasha,使用admins 作為附屬組

用戶harry,也使用admins 作為附屬組

用戶sarah,不可交互登錄系統,且不是admins 的成員,

natasha,harry,sarah密碼都是centos

groupadd admins

useradd -G admins natasha

useradd -G admins harry

useradd -s /sbin/nologin sarah

echo centos |passwd --stdin natasha > /dev/null

echo centos |passwd --stdin harry > /dev/null

echo centos |passwd --stdin sarah > /dev/null

/dev/null是一個特殊的設備,就是一個數據黑洞,吞噬送往該設備的所有數據,以后如果不想讓屏幕有顯示可以,會經常用到這個/dev/unll 的數據吞噬設備

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容