Linux -- 用戶與用戶組html
1.Linux 系統中有三種角色:全部者(用戶),用戶組與其餘人,一張圖能夠說明用戶與用戶組的關係。shell
如圖,某公司至關於一個用戶組,該用戶組下有A,B兩個用戶,用戶擁有各自的私密空間和公用空間,不是該用戶組下的就是其餘人,其餘人沒法訪問用戶組下的內容。bash
2.GID 與 UID 學習
UID 能夠理解爲 user ID,也就是 用戶ID,GID 能夠理解爲 group ID,也就是 用戶組ID,這兩個 ID 值很是重要,通常不建議更改,好比 Linux 中會根據 UID 和 GID 來判斷一個文件屬於哪一個用戶和用戶組,若是隨意改動 UID 和 GID,致使沒法找到用戶下的文件或者對文件沒有了權限,會很麻煩。ui
用戶ID 的範圍不一樣,在 Linux 中表明的特性也不一樣,在學習對用戶組操做前,先了解一下不一樣 UID 的範圍對應的不一樣特性。加密
查看用戶的 UID 和 GID id username ,如spa
[root@localhost ~]# id sherlock
uid=505(sherlock) gid=505(holmes) 組=505(holmes)code
也能夠查看 /etc/passwd 文件,其中第一個值表明帳號名稱,第三個值表明 UID,第四個值表明GID,如 sherlock 的 UID 爲505,GID 爲505htm
[root@localhost ~]# grep 'sherlock' /etc/passwd
sherlock:x:505:505::/home/sherlock:/bin/bash
3.用戶組和用戶經常使用的相關係統文件blog
/etc/passwd - 使用者帳號諮詢
/etc/shadow - 使用者帳號諮詢加密
/etc/group - 用戶組信息
Linux -- 用戶
1. useradd,具體的 useradd 用法能夠查看幫助手冊(man useradd)
-u 後面接UID,指定某個UID給該用戶 -r 建立一個系統帳號,UID小於500 -d 指定某個目錄成爲主文件夾,默認使用home下的login名稱對應的目錄爲用戶的主文件夾 -g 初始用戶組,默認的用戶組數字爲1 -G 後面接組名,表明將用戶加入某些組,組與組之間用 」,」 號隔開 -m 若是沒有用戶目錄則自動建立(通常帳號) -M 不建立用戶目錄(系統帳號) -c 設置帳號 /etc/passwd的說明 -e 帳號的失效日期,後面接」YYYY-MM-DD」 -f 密碼失效日期,0爲當即失效,-1爲永不失效,默認爲-1 -s 後面接shell,默認爲/bin/bash -n 取消將用戶加入設置的默認用戶組(組名與用戶名相同),若是取消,用戶會加入默認的100(users) 用戶組下
[root@localhost ~]# useradd sherlock [root@localhost ~]# id sherlock uid=505(sherlock) gid=506(sherlock) 組=506(sherlock)
#默認將 /home/sherlock 做爲用戶的主文件夾 [root@localhost ~]# ll -d /home/sherlock drwx------ 4 sherlock sherlock 4096 2月 1 15:02 /home/sherlock
# passwd/shadow/group 添加了這個用戶和默認設置的用戶組信息 [root@localhost ~]# grep sherlock /etc/passwd /etc/shadow /etc/group /etc/passwd:sherlock:x:505:506::/home/sherlock:/bin/bash /etc/shadow:sherlock:!!:17928:0:99999:7::: /etc/group:sherlock:x:506:
[root@localhost ~]# useradd -u 700 sherlock
[root@localhost ~]# useradd sherlock -g holmes [root@localhost ~]# id sherlock uid=505(sherlock) gid=505(holmes) 組=505(holmes)
[root@localhost ~]# useradd sherlock -G demo [root@localhost ~]# id sherlock uid=505(sherlock) gid=507(sherlock) 組=507(sherlock),506(demo)
[root@localhost ~]# useradd sherlock -g holmes -c "I am sherlock holmes" [root@localhost ~]# grep sherlock /etc/passwd sherlock:x:505:505:I am sherlock holmes:/home/sherlock:/bin/bash
[root@localhost ~]# useradd -c "tony" -s /sbin/nologin tony
[sherlock@localhost home]$ useradd -r sherlock
[root@localhost ~]# useradd -D GROUP=100 #默認用戶組,若是使用useradd -n username 就會默認加入這個用戶組 HOME=/home #默認主文件目錄 INACTIVE=-1 #密碼失效日,/etc/shadow 第7列 EXPIRE= #帳號失效日,/etc/shadow 第8列 SHELL=/bin/bash #默認的shell SKEL=/etc/skel #用戶主文件夾的內容數據參考目錄 CREATE_MAIL_SPOOL=yes #是否自動建立用戶的郵箱
2.passwd 密碼設置
用法:passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
-l 將 /etc/shadow 第二列最前面加上!,使得密碼失效 -u 與 -l 相反 -S 列出密碼的相關參數 -n 不可更改密碼的天數 -x 必需要更改密碼的天數 -w 密碼過時前的警告天數 -i 密碼失效的日期
[root@localhost ~]# passwd sherlock 更改用戶 sherlock 的密碼 。 新的 密碼: 從新輸入新的 密碼: passwd: 全部的身份驗證令牌已經成功更新。
[root@localhost ~]# passwd -S sherlock sherlock PS 2019-02-01 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。) #用戶名 PS 密碼建立日期 最小天數 更改天數 警告天數 密碼是否會失效(0-當即失效,-1-永不失效)
[root@localhost ~]# passwd -x 30 -i 60 sherlock 調整用戶密碼老化數據sherlock。 passwd: 操做成功 [root@localhost ~]# passwd -S sherlock sherlock PS 2019-02-01 0 30 7 60 (密碼已設置,使用 SHA512 加密。) #用戶名 PS 密碼建立日期 最小天數 在30天后須要更改密碼 警告天數 密碼60天后會失效
3.chage 修改密碼參數
用法:chage [options] [LOGIN]
-l 列出帳號的詳細密碼信息 -d 最後一次更改密碼的日期 -E 帳號失效日 -I 密碼失效日期 -m 密碼最短保留天數 -M 密碼須要修改天數 -W 密碼過時前的警告日期
[root@localhost ~]# chage -l sherlock Last password change : Feb 01, 2019 Password expires : Mar 03, 2019 Password inactive : May 02, 2019 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 30 Number of days of warning before password expires : 7
[root@localhost ~]# chage -d 0 sherlock [sherlock@localhost ~]$ chage -l sherlock Last password change : password must be changed Password expires : password must be changed Password inactive : password must be changed Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 30 Number of days of warning before password expires : 7
4.usermod 修改用戶帳號數據
用法:
usermod [-c comment] [-d home_dir [ -m]]
[-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]]
[-l login_name] [-s shell]
[-u uid [ -o]] login
-u 後面接UID,指定某個UID給該用戶 -r 建立一個系統帳號,UID小於500 -d 指定某個目錄成爲主文件夾,默認使用home下的login名稱對應的目錄爲用戶的主文件夾 -g 初始用戶組,默認的用戶組數字爲1 -G 後面接組名,表明將用戶加入某些組,組與組之間用 」,」 號隔開 -m 若是沒有用戶目錄則自動建立(通常帳號) -M 不建立用戶目錄(系統帳號) -c 設置帳號 /etc/passwd的說明 -e 帳號的失效日期,後面接」YYYY-MM-DD」 -f 密碼失效日期,0爲當即失效,-1爲永不失效,默認爲-1 -s 後面接shell,默認爲/bin/bash -n 取消將用戶加入設置的默認用戶組(組名與用戶名相同),若是取消,用戶會加入默認的100(users) 用戶組下
[root@localhost ~]# grep sherlock /etc/passwd sherlock:x:505:505:I am sherlock holmes:/home/sherlock:/bin/bash [root@localhost ~]# usermod -c "I am soooo cool" sherlock [root@localhost ~]# grep sherlock /etc/passwd sherlock:x:505:505:I am soooo cool:/home/sherlock:/bin/bash
[root@localhost ~]# usermod -d /home/demo sherlock [root@localhost ~]# cp -a /etc/skel/. /home/demo
若是觸發了 -bash-4.1$ 模式,將 /etc/skel/. 的內容拷貝到用戶新的主目錄下 主目錄下的環境變量有:
5.userdel 刪除用戶
此命令會刪除用戶的全部數據,加上 -r 參數表明連用戶的主文件夾一塊兒刪除
[sherlock@localhost ~]$ userdel -r sherlock
用戶組內容見 用戶與用戶組之用戶組篇