Linux的用戶(hù)組與權(quán)限用法及說(shuō)明
前言 :
在Linux操作系統(tǒng)中任何文件都屬于某一特定的用戶(hù),而任何用戶(hù)都隸屬于至少一個(gè)用戶(hù)組。
用戶(hù)是否有權(quán)限對(duì)某文件進(jìn)行訪問(wèn)、讀寫(xiě)及執(zhí)行,受到系統(tǒng)嚴(yán)格約束。
這種清晰、嚴(yán)謹(jǐn)?shù)挠脩?hù)與用戶(hù)組管理系統(tǒng)在很大程度上保證了Linux系統(tǒng)的安全性。
一.賬戶(hù)管理1.0 創(chuàng)建用戶(hù)useradd作用:useradd 可用來(lái)建立用戶(hù)帳號(hào)。帳號(hào)建好之后,再用 passwd 設(shè)定帳號(hào)的密碼。而可用 userdel 刪除帳號(hào)。使用 useradd 指令所建立的帳號(hào),實(shí)際上是保存在 /etc/passwd 文本文件中
格式:useradd【選項(xiàng)】用戶(hù)名
常用選項(xiàng)說(shuō)明
選項(xiàng)說(shuō)明-c加上備注文字。備注文字會(huì)保存在passwd的備注欄位中-d指定用戶(hù)登入時(shí)的起始目錄-D變更預(yù)設(shè)值-e指定帳號(hào)的有效期限-f指定在密碼過(guò)期后多少天即關(guān)閉該帳號(hào)-g指定用戶(hù)所屬的群組-G指定用戶(hù)所屬的附加群組-m自動(dòng)建立用戶(hù)的登入目錄-M不要自動(dòng)建立用戶(hù)的登入目錄-n取消建立以用戶(hù)名稱(chēng)為名的群組-r建立系統(tǒng)帳號(hào)-s指定用戶(hù)登入后所使用的shell-u指定用戶(hù)ID1.1 示例
1.1.1添加一般用戶(hù)
useradd zhuang1.1.2.為新添加的用戶(hù)添加組
useradd -g root wei1.1.3.創(chuàng)建一個(gè)系統(tǒng)用戶(hù)
useradd -r liang11.1.4.為新添加的用戶(hù)指定home目錄下
useradd -d /home/myd liang21.1.5.建立用戶(hù)且定制ID
useradd liang3 -u 10081.1.6.添加一個(gè)不能登錄的賬號(hào)
注: useradd命令參數(shù)必須是在創(chuàng)建賬戶(hù)時(shí)同時(shí)輸入才有用,創(chuàng)建賬戶(hù)后無(wú)法使用useradd更改參數(shù)
2.0 用戶(hù)賬號(hào)存儲(chǔ)文件作用: 保存用戶(hù)名稱(chēng),宿主目錄,登錄Shell等基本信息文件位置:/etc/passwd
2.1每一行對(duì)應(yīng)一個(gè)用戶(hù)的賬號(hào)記錄
2.2 各個(gè)字段含義如下圖,他們各自用“:”號(hào)隔開(kāi)
補(bǔ)充:
注意!!!,雖然"x"并不表示真正的密碼,但也不能刪除,如果刪除了"x",那么系統(tǒng)會(huì)認(rèn)為這個(gè)用戶(hù)沒(méi)有密碼,從而導(dǎo)致只輸入用戶(hù)名而不用輸入密碼就可以登陸(只能在使用無(wú)密碼登錄,遠(yuǎn)程是不可以)。
0:用戶(hù)賬號(hào)的UID號(hào)。0:所屬基本組賬號(hào)的GID號(hào)root:描述性信息,此字段只是用來(lái)解釋這個(gè)用戶(hù)的意義而已/root:宿主目錄,即該用戶(hù)登錄后所在的默認(rèn)工作目錄注:通常稱(chēng)為用戶(hù)的主(家)目錄。例如:root主目錄為/root,普通用戶(hù)odysee的主目錄為/home/ody see/bin/bash錄shell等信息,用戶(hù)完成登錄后使用的3.0 用戶(hù)賬號(hào)文件/etc/shadow作用:保存用戶(hù)的密碼,賬號(hào)有效期等信息
文件位置: /etc/shadow
3.1 每一行對(duì)應(yīng)一個(gè)用戶(hù)的密碼記錄
如圖所示:
/etc/shadow 文件只有root用戶(hù)擁有讀權(quán)限,其他用戶(hù)沒(méi)有任何權(quán)限,這樣就保證了用戶(hù)密碼的安全性
和/etc/nasswd文件一樣,文件中每行代表一個(gè)用戶(hù),同樣使用":"作為分隔符,不同之處在于,每行用戶(hù)信息被劃分為9個(gè)字段
第一列:賬戶(hù)名第二列:存放真正加密的密碼,采用SHA512散列算法,更加安全加密原來(lái)用MD5或DES“!!”和“*”表示沒(méi)有密碼不能登陸,新創(chuàng)建用戶(hù)也是“!!”,如果密碼前面顯示雙感嘆號(hào)表示該賬戶(hù)被銷(xiāo)定了第三列:上一次修改密碼的時(shí)間,從1970年1月1日開(kāi)始算的,因?yàn)?970年是Linux的誕生日,date -d"1970-01-01 18983 days"可以查看哪一天改過(guò)第四列:多久之后才可以修改密碼,如果是0,則密碼可以隨時(shí)修改最小修改間隔時(shí)間,也就是說(shuō)該字段規(guī)定了從第三個(gè)字段(最后一次修改密碼的日期)起,多長(zhǎng)時(shí)間之內(nèi)不能修改密碼,如果是0剛隨時(shí)修改密碼,如果是20則代表密碼修改后20天之內(nèi)不能再次修改密碼,此字段是為了針對(duì)某些人頻繁更改賬號(hào)密碼而設(shè)計(jì)的第五列:密碼有效期,默認(rèn)99999(273年),表示永久生效第六列:密碼到期前的第幾天發(fā)出告警信息,默認(rèn)是7天,每次登錄系統(tǒng)都會(huì)向該賬戶(hù)發(fā)出"修改密碼"的警告信息第七列:密碼過(guò)期的寬限天數(shù),過(guò)期后的幾天還是可以登陸的,如果過(guò)了寬限天數(shù),系統(tǒng)將不再讓此賬戶(hù)登陸,也不會(huì)提示賬戶(hù)過(guò)期,是完全禁用比如說(shuō),此字段規(guī)定的寬限天數(shù)是10,則代表密碼過(guò)期10天后失效;如果是0則代表密碼過(guò)期后立即失效;如果是-1則代表密碼永遠(yuǎn)不會(huì)失效第八列:賬號(hào)失效時(shí)間,使用自1970年1月1日以來(lái)的總天數(shù)作為賬戶(hù)的失效時(shí)間第九列:保留,未使用4.0 chage命令作用:修改賬號(hào)密碼的有效期,針對(duì)目前系統(tǒng)已經(jīng)存在的用戶(hù)
格式:chage 【選項(xiàng)】用戶(hù)名
常用選項(xiàng)
選項(xiàng)說(shuō)明-m密碼可更改的最小天數(shù),為零代表任何時(shí)候都可以更改密碼-M密碼保持有效的最大天數(shù)。chage -M 20 root-W用戶(hù)密碼到期前,收到警告信息的天數(shù)-E賬戶(hù)到期的日期,過(guò)了這天,此賬號(hào)將不可用-d上一次更改的日期-i停滯日期,如果一個(gè)密碼已過(guò)期這些天,那么此賬號(hào)將不可用-l列出當(dāng)前的設(shè)置,由非特權(quán)用戶(hù)來(lái)確定他們的密碼或賬號(hào)何時(shí)過(guò)期4.1 示例:
設(shè)置用戶(hù)liang2將在2022.06.25號(hào)失效(不可登錄)
設(shè)置賬戶(hù)liang2最后一次修改密碼時(shí)間為2022.03.30
4.2 小結(jié):
第三個(gè)字段為:密碼最后一次修改的時(shí)間 (chage -d)第四個(gè)字段為:密碼最小修改間隔時(shí)間 (chage -m)第五個(gè)字段為:密碼的有效期 (chage -M)第六個(gè)字段為:密碼需要變更前的警告天數(shù) (chage -W)第七個(gè)字段為:密碼過(guò)期后的寬限天數(shù) (chage -I)第八個(gè)字段為:賬號(hào)失效時(shí)間 (chage -E)5.0賬號(hào)的初始設(shè)置5.1文件來(lái)源
新建用戶(hù)帳號(hào)時(shí),從 /etc/skel 目錄中復(fù)制而來(lái),比如默認(rèn)bin/bash,默認(rèn)家目錄
主要的用戶(hù)初始配置文件 (對(duì)用戶(hù)有效)
.bash_profile : 這個(gè)文件是為系統(tǒng)全局變量配置文件,可以通過(guò)重啟系統(tǒng)或者執(zhí)行source /etc/profile 命令使profile文件被讀取.bashrc: 這個(gè)文件實(shí)際上是/etc/profile的子目錄,存放的是一些應(yīng)用程序所需的啟動(dòng)腳本.bash_logout: 每一個(gè)允許bash shell 的用戶(hù)都會(huì)執(zhí)行此文件,可通過(guò)執(zhí)行bash命令打開(kāi)一個(gè)新的bash shell時(shí),使bashrc文件被讀取PS:
1.修改/etc/profile文件中相關(guān)配置,切換bash或者用戶(hù)后都需要source /etc/profile才生效;
2.修改/etc/bashrc文件中相關(guān)配置,切換bash或者用戶(hù)后直接生效;
6.0 設(shè)置更改用戶(hù)命令passwd作用:Linux passwd命令用來(lái)更改使用者的密碼
格式 :passwd 【選項(xiàng)】用戶(hù)名
常用選項(xiàng)及說(shuō)明
選項(xiàng)說(shuō)明-d清空指定用戶(hù)的密碼,僅使用用戶(hù)名即可登錄系統(tǒng)-l鎖定用戶(hù)賬戶(hù)-S查看用戶(hù)賬戶(hù)的狀態(tài)(是否被鎖定)-u解鎖用戶(hù)賬戶(hù)-i口令過(guò)期后多少天停用賬戶(hù)-g修改群組密碼-x指定口令最長(zhǎng)存活期-k更新只能發(fā)送在過(guò)期之后-w口令要到期提前警告的天數(shù)-f強(qiáng)迫用戶(hù)下次登錄時(shí)必須修改口令6.1 示例:
創(chuàng)建賬戶(hù)liang2,并且設(shè)置密碼
6.2 擴(kuò)展:
在實(shí)際生產(chǎn)中為了方便系統(tǒng)管理,passwd命令提供了“–stdin”選項(xiàng),用于批量給用戶(hù)設(shè)置密碼
作用:Linux usermod命令用于修改用戶(hù)帳號(hào)。
usermod可用來(lái)修改用戶(hù)帳號(hào)的各項(xiàng)設(shè)定
格式:usermod【選項(xiàng)】用戶(hù)名
常用選項(xiàng)及說(shuō)明
選項(xiàng)參數(shù)-c修改用戶(hù)帳號(hào)的備注文字。-d修改用戶(hù)登入時(shí)的目錄-e修改帳號(hào)的有效期限-f修改在密碼過(guò)期后多少天即關(guān)閉該帳號(hào)-g修改用戶(hù)所屬的群組-G修改用戶(hù)所屬的附加群組-l修改用戶(hù)帳號(hào)名稱(chēng)-L鎖定用戶(hù)密碼,使密碼無(wú)效-s修改用戶(hù)登入后所使用的shell-u修改用戶(hù)ID-U解除密碼鎖定7.1 示例:
鎖定liang2賬戶(hù)密碼,使密碼失效
初始無(wú)“!”,鎖定后出現(xiàn)“!”密碼不可用,解鎖后“!”消失密碼可用
注: usermod 更改用戶(hù)參數(shù)只能在用戶(hù)設(shè)定好之后使用
8.0 刪除用戶(hù)指令/suerdel作用: 刪除無(wú)用用戶(hù)信息
格式: userdel [-r] 用戶(hù)名
添加-r選項(xiàng)時(shí), 表示連用戶(hù)的宿主目錄一并刪除
8.1 示例:
刪除用戶(hù)zhu
Linux基于用戶(hù)身份對(duì)資源訪問(wèn)進(jìn)行控制
1.0 用戶(hù)賬號(hào)超級(jí)用戶(hù):root用戶(hù)是Linux操作系統(tǒng)中默認(rèn)的超級(jí)用戶(hù)賬號(hào),在本機(jī)中權(quán)限最高,只有當(dāng)進(jìn)行系統(tǒng)管理、維護(hù)任務(wù)時(shí),才建議使用root用戶(hù)登錄系統(tǒng),日常事物處理建議只使用普通賬號(hào)。root擁有對(duì)系統(tǒng)最高的管理權(quán)限 ID=0
普通用戶(hù):普通用戶(hù)賬號(hào)需要由root用戶(hù)或其他管理員用戶(hù)創(chuàng)建,擁有的權(quán)限受到一定限制,一般只在用戶(hù)自己的宿主目錄中擁有完整權(quán)限
程序用戶(hù):在安裝Linux操作系統(tǒng)及部分應(yīng)用程序時(shí),會(huì)添加一些特定的低權(quán)限用戶(hù)賬號(hào),這些用戶(hù)一般不允許登錄到系統(tǒng),而僅用于維持系統(tǒng)或某個(gè)程序的正常運(yùn)行。如:ftp,apache,bin,daemon,ftp,mail等
組賬號(hào)
基本組(私有組):基于某種特定聯(lián)系(如都需要訪問(wèn)FTP服務(wù))將多個(gè)用戶(hù)集合在一起,即構(gòu)成一個(gè)用戶(hù)組,表示該組內(nèi)所有用戶(hù)的賬號(hào)稱(chēng)為組賬號(hào)。每一個(gè)用戶(hù)賬號(hào)至少屬于一個(gè)組,這個(gè)組稱(chēng)為該用的基本組(或私有組);附加組(公共組):若該用戶(hù)同時(shí)還包含在其他的組中,則這些組稱(chēng)為該用戶(hù)的附加組(或公共組)2.0 組文件存放位置/etc/group:保存組帳號(hào)基本信息
/etc/gshadow:保存組帳號(hào)的密碼信息
UID (User IDentity ,用戶(hù)標(biāo)識(shí)號(hào)):
每個(gè)用戶(hù)的身份標(biāo)識(shí),類(lèi)似于每個(gè)人的身份證號(hào)碼管理員用戶(hù):root:0系統(tǒng)用戶(hù): 1-999(CentOS7),1-499(CentOS5,6)GID (Group IDentify ,組標(biāo)識(shí)號(hào)):
管理員組:root:0系統(tǒng)組:1-499(CentOS5,6),1-999(CentOS7)普通組:500+(CentOS5,6),1000+(CentOS7)默認(rèn)行為當(dāng)你創(chuàng)建一個(gè)新用戶(hù)時(shí)會(huì)自動(dòng)創(chuàng)建一個(gè)和之同名的主組3.1 如何查看用戶(hù)的UID ,GID和組
示例:查看用戶(hù)liang的UID,GID和組id liang
**小結(jié):**用戶(hù)和組的關(guān)系:用戶(hù)是員工,組是職位,人只有一個(gè),但可以身兼數(shù)職
4.0 組賬號(hào)管理4.1 添加組賬號(hào)命令groupadd
格式: groupadd【-g GID】組賬號(hào)名
示例:
創(chuàng)建GID為1009的chirou
4.2 擴(kuò)展:
1.檢索root組包含那些用戶(hù)
2.檢索那些組包含root用戶(hù)
4.3 添加,設(shè)置,刪除組成員/gpasswd
格式: gpasswd 【選項(xiàng)】源賬戶(hù) 目標(biāo)組
常用選項(xiàng)說(shuō)明
選項(xiàng)說(shuō)明-a添加用戶(hù)到組-d從組中刪除用戶(hù)-A指定用戶(hù)管理員-M指定組成員和-A差不多-r刪除密碼-R限制用戶(hù)登入組,只有組中成員才可以用newgrp加入該組4.3.1 示例:
將用戶(hù)liang2加入到組chirou中
將liang2從chirou組中刪除
5.1 finger命令
作用:查詢(xún)用戶(hù)的帳號(hào)的詳細(xì)信息
格式:finger 【用戶(hù)名】
示例:查詢(xún)用戶(hù)liang2的信息
5.2 w,who.users命令
作用:查詢(xún)已登錄到主機(jī)的用戶(hù)命令
示例:
5.2.1 w
通常使用tty來(lái)簡(jiǎn)稱(chēng)各種類(lèi)型的終端設(shè)備,Centos7系統(tǒng),tty1表示圖形界面,tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6切換。
按Ctr1+A1t+F2登陸,執(zhí)行w命令,查看使用的終端就是ttv2
User: 登錄用戶(hù)名TTY: 登錄后系統(tǒng)分配的終端號(hào)From: 遠(yuǎn)程主機(jī)名,即從哪登錄的 loqin@:何時(shí)登錄IDLE: 用戶(hù)空閑時(shí)間。這是個(gè)計(jì)時(shí)器,一日用戶(hù)執(zhí)行任何操作,改計(jì)時(shí)器就會(huì)被重置。JCPU: 和終端連接的所有進(jìn)程占用時(shí)間,包括當(dāng)前正在運(yùn)行的后臺(tái)作業(yè)占用時(shí)間PCPU: 當(dāng)前進(jìn)程所占用時(shí)間WHAT: 當(dāng)前正在運(yùn)行進(jìn)程的命令行pts: 說(shuō)明是用遠(yuǎn)程工具連接的,比如:xshell,后面的數(shù)字代表登錄的時(shí)間順序,越小證明登錄的越早5.2.2 who
5.2.3 users
??????????????訪問(wèn)權(quán)限
讀取r:允許查看文件內(nèi)容、顯示目錄列表寫(xiě)入w:允許修改文件內(nèi)容,允許在目錄中新建、移動(dòng)、刪除文件或子目錄可執(zhí)行x:允許運(yùn)行程序、切換目錄歸屬屬主(所有權(quán)):
擁有該文件或目錄的用戶(hù)帳號(hào)屬組:擁有該文件或目錄的組帳號(hào)2.0 查看文件/目錄的權(quán)限和歸屬示例:
ls-l 文件
結(jié)構(gòu)如下
chmod命令格式:
chmod 【ugoa】 【±=】 【rwx】文件或目錄
chmod nnn 文件或目錄
符號(hào)含義
符號(hào)含義u屬主g屬組o其他用戶(hù)a所有用戶(hù)r讀w寫(xiě)x運(yùn)行權(quán)限+增加-去除=設(shè)置權(quán)限nnn3位八進(jìn)制數(shù)3.1
示例:
創(chuàng)建77.txt文件
3.1.1.將文件77.txt去除所有人不可讀所有者可寫(xiě)權(quán)限:chmod ugo-r 77.txt
3.1.2.設(shè)置所有人可讀 所有者可寫(xiě):chmod a+r 77.txt
3.1.3.文件擁有者添加可執(zhí)行操作:chmod u+x 77.txt
3.1.4.所有人只可讀 chmod 444 77.txt
常用選項(xiàng)
-R:遞歸修改指定目錄下所有子項(xiàng)的權(quán)限
4.0 權(quán)限掩碼umask4.1 umask作用
1.控制新建的文件或者目錄的權(quán)限
2.默認(rèn)權(quán)限去除umask的權(quán)限為新建的文件夾或者目錄的權(quán)限
umask設(shè)置: umask 002umask查看:umask4.2示例:
查看當(dāng)前目錄極限掩碼umask
新建目錄laozi權(quán)限為所有人可讀可寫(xiě)可執(zhí)行umask 000mkdir laozi
**注:**若想用極限掩碼創(chuàng)建目錄權(quán)限則需要先設(shè)置極限掩碼,然后再創(chuàng)建目錄才能達(dá)到要求
5.0設(shè)置目錄與文件歸屬/chownLinux chown(英文全拼:change owner)命令用于設(shè)置文件所有者和文件關(guān)聯(lián)組的命令。
Linux/Unix 是多人多工操作系統(tǒng),所有的文件皆有擁有者。利用 chown 將指定文件的擁有者改為指定的用戶(hù)或組,用戶(hù)可以是用戶(hù)名或者用戶(hù) ID,組可以是組名或者組 ID,文件是以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符。
chown 需要超級(jí)用戶(hù) root 的權(quán)限才能執(zhí)行此命令。
只有超級(jí)用戶(hù)和屬于組的文件所有者才能變更文件關(guān)聯(lián)組。非超級(jí)用戶(hù)如需要設(shè)置關(guān)聯(lián)組可能需要使用 chgrp 命令。
使用權(quán)限 : root
格式:chown 【選項(xiàng)】目的屬組 源目錄
示例:將wd 目錄屬組改到root chown root wd
用戶(hù)組與權(quán)限之間關(guān)系十分緊密,在日常工作中,root權(quán)限不可能隨意給予別人,但是有的文件又必須給別人更改讀寫(xiě)的權(quán)利,所以這時(shí)候我們就需要設(shè)置組和目錄權(quán)限
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
