Linux 經常使用用戶管理shell
正文:ubuntu
做爲一個使用
Linux
的必然要會基本的用戶的管理,對於涉及有關用戶管理方面的主要文件有:
/etc/passwd:
記錄該系統的
root
,系統賬號和通常賬號
/etc/shadow
:記錄該系統每一個賬號所對應的密碼
/etc/group
:記錄該系統中的全部用戶組,
/etc/gshadow
:
用戶登陸以及對文件的操做,都是首先查看
UID
和
GID
,而後將其對應的名稱顯示出來。 在用戶登陸系統輸入賬號與密碼後:
首先,判斷賬號,就是要判斷
/etc/passwd
是否有你的輸入的賬號,若是有則要將其中的
UID
和
GID
讀出來,而且該賬號的主文件夾和相應的默認
shell
也要讀出來,這些基本信息都包括在
/etc/passwd
。
其次,判斷密碼,
/etc/shadow
1 幾種文件結構
1.1 /etc/passwd文件結構
該文件有多少行,就表明此係統一共有多少個賬號。
實例:apple:x:1000:1000:apple,lab4:/home/apple:/bin/bash
一共
7
個字段,
第
1
個字段:賬號名稱
第
2
個字段:賬號密碼,因爲密碼單獨放在
shadow
中,這裏以
x
顯示
第
3
個字段:
UID
UID
爲
0
,則表明是系統管理員,因此若是想要讓一個用戶成爲系統管理員,則就要使其
UID
爲
0. UID=1
~
499
爲系統賬號,
500
以上爲登陸賬號
第
4
個字段:
GID,
該賬號所屬的用戶組,它主要與
/etc/group
第
5
個字段:該賬號的基本說明
第
6
個字段:用戶的主文件夾,用於用戶登陸後進入的默認文件夾
第
7
個字段:用戶登陸後所取得的默認
shell
1.2 /etc/shadow文件結構
實例:xiaolong:Qz9:15708:0:99999:7:::
一共9個字段
第1個字段:賬號名稱
第2個字段:通過加密後的密碼,假若該字段前有!或者*表明密碼」暫時失效「
第3個字段:最近更改密碼的日期
第4個字段:在最近更改密碼日期後的多少天內,不需再次更改密碼
第5個字段:在最近更改密碼日期後的多少天內,須要再次更改密碼,即密碼從新更改天數
第6個字段:在密碼快要被從新設置前的多少天進行提示警告
第7個字段:密碼過時後,多少天容許該賬號再次登陸
第8個字段:該賬號在此日期以後,將沒法使用登陸系統
第9個字段:預留字段
1.3 /etc/group 文件結構
實例:root:x:0:root
一共4個字段
第1個字段:用戶組名
第2個字段:用戶組名的密碼
第3個字段:用戶組的GID
第4個字段:該用戶組所支持的賬號名稱。若是想要將一個賬號加入一個用戶組,就要在該字段里加入該賬號名稱,不過通常採用usermod -G groupname username
小注:
當一個賬號在某目錄下,建立文件的時候,生成的文件的默認用戶組爲該賬號的有效用戶組,能夠用groups來查看當前該賬號的用戶組,第一個爲有效用戶組,能夠經過
newgrp groupname來更換該賬號的有效用戶組,使用newgrp只是在當前shell中建立了一個子shell來運行,運行完畢後,再使用exit'返回原來的環境。在項目開發的過程當中,若是想要使一個目錄僅僅給幾個賬號使用,協同工做的話,那麼要使用
1,chgrp groupname dirname
2,chmod 2770 dirname
解釋:1主要是爲了將該目錄的所屬用戶組改成你須要的用戶組,可是若是在2的操做中,只是770,沒有加上2的話,那麼每一個賬號所生的文件的用戶組都是由該賬號當前的有效用戶組所決定的,通常一個賬號的有效用戶組爲該賬號名稱的自己。這裏加上2,主要是運用了SGID。出如今第二字段中的x爲s。SGID能夠針對文件或者目錄來使用,當對目錄使用後,它將具備以下功能:
1)用戶只有對於該目錄有r與x權限才能夠進入
2)用戶在該目錄下的有效用戶組爲該目錄的用戶組
3)用戶在該目錄下建立的文件,該文件的用戶組與此目錄的用戶組相同。bash
注:改變文件屬性和權限app
chgrp [R]:改變文件所屬用戶組ide
chgrp [-R] 用戶組名 文件或目錄加密
chown:改變文件全部者: spa
chown [-R] 帳號名 文件或目錄 chown [-R] 帳號名:組名 文件或目錄 遞歸
-R表明進行遞歸更改通常用於更改目錄下的全部子目錄或文件資源
chmod:改變文件的權限:開發
r:4,w:2,x:1;
chmod [-R] [rwx][777] 文件或目錄
2 賬號管理:僅root纔可使用
對於賬號的管理主要是新增,刪除,修改用戶,新增,刪除,修改用戶組
2.1 賬號新增
useradd [-u UID] [-g 初始用戶組] [-G 次要用戶組][-Mm] [-c 說明欄]
[-d 主文件夾絕對路徑] [-s shell] 用戶賬號
-r 建立一個系統賬號
-m:強制!爲通常賬號建立用戶主文件夾
-M:強制!不要建立用戶主文件夾,主要是針對管理員
會修改/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,/home/賬號名稱
所參考文件是,/etc/default/useradd,能夠經過useradd -D查看,該文件預設有默認主文件夾所在目錄,默認shell等
UID/GID以及密碼參數會參考/etc/login.defs,裏面有關於密碼字段默認的值
注:
在ubuntu下建立用戶的時候,要至少加上useradd -ms /bin/bash username,
假若沒有加上-m後,建立用戶會一直出現問題,說沒法進入主目錄處
利用useradd建立用戶後,該用戶的初始用戶組爲該賬號名稱,系統而且也會以賬號名稱產生一個用戶組名
注意:useradd和adduser的區別
在使用adduser命令的時候,系統會添加這個用戶名,而且還會自動地建立與這個用戶名名字同樣的用戶組做爲這個用戶的初始用戶組。此外,還會自動地在/home目錄下面建立一個與用戶同名的目錄,接着執行"cp /etc/skel /home/用戶名"的操做,實現新增用戶的主目錄的初始化。
passwd [-l] [-u] [-S] username
-l 將密碼失效
-u 將密碼解鎖
-S 列出與密碼對應的相關參數
當passwd後面不接賬號名稱的時候,表明只是修改當前賬號的密碼,root能夠修改任何人的密碼
chage [-ldEImMW] 賬號名
chage -l username 列出該賬號密碼的詳細參數
注:想要讓用戶第一次登陸的時候強制他們修改密碼後才使用資源,那麼就使用
chage -d 0 uername
2.2 賬號修改
usermod [-cdegGlsuLU] username
用戶和useradd差很少,通常在這裏主要常常會用到
-l ,修改賬號的名稱,usermod -l newname oldname
-g 修改賬號的初始化用戶組
-G 修改賬號的次要用戶組
-L 暫時將用戶的密碼凍結
2.3 賬號刪除
userdel [-r] username
-r 連同用戶的主文件夾一塊兒刪除
2.4 用戶組新增
用戶組關聯的文件:/etc/group,/etc/gshadow
groupadd [-g gid] [-r] 用戶組名
-g 新建用戶組指定了特定的GID
-r 新建系統用戶組
2.5 用戶組刪除
groupdel groupname
2.6用戶組管理員
gpasswd ,主要來管理該用戶組的成員增長或者刪除
系統管理員(root)的動做
gpasswd groupname
gpasswd [-A user1,...] [-M user3,...] groupname
gpasswd [-rR] groupname
-A ,將後面的用戶組交給後續的該用戶組的管理員的賬號
-M,將某些賬號加入該用戶組中
-r ,將groupname的密碼刪除
-R,讓groupname的密碼欄失效
用戶組管理人員的動做
gpasswd [-ad] user groupname
2.7 用戶角色切換
su, su [-] [username]切換用戶
若是省略- username,則表明直接將普通用戶切換爲root用戶,可是須要root密碼
su -表明切換的時候將工做路徑也自動切換,而su -p表明切換的時候不將工做路徑切換
利用exit來離開某一個用戶的環境
sudo,該命令僅僅有/etc/sudoers內的用戶才能執行sudo這個命令
sudo [-u 切換用戶帳號],這裏須要當前sudo執行者本身的密碼
sudo -s切換到root帳號
3 用戶功能
這裏主要是針對普通用戶所可以使用的基本命令
3.1 finger
能夠查閱不少與用戶有關的信息
finger [-s] username
-s 僅僅列出用戶的賬號,全名,終端號,若不加該參數,會列出該用戶許多相關信息
經常使用法:
finger -s username:
finger username
finger :找出該系統目前登陸的用戶
3.2 chsh
修改用戶的shell
chsh [-ls] -l:列出該系統的合法shell,-s更改shell
3.3 id
id能夠查閱與某賬號有關的UID和GID
3.4 w 或者who
都是查閱 目前已經登陸在系統上面的用戶.
W,能夠顯示目前的時間,開機多久,
who 簡單顯示目前登陸的用戶以及登陸時間和終端機
3.5 last 或者lastlog
lastlog會從/var/log/lastlog文件讀取每一個賬號最近登陸時間
last 讀取系統到如今全部的登陸信息
3.6 write ,mesg
write 用戶賬號 [用戶所在終端機]
最後以crtl+d來結束
mesg主要用戶信息的接受,
mesg,查看當前mesg狀態
mesg n ,拒絕接受任何消息
mesg y,接受任何消息