1、/etc/passwd,用戶屬性 ---->cat /etc/passwd or getent passwd,查看/etc/passwd文件---->getent passwd 用戶名
1.1 /etc/passwd文件中每行的7個字段,意義如下: login name:登錄用名(wang) passwd:密碼 (x) UID:用戶身份編號 (1000) GID:登錄默認所在組編號 (1000) GECOS:用戶全名或注釋 home directory:用戶主目錄 (/home/wang) shell:用戶默認使用shell (/bin/bash)? ---->pwunconv,將x轉換成哈希(sha512)加密后的密碼
---->pwconv,哈希(sha512)后的密碼轉換成x
2、/etc/shadow,用戶密碼屬性 ---->cat /etc/shadow or getent shadow,查看/etc/shadoww文件
---->getent shadow 用戶名,查看此用戶這行密碼屬性
2.1 /etc/shadow文件中9個字段,意義如下: 登錄用名 用戶密碼:一般用sha512加密 從1970年1月1日起到密碼最近一次被更改的時間 密碼再過幾天可以被變更(0表示隨時可被變更) 密碼再過幾天必須被變更(99999表示永不過期) 密碼過期前幾天系統提醒用戶(默認為一周) 密碼過期幾天后帳號會被鎖定 從1970年1月1日算起,多少天后帳號失效
2.2第二個字段哈希密碼第一個$與第二個$之間表示意義:
$6:sha512加密算法;$1:md5算法 2.3 第二個字段哈希密碼第二個$與第三個$之間表示意義: salt:哈希加密算法加密之前,添加隨機字段,單向加密目前不可逆(MD5除外),雪崩效應,為加強密碼安全性 2.4 更改/etc/shadow文件中加密算法 ---->authconfig --passalgo=sha256 --update,原理是改變/etc/login.def文件中ENCRYPT METHOD SHA512
3、/etc/group,用戶組屬性 ---->cat /etc/group or getent group
其包含4個字段,意義: 群組名稱:就是群組名稱 群組密碼:通常不需要設定,密碼是被記錄在 /etc/gshadow GID:就是群組的ID 以當前組為附加組的用戶列表(分隔符為逗號)? 4、/etc/gshadow,用戶組密碼及管理屬性 ---->cat /etc/gshadow or getent gpasswd,查看此文件
其包含4個字段,意義: 群組名稱:就是群組名稱 群組密碼: 組管理員列表:組管理員的列表,更改組密碼和成員 以當前組為附加組的用戶列表:(分隔符為逗號) 5、vipw , vigr 打開/etc/passwd,/etc/group,相當于vim -o /etc/passwd /etc/group 6、pwck , grpck 檢查/etc/passwd,/etc/group文件中語法 7、useradd 7.1 useradd [options] LOGIN -u UID -o 配合-u 選項,不檢查UID的唯一性 -g GID:指明用戶所屬基本組,可為組名,也可以GID -c "COMMENT":用戶的注釋信息 -d HOME_DIR: 以指定的路徑(不存在)為家目錄 -s SHELL: 指明用戶的默認shell程序,可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...]:為用戶指明附加組,組須事先存在 -N 不創建私用組做主組,使用users組做主組 -r: 創建系統用戶 CentOS 6: ID<500,CentOS 7: ID<1000 -m 創建家目錄,如果主目錄不存在則自動創建 -M 不創建家目錄,用于非系統用戶 ---->groupadd -g 1080 parrot
---->useradd -u 1080 -c "Centos is king" -s /bash/shell -m -d /data/parrot parrot
---->useradd -o -u 1080 parrot_1,不檢查id唯一性
---->useradd -N gentoo,不創建私有組作為主組,而是users作為主組
![]()
7.2 useradd 添加用戶時默認配置文件/etc/default/useradd? ---->cat /etc/default/useradd or useradd -D
顯示或更改默認設置 useradd –D -s SHELL useradd –D –b BASE_DIR useradd –D –g GROUP ---->useradd -D -b /data,修改添加用戶時默認家目錄
![]()
7.3 /etc/skel,創建用戶家目錄時,其家目錄下環境變量等隱藏文件是以此目錄為模板復制
8、newusers 文件:后面跟文件是以passwd格式文件,批量創建用戶 ---->newusers 1.new,以1.new文件添加用戶
注:此方法創建用戶家目錄下無/etc/skel/環境變量配置文件 chpasswd 文件:文件格式為user:passwd,批量修改用戶口令 cat 1.new.passwd |chpasswd,批量設置用戶密碼
9、 usermod usermod [OPTION] login -u UID: 新UID -g GID: 新主組 -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項 -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: 設定非活動期限 ---->usermod -u 2018 -g 2019 -aG mysql -s /sbin/nologin test
![]()
---->usermod -f 5 test,修改用戶INACTIVE period ,默認為空
10、userdel userdel [OPTION]... login -r: 刪除用戶家目 ---->userdel -r 用戶 ,刪除用戶時同時刪除其家目錄,默認不刪除
注:/etc/login.defs下如果CREATE_HOME項不存在,或設置為no,則創建用戶時不會創建家目錄,-m選項則會自動創建
---->ueradd test1 && useradd -m test1
11、id id [OPTION]... [USER] -u: 顯示UID -g: 顯示GID -G: 顯示用戶所屬的組的ID -n: 顯示名稱,需配合ugG使用 ---->id -u yyc;id -ng 1001
12、su,切換用戶 su [options...] [-] [user [args...]] 12.1切換用戶的方式: su UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變 12.2當前工作目錄 su - UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換 12.3root su至其他用戶無須密碼;非root用戶切換時需要密碼 12.4換個身份執行命令: su [-] UserName -c 'COMMAND' 13、passwd 修改/設置用戶密碼 passwd [OPTIONS] UserName: 修改指定用戶的密碼 常用選項: -d:刪除指定用戶密碼 -l:鎖定指定用戶 -u:解鎖指定用戶 -e:強制用戶下次登錄修改密碼 -f: 強制操作 -n mindays: 指定最短使用期限 -x maxdays:最大使用期限 -w warndays:提前多少天開始警告 -i inactivedays:非活動期限 --stdin:從標準輸入接收用戶密碼 echo "PASSWORD" | passwd --stdin USERNAME ---->passwd -d 用戶,刪除用戶密碼
---->passwd -l 用戶名,鎖定用戶 ---->passwd -u 用戶名,解鎖用戶
其原理/etc/shadow文件中第二個字段前加! ---->passwd -e 用戶,強制下次登錄修改密碼
原理是將上一次修改密碼時間設置為0,下一次登錄則必須修改密碼 ---->passwd -n 1 -x 20 -w 3 -i 3 test2
14、chage,修改用戶密碼策略 chage [OPTION]... LOGIN -d LAST_DAY -E --expiredate EXPIRE_DATE -I --inactive INACTIVE -m --mindays MIN_DAYS -M --maxdays MAX_DAYS -W --warndays WARN_DAYS –l 顯示密碼策略 ---->chage -l test2;chage -d 0 -m 1 -M 100 -W 4 -I 4 -E 2021-11-11 test2
15、用戶信息查看修改命令 finger chfn chsh 15.1 finger,用戶及登錄郵件等信息 ---->finger root
15.2 chfn ,增加、修改用戶備注信息,即/etc/passwd中用戶第五個字段信息 ---->chfn root;finger root;getent passwd root
15.3 chsh ,修改用戶使用的shell
16、groupadd [OPTION]... group_name -g GID: 指明GID號;[GID_MIN, GID_MAX] -r: 創建系統組 CentOS 6: ID<500 CentOS 7: ID<1000? 17、groupmod ,組屬性修改 groupmod [OPTION]... group -n group_name: 新名字 -g GID: 新的GID groupdel,組刪除 groupdel GROUP? 18、gpasswd gpasswd [OPTION] GROUP -a user 將user添加至指定組中 -d user 從指定組中移除用戶user -A user1,user2,... 設置有管理權限的用戶列表 newgrp命令:臨時切換主組 如果用戶本不屬于此組,則需要組密碼 19、groupmems,更改和查看組成員 groupmems [options] [action] -g, --group groupname 更改為指定組 (只有root) -a, --add username 指定用戶加入組 -d, --delete username 從組中刪除用戶 -p, --purge 從組中清除所有成員 -l, --list 顯示組成員列表? ---->groupmems -l -g test1
---->groupmems -a test3 -g test1
19、chown 修改文件的屬主 chown [OPTION]... [OWNER][:[GROUP]] FILE... 用法: OWNER OWNER:GROUP :GROUP 命令中的冒號可用.替換 -R: 遞歸 chown [OPTION]... --reference=RFILE FILE... chgrp 修改文件的屬組 chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... -R 遞歸 20、文件目錄屬主屬組權限說明 文件的權限主要針對三類對象進行定義 owner: 屬主, u group: 屬組, g other: 其他, o 每個文件針對每類訪問者都定義了三種權限 r: Readable w: Writable x: eXcutable 文件: r: 可使用文件查看類工具獲取其內容 w: 可修改其內容 x: 可以把此文件提請內核啟動為一個進程 目錄: r: 可以使用ls查看此目錄中文件列表 w: 可在此目錄中創建文件,也可刪除此目錄中的文件 x: 可以使用ls -l查看此目錄中文件列表,可以cd進入此目錄 X:只給目錄x權限,不給文件x權限 21 chmod 修改權限 chmod [OPTION]... OCTAL-MODE FILE... -R: 遞歸修改權限 chmod [OPTION]... MODE[,MODE]... FILE... 修改一類用戶的所有權限: u= g= o= ug= a= u=,g= 修改一類用戶某位或某些位權限 u+ u- g+ g- o+ o- a+ a- + - chmod [OPTION]... --reference=RFILE FILE... 參考RFILE文件的權限,將FILE的修改為同RFILE ---->chmod -R a+x 目錄及所在文件都增加x權限,如果是X,則只會給目錄加x權限,如果目錄中有文件有x權限,則其也會增加x權限
22 三種特殊權限 suid 文件中屬主位表現為s,一般為二進制文件,表示用戶執行此文件時,會繼承其所有者權限 ---->chmod u+s file sgid 1)繼承二進制程序所有組的權限 2)作用于目錄,此目錄新建的文件繼承目錄的所屬組 ---->chmod g+s file | dir sticky 作用于目錄,此目錄的文件只能被所有者刪除 ---->chmod o+t dir SUID: user,占據屬主的執行權限位 s: 屬主擁有x權限 S:屬主沒有x權限 SGID: group,占據屬組的執行權限位 s: group擁有x權限 S:group沒有x權限 Sticky: other,占據other的執行權限位 t: other擁有x權限 T:other沒有x權限 23、chattr 設定文件特定屬性 +i:不能刪除,改名,寫內容; -i 去除鎖定 +a 只能追加內容 lsattr,查看鎖文件 ---->chattr +i file;lsattr
24、ACL,訪問控制列表 setfacl -m [u|o|g]:用戶名:rwx file|directory,不指用戶則為對所有用戶生效 getfacl file|directory,查看訪問控制列表 ---->setfacl -m:test1:r ls;getfacl ls
setfacl -m mask::權限:設置mask權限,一旦啟用了acl,組權限則變為mask權限,設定權限不超過mask權限 ----setfacl -m mask::r ls
----setfacl -b file|directory 刪除所有擴展acl權限
---->setfacl -x u:yyc file,刪除控制列表中指定控制權限
![]()
注意:如果啟用了ACL,group權限就變為mask權限,ACL文件上的group權限是mask值(自定義用戶,自定義組,擁有組的最大權限),而非傳統的組權限
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94883