前言
我們知道,當我們進入一家公司做運維方面的工作的時候,我們需要對公司的服務器進行監控管理,換句話說,我們需要一個身份來操作服務器。那么我們又知道,linux系統下擁有最高權限的管理員是Root,它無所不能,無所畏懼,那么公司肯定就是不會把這個賬戶交給你使用。那么就引出一個概念:用戶。除了root管理員,其他所有人都是這個服務器的用戶。由root管理員創建用戶來交予你使用,當然root會賦予該管理員一些可以行使的權利和限制一些它的操作,那么這篇文章就來詳細說說用戶管理和權限管理的那些事。
首先先來認識一個文件 /etc/passwd
為了區別明顯,分別以root、magedu登陸對比來看,可以看到以‘:’ 隔開,分為七個部分,下面分別來進行解釋:
第一位:用戶名??瓷蠄D,分別是root 和magedu
第二位:用戶密碼。之所以顯示X是由于安全考慮,會在另一個文件中顯示,后面會提到。
第三位:用戶ID,即UID。因為root是超級管理員,擁有至高無上的權利,所有它的UID為0。反之也就是說當UID為0時,說明該用戶是管理員賬戶。那我們應該思考一下,既然root是0,那為什么magedu的UID是1000而不是1呢?因為在CentOS
6系統下,默認將1-499的UID留給了系統用戶使用,而在CentOS 7系統下,默認將1-999留給了系統用戶使用。因為本編使用的是CentOS 7系統,所有magedu這個用戶的UID就從1000開始啦。
第四位:GID,即組ID。當我們創建一個用戶時,會自動創建一個與用戶同名的組作為用戶的主要組。每個用戶有且僅有一個主要組。既然有主要組,是不是也要有附加組(輔助組),沒錯,少年,你hin有前途呦~~ 每個用戶可以有零個或者多個輔助組,后面也會提到啊~~
第五位:描述位。簡單來說,對你來個簡單介紹。如果創建用戶的時候沒有進行描述,則默認為用戶名。那我想修改怎么辦?No problem !改!怎么改?后面說啦(給自己挖了這么多坑,哭著也得填滿啊~~)
第六位:用戶的家目錄。很好理解啦,每個用戶的家嘛~如果把用戶家目錄刪除了,那用戶就無家可歸嘍~
第七位:用戶默認登陸的shell。一般來說用戶創建時,默認指定的shell為/bin/bash。那么能改嗎?當然了,記?。?/span>linux一切皆文件。怎么改?你懂得~后面來說。
呼~~~終于說完一個文件,接下來還有一個文件。堅持住,老鐵們~~
再來看下一個文件 /etc/shadow
/etc/passwd 文件是對用戶的基本信息進行描述,那么/etc/shadow則是對用戶密碼的基本信息進行描述。
這個我們換個用戶,分別以root、zhangsan對比來看,可以看到以‘:’隔開,分為九個部分,下面分別來進行解釋:
第一位:用戶名。root 、zhangsan
第二位:密碼位。咦~這次為啥不是X表示了?來看這個文件的名字,shadow?影子、投影的意思。這么長一串都是密碼嗎?那這用戶得有多自虐啊設置這樣的密碼(哈哈哈)老鐵們也看過不少諜戰戲,一看就是加密的密碼嘍~至于怎么個加密法,不是本章重點就不啰嗦這個了~知道是加密過的密碼就闊以了噻~
第三位:密碼上一次的修改日期(從1970-1-1到修改的時間經過了多少天來表示)為什么從1970年算起呢?因為1970是linux誕生的日子啊。看圖,zhangsan用戶為17368天,換算成年,47年。正是今年創建的時間,怎么樣?暈了沒~~
第四位:密碼最小存活期。很簡單,距離你上次修改密碼有幾天你才能進行下一次修改。看圖,root為0,則代表你隨時可以修改;zhangsan用戶為2天,如果你現在修改了密碼,那么下次你就要等到兩天后才能修改了。
第五位:密碼最大存活期。與上同理,過了密碼最大存活期,系統會提醒你強制修改密碼了。如圖,zhangsan用戶的密碼最長維持333天。
第六位:密碼過期之前提前多少天提醒用戶(在正確登錄時),這就是智能所在了。有時候我們忘記了密碼什么時候過期了咋辦?沒問題,交給系統來設置。如圖,zhangsan用戶會在密碼過期的前12天會提醒他的。
第七位:密碼過期之后多少天帳戶過期(在正確登錄時)。那如果系統提醒你改密碼了,你死活就是不改,那么抱歉了,過了天數你這個賬戶就過期了。如圖,zhangsan用戶設置的也是12天。
第八位:帳戶過期時間(自1970-1-1到該天經過了多少天來表示)。這個與上同理,就不多解釋了~
第九位:保留位。留給未來寫系統的人的保留位~真的是很有前瞻意識啊~~~
接下來要學習一個新知識了,既然這兩個文件都是跟用戶有關的,那么怎么來創建一個用戶呢?來干貨了~~
useradd 命令用來創建一個用戶。我們知道一般一個命令都有一些選項,好,列舉一些出來:
-u uid username 創建用戶時指定uid(如不指定則Centos6:500-60000, Centos7: 1000-60000)
-o -u uid username 創建用戶時指定uid(可以與已存在用戶的uid相同)
–g groupname username 創建用戶時指定主組為某個已存在的組。(將不會再創建與用戶同名的組)
-c “…” username 創建用戶時指定描述信息。(看清楚,是在創建時候哈~)
-d path username 指定用戶的家目錄(確保指定的家目錄所在的上級目錄要存在,且家目錄本身不能存在)
-s /sbin/nologin username 指定用戶的默認shell
-G group1[,group2] username 指定用戶的輔助組
–N username 設置用戶的主要組為默認組(users,uid=100)
-r username 創建系統用戶
看了上面一堆是不是有點眼花,沒關系~來做一個實驗馬上就一目了然了~
想一個題目吧:創建一個用戶Mary,UID為6666,設置主組為zhangsan組,注釋信息為“womeima?”,默認shell為/bin/csh 。怎么樣,是不是超簡單,看本編一條命令搞定()
那我們之前說了。當我們創建用戶時,會自動創建一個與用戶同名的組。當使用-g 選項指定該用戶的主組時,將不會再創建與用戶同名的組,那我們上面例子是不是實現了呢,還差一步來驗證。查看/etc/group文件,該文件時用來存放組的基本信息。
實驗成功~~
那么還有一個問題。有人要問了,我的用戶已經創建了,我想修改信息沒辦法改嗎?開玩笑,linux下啥不行!改!那要用usermod命令了。同樣的,它也有選項,來吧,讓我們暢游在知識的海洋里~~
usermod 命令用來修改用戶的一些信息
-u newuid username 修改用戶的UID
-o -u newuid username 修改用戶的uid(可以與已存在用戶的uid相同)
-aG 加組名,可以追加輔助組而不用覆蓋之前的組
-G “” username 或 usermod -G primarygroup username 清空用戶所有的輔助組
-g groupname username 修改用戶的主組
-s /sbin/nologin username 修改用戶的默認 shell
-c … username 修改用戶時指定描述信息。
-d /…/path username 修改用戶的家目錄(不會創建,只修改/etc/passwd當中的家目錄信息)
-m -d /…/path username 修改用戶的家目錄信息,并將家目錄移動到目的目錄并改名。
-l newname oldname 修改用戶名
-L 給用戶/etc/shadow中的密碼位加!使用戶被鎖定
-U 解鎖用戶(把!拿掉)
-e yyyy-mm-dd 設置一個帳戶過期時間
-f days 指定密碼過期之后多少天帳戶過期
挺住~老鐵 ,一個實驗就明白了~
再來一個題:修改zhangsan用戶,UID為6688,主組為magedu,注釋信息為“woshizhangsan”,默認shell /sbin/nologin
先來看一下zhangsan用戶現在的信息:
接下來進行修改:
突然覺得zhangsan這個用戶名太俗了,改個名字吧~
useradd –l newname oldname
Ps:看官們發現了,在上面的實驗中,本編使用了 getent passwd username這一命令來查看用戶的信息,除了這條,用戶還可以使用finger username 來查看用戶信息。finger 在CentOS中默認沒有安裝,用戶可以使用以下這條命令來進行安裝:
rpm –ivh /run/media/root/CentOS\ 7\ x_86_64/packages 在package里查找finger的安裝包進行安裝。
eg:用 finger username來查看laowang的信息
另外還有一個與useradd -c “” 設置描述信息命令相似的命令,就是使用chfn username 直接進行修改:
還有一個快速修改用戶密碼的命令:chage
username +回車進行交互式修改密碼 , 如圖:
當然chage命令也有一些選項,可以進行單個逐個的修改,在這里不做實驗了,列出了解一下:
chage -l username 顯示帳戶的密碼信息
-d 指定密碼的上次修改時間(輸入天數或yyyy-mm-dd)從1970年算起
-d 0 強制用戶下次登陸時修改密碼
-E 帳號到期的日期(輸入天數)從1970年算起
-I 密碼過期之后多少天密碼失效
-m 密碼可更改的最小天數,為零時代表任何時候都可以更改密碼
-M 密碼保持有效的最大天數
-W 密碼過期前,提前收到警告信息的天數
有關user的一些命令與相關用法就總結到這里啦,當然里面也有一些沒有寫到的部分,想起來了在來進行補充。還有與group 相關的一些命令與用法就下次再見了~~
如有錯誤,希望各位路過的看官大神不吝指教,小女子不勝感激~~~
再次筆芯~~~
原創文章,作者:wanperfect,如若轉載,請注明出處:http://www.www58058.com/82137