Centos7用戶組及文件權(quán)限管理實(shí)現(xiàn)方式
Centos7安裝完系統(tǒng)后如果沒(méi)有創(chuàng)建用戶,默認(rèn)只有root用戶,權(quán)限最大可以做任何事,但實(shí)際生產(chǎn)環(huán)境中我們一般不會(huì)使用這個(gè)用戶,因?yàn)闄?quán)限太大所有命令都能執(zhí)行,很危險(xiǎn),所以在生產(chǎn)環(huán)境中會(huì)創(chuàng)建一個(gè)或者多個(gè)用戶賬戶,分配合適的權(quán)限來(lái)使用操作.
- /etc/passwd //此文件保存著,用戶名、密碼、UID、GID、用戶描述、主目錄
- /etc/shadow //此文件記錄的行與passwd中的行一一對(duì)應(yīng),保存著:用戶名:密碼:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動(dòng)時(shí)間:失效時(shí)間:標(biāo)志
- /etc/group //次文件保存著,用戶名稱、用戶組密碼、GID、用戶列表
- /etc/profile //次文件保存著全局環(huán)境變量,由系統(tǒng)管理員管理
一.用戶管理
1.創(chuàng)建用戶
命令用法:useradd 或 adduser [option] 用戶名
- useradd 或 adduser –D 用來(lái)查看創(chuàng)建賬戶時(shí)的默認(rèn)值
- useradd 或 adduser –D [option] 用來(lái)指定或修改創(chuàng)建賬戶時(shí)的默認(rèn)值
一般可以修改默認(rèn)值的參數(shù)有:-b –e –f –g –s)
創(chuàng)建名為jerry的用戶,指定HOME目錄:/home/h_jerry,指定UID 1022,不創(chuàng)建同名用戶組,指定密碼:jerry,指定shell:/bin/sh,指定賬戶過(guò)期時(shí)間:2017-08-09,允許密碼過(guò)期后使用,添加用戶描述:first user
useradd -m -d /home/h_jerry -u 1022 -N -p jerry -s /bin/sh -e 2017-08-09 -f -1 -c "first user" jerry
驗(yàn)證用戶的uid
[root@master ~]#id jerry uid=1022(jerry) gid=100(users) groups=100(users)
/etc/passwd文件對(duì)應(yīng)的jerry行的信息
[root@master ~]#cat /etc/passwd |grep jerry jerry:x:1022:100:first user:/home/h_jerry:/bin/sh
- 此文件由7段冒號(hào)隔開(kāi)的字段
- 第一字段 jerry表是用戶名
- 第二字段 X表示加密碼后的密碼
- 第三字段 1022表示UID
- 第四字段 100表示組ID
- 第五字段 first user表示描述信息
- 第六字段 /home/h_jerry表示家目錄
- 第七字段 /bin/sh表示登錄的sehll
看一下/etc/shadow文件中的內(nèi)容jerry的信息
[root@master ~]#cat /etc/shadow |grep jerry jerry:jerry:17386:0:99999:7::17387:
/etc/shadow文件由9個(gè)字段組成,用:分隔
- 第一字段 jerry:表示用戶名
- 第二字段 jerry:表示密碼,這里看到是明文的,并沒(méi)有被加密碼,但是passwd jerry來(lái)修改密碼后就會(huì)是加密的。
- 第三字段 17386:表示上次修改密碼的時(shí)間,這個(gè)時(shí)間是從1970年1月1號(hào)到最近一次修改密碼的時(shí)間間隔天數(shù)
- 第四字段 0:表示2次修改密碼間隔的天數(shù),0表示禁用此功能
- 第五字段 99999:表示2次修改密碼間隔最多的天數(shù),也有默認(rèn)值,是通過(guò)/etc/login.defs中PASS_MAX_DAYS定義
- 第六字段 7:表示提前7天警告用戶密碼過(guò)期,也有默認(rèn)值,是通過(guò)/etc/login.defs中PASS_WARN_AGE定義
- 第七字段 在密碼過(guò)期之后多少天禁用此用戶,也就是過(guò)期多少天后系統(tǒng)禁用此用戶,不能登錄,不會(huì)提示過(guò)期,完全禁用,空:表示密碼過(guò)期后賬號(hào)仍然可用(-f –1)
- 第八字段 17387:用戶過(guò)期日期(從19700101開(kāi)始的天數(shù))和創(chuàng)建用戶指定過(guò)期日期正好相符(-e 2017-08-09)
- 第九字段 保留字段 留空
看一下jerry的家目錄home目錄
[root@master ~]#ll /home total 0 drwx------. 2 jerry users 62 Aug 8 21:37 h_jerry [root@master ~]# ll -a /home/h_jerry/ total 16 drwx------. 2 jerry users 83 Aug 9 18:45 . drwxr-xr-x. 4 root root 33 Aug 9 18:39 .. -rw-------. 1 jerry users 11 Aug 9 18:45 .bash_history -rw-r--r--. 1 jerry users 18 Aug 3 2016 .bash_logout -rw-r--r--. 1 jerry users 193 Aug 3 2016 .bash_profile -rw-r--r--. 1 jerry users 231 Aug 3 2016 .bashrc
到這里用戶創(chuàng)建已經(jīng)成功,簡(jiǎn)單梳理一下創(chuàng)建用戶時(shí)系統(tǒng)做了哪些事
- 如果創(chuàng)建用戶不帶參數(shù),系統(tǒng)會(huì)根據(jù)默認(rèn)值(/etc/default/useradd,/etc/login.defs)創(chuàng)建用戶及同名用戶組,并在HOME目錄里創(chuàng)建同名家目錄,默認(rèn)的登錄shell為/bin/bash。
- 如果創(chuàng)建用戶時(shí)帶了參數(shù),那么系統(tǒng)會(huì)根據(jù)參數(shù)來(lái)創(chuàng)建指定用戶信息。
- 用戶創(chuàng)建完成后,/etc/passwd,/etc/shadow這2個(gè)文件都會(huì)有相應(yīng)的用戶信息。
- 在用戶家目錄里都會(huì)產(chǎn)生.bash_history .bash_logou .bash_profile .bashrc4個(gè)隱藏文件。
2.用戶設(shè)置密碼
[root@master ~]#passwd jerry Changing password for user jerry. New password:
3.刪除用戶
userdel –r 用戶名 刪除用戶及家目錄
[root@master ~]#userdel -r tcl [root@master ~]#ll /home total 0 drwx------. 2 jerry users 83 Aug 9 18:45 h_jerry drwx------. 2 test test 83 Aug 9 18:45 test
4.修改用戶
選項(xiàng)參數(shù) 和useradd命令參數(shù)大致相同
- -d --home HOME_DIR 指定新的家目錄
- -a --append 將用戶追加到附加組中而不移出其它組
- -l --login NEW_LOGIN 指定新的用戶名
- -L --lock 鎖定用戶
- -m --move-home 和-d選項(xiàng)結(jié)合使用,移動(dòng)家目錄中的內(nèi)容到新的位置
舉例說(shuō)明:
將jerry用戶改名為natasha,移動(dòng)家目錄的內(nèi)容到/home/natasha,指定新的UID為1010,登錄shell改為/bin/bash,并鎖定用戶
[root@ha1 ~]# usermod -l natasha -d /home/natasha -m -u 1010 -s /bin/bash jerry [root@ha1 ~]# ll /home total 0 drwx------. 2 natasha users 83 Aug 9 18:45 natasha drwx------. 2 test test 83 Aug 9 18:45 test [root@ha1 ~]# id natasha uid=1010(natasha) gid=100(users) groups=100(users) [root@ha1 ~]# cat /etc/passwd |grep natasha natasha:x:1010:100:first user:/home/natasha:/bin/bash
二.用戶組管理
1.創(chuàng)建組
選項(xiàng):
- -f --force 強(qiáng)制創(chuàng)建組即使組已存在,如果GID已存在將取消-g選項(xiàng)
- -g --gid GID 指定組GID號(hào)
舉例說(shuō)明:
創(chuàng)建一個(gè)名為natasha的組,并將用戶natasha和test分別加入natasha和test組中
[root@ha1 ~]# groupadd -g 1010 natasha [root@ha1 ~]# usermod -a -G test test [root@ha1 ~]# cat /etc/group |grep -E "natasha|test" test:x:1023:test natasha:x:1010:test,natasha [root@ha1 ~]# usermod -a -G test natasha [root@ha1 ~]# cat /etc/group |grep -E "natasha|test" test:x:1023:test,natasha natasha:x:1010:test,natasha
2.刪除組
groupdel 組名
3.修改組
groupmod 選項(xiàng) 組名
選項(xiàng):
- -g --gid GID 改變組的ID號(hào)
- -n --new-name 改變組名
用法和usermod類似
總結(jié)一下,創(chuàng)建組后會(huì)在/etc/group,/etc/gshadow文件中產(chǎn)生相應(yīng)的組信息
/etc/group文件格式說(shuō)明:分為4個(gè)字段,用冒號(hào)隔開(kāi)
natasha:x:1010:test,natasha
- 第一字段:表示組名
- 第二字段:表示組密碼,存放在/etc/gshadow文件中
- 第三字段:表示組ID號(hào)
- 第四字段:表示組成員,多個(gè)組成員用逗號(hào)隔開(kāi)
/etc/gshadow文件格式說(shuō)明:分為4個(gè)字段,用冒號(hào)隔開(kāi)
natasha:!::test,natasha
- 第一字段:組名
- 第二字段:加密碼后的密碼
- 第三字段:組管理員(多個(gè)用,分隔)
- 第四字段:組成員(多個(gè)用,分隔)
三.文件,目錄權(quán)限管理
在linux中設(shè)置文件權(quán)限非常重要,也是最基本的。
linux文件的權(quán)限分為讀(r-4)寫(w-2)執(zhí)行(x-1),和windows一樣設(shè)置權(quán)限需要針對(duì)用戶,用戶所屬的組,還有其它用戶。
只有設(shè)置了正確的權(quán)限,相應(yīng)的用戶才能根據(jù)權(quán)限執(zhí)行相應(yīng)的操作,很多時(shí)候我們配置WEB服務(wù),F(xiàn)TP服務(wù)等都需要對(duì)相應(yīng)的文件或文件夾賦與相應(yīng)的權(quán)限才能正常跑起來(lái),有時(shí)遇到問(wèn)題通過(guò)查看錯(cuò)誤日志會(huì)發(fā)現(xiàn)很多情況下是由于權(quán)限不當(dāng)引起的。
文件權(quán)限分一般權(quán)限和特殊權(quán)限
- 一般權(quán)限主要指的是:文件所有者的權(quán)限,所屬組的權(quán)限,其它用戶權(quán)限
- 特殊權(quán)限主要指的是:權(quán)限中帶s或S(SUID,SGID),t或T標(biāo)志位
和文件權(quán)限有關(guān)的工具命令
- ls –l 查看文件或目錄的權(quán)限
- umask 查看或設(shè)置權(quán)限遮罩(即實(shí)際權(quán)限=最大權(quán)限-遮罩值)
- chmod 改變文件或目錄的權(quán)限
- chown 更改文件或目錄的所有者
- chgrp 更改文件或目錄的所屬組
- getfacl 獲取文件或目錄權(quán)限訪問(wèn)控制列表
- setfacl 設(shè)置文件或目錄權(quán)限訪問(wèn)控制列表
先來(lái)看一下文件權(quán)限的查看方式,使用ll命令就可以查看長(zhǎng)格式的文件權(quán)限等信息
[root@ha1 test]# ll -rw-r--r--. 1 root root 67 Mar 29 20:07 README.md drwxr-xr-x. 3 root root 36 Mar 29 20:15 shell [root@ha1 test]# ll /bin/passwd -rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd
權(quán)限有3段組成,rwxrwxrwx代表最高權(quán)限,修改權(quán)限時(shí)也可以用777表示,-表示沒(méi)有此項(xiàng)權(quán)限,本該出現(xiàn)x的位置出現(xiàn)s表示擁有SUID權(quán)限。
SUID對(duì)應(yīng)4,SGID對(duì)應(yīng)2,SBIT對(duì)應(yīng)1
SUID只對(duì)二進(jìn)制程序有效,執(zhí)行者對(duì)于程序需要有X權(quán)限,在程序運(yùn)行過(guò)程中,執(zhí)行者(普通用戶)將臨時(shí)擁有程序所有者的權(quán)限
SGID對(duì)于文件來(lái)說(shuō)只對(duì)二進(jìn)制程序有效,普通用戶將會(huì)臨時(shí)擁有所屬組的權(quán)限,對(duì)于目錄來(lái)說(shuō),用戶對(duì)此目錄有RX權(quán)限可以進(jìn)入目錄,用戶進(jìn)入目錄后,有效用戶組會(huì)變成該目錄的用戶組,若用戶在此目錄有w權(quán)限,則用戶創(chuàng)建的文件用戶組與該目錄用戶組相同。
修改文件權(quán)限 chmod
例:將 a 文件權(quán)限修改為:所有者有rwx,所屬組:rx,其它用戶:無(wú)權(quán)限
[root@ha1 test]# chmod u+x,g+x,o-r a [root@ha1 test]# ll total 8 -rwxr-x---. 1 root root 0 Aug 10 19:01 a
修改文件所有者或所有組 chown chgrp
例:將a文件所屬組改為natasha,將b目錄的所有者改為natasha
[root@ha1 test]# chgrp natasha a [root@ha1 test]# chown -R natasha:root b [root@ha1 test]# ll total 8 -rwxr-x---. 1 root natasha 0 Aug 10 19:01 a drwxr-xr-x. 2 natasha root 6 Aug 10 19:05
設(shè)置更詳細(xì)的權(quán)限 getfacl setfacl
例:查看a文件的詳細(xì)權(quán)限信息
[root@ha1 test]# getfacl a # file: a # owner: root # group: natasha user::rwx group::r-x other::---
例:將a文件權(quán)限設(shè)置為,test1用戶擁有rw權(quán)限,test2用戶擁有x權(quán)限,其它用戶擁有rx權(quán)限
[root@ha1 test]# setfacl -m u:test1:rw,u:test2:x,o::rx a [root@ha1 test]# getfacl a # file: a # owner: root # group: natasha user::rwx user:test1:rw- user:test2:--x group::r-x mask::rwx other::r-x
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux如何為已存在的用戶創(chuàng)建home目錄
這篇文章主要介紹了linux如何為已存在的用戶創(chuàng)建home目錄問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
解決Linux+Apache服務(wù)器URL區(qū)分大小寫問(wèn)題
Linux服務(wù)器的大小寫敏感有時(shí)候很不方便,在地址欄里一定要輸入準(zhǔn)確的URL才能訪問(wèn),對(duì)搜索引擎和用戶不是很友好,那么如何解決LINUX服務(wù)器URL的大小寫問(wèn)題2020-01-01
用shell命令刪除網(wǎng)站最新nb掛馬的方法與代碼
教你刪除網(wǎng)站最新NB掛馬最近發(fā)現(xiàn) 很多網(wǎng)站被掛了木馬,會(huì)在頁(yè)面中生成如下代碼。2010-02-02
PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法
這篇文章主要介紹了PHP腳本內(nèi)存泄露導(dǎo)致Apache頻繁宕機(jī)解決方法,本文的原因是因?yàn)镸axRequestsPerChild參數(shù)沒(méi)有配置正確,配置MaxRequestsPerChild后解決了本文中的問(wèn)題,需要的朋友可以參考下2014-09-09
用rsync對(duì)網(wǎng)站進(jìn)行鏡像備份實(shí)現(xiàn)步驟
對(duì)系統(tǒng)管理員來(lái)說(shuō),平時(shí)的工作重心應(yīng)該集中在維護(hù)系統(tǒng)正常運(yùn)轉(zhuǎn),能夠正常提供服務(wù)上,這里往往牽涉到一個(gè)數(shù)據(jù)備份的問(wèn)題2009-03-03

