Linux用戶管理命令

Linux系統是一個多用戶多任務的分時操作系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個賬號,然後以這個賬號的身份進入系統。主要組(primary group) 用戶至少屬於一個組,必須有一個主組和附加組(supplementary group) ,一個用戶可以屬於0個或多個附加組。用戶在登錄時鍵入正確的用戶名和口令後,就能夠進入系統和自己的主目錄。

一、用戶管理的相關文件

在linux系統下,要想對用戶和用戶組進行添加、修改、刪除等操作,,我們必須瞭解用戶和組的配置文件存放的位置。若想查看這些文件存放的內容,可以使用cat命令。

/etc/passwd

功能:存放所創建的用戶帳號和其相關信息
內容:用戶名:密碼位:UID:GID:描述位:用戶主目錄:SHELL

注:由於所有用戶對passwd文件均有讀取的權限,因此密碼信息並未保存在該文件中,而是保存在了/etc/shadow的配置文件中。因此,存放密碼的字符顯示爲x,爲了保密。在passwd文件中,各字段值間用":”分隔,每個字段均代表該帳號某方面的信息。

/etc/shadow

功能:存放用戶密碼(一般採用加密的方式存放密碼)
內容:用戶名:密碼位:

注:shadow所有字段都可以手動修改,但普通賬戶不能查看shadow文件,只要root可以讀取。與passwd文件類似,shadow文件也是每行定義和保存一個賬戶的相關信息。

/etc/group

功能:存放系統組信息
格式:組名:組密碼:GID:附加組成員列表:用,間隔

注:普通用戶也可以附加到某個組中。組密碼映射到了/etc/gshadow,顯示爲x,附加組成員列表可以用,間隔

/etc/gshadow

功能:存放用戶組口令
格式:組名: 加密後的密碼位:組管理員:附加組成員列表

注:組管理員可以用,間隔,即可以修改組密碼,可以修改組成員。

/etc/skel

功能:用於存放用戶的環境文件等。當添加新用戶時,系統會自動複製該目錄到新用戶的家目錄下。

二.用戶及組管理命令

Linux的用戶賬號類型一般分爲兩類:超級用戶:具有一切系統操作權限;普通用戶:操作權限受到限制。root是系統的超級管理員,但在管理文件操作時,一般不使用root。這時,就需要創建新用戶進行日常管理操作。

su

功能:切換用戶
格式:#su [選項] [用戶名]
參數:
su: 不加任何選項的情況下,默認爲切換到root用戶,不改變shell環境
su -:默認切換到root用戶,並改變shell環境

注:root切換到普通用戶,不需要輸入密碼,普通用戶切換到root用戶,需要輸入密碼。在用戶登錄系統時,密碼是不顯示的,不要認爲是鍵盤壞了。

id

功能:顯示當前用戶自身的信息
格式:id [參數] 用戶名
參數: id 用戶名 :顯示指定用戶的信息
id -u 用戶名 :顯示指定用戶的uid
id -g 用戶名 : 顯示指定用戶的主組的gid
id -un 用戶名 : 顯示指定用戶的名字
id -gn 用戶名 : 顯示指定用的的主組的組名

useradd

功能:建的新的系統用戶
格式:useradd [參數]用戶名
參數: -u UID : 指定 UID
-o 與-u 配合,不檢查uid的唯一性
-g GID/組名 : 指定用戶的主要組
-G GID/組名 : 指定用戶的附加組
-c : "註釋" 用戶名
-d 路徑 : 用戶
-s /sbin/nologin : 指定用戶的默認shell
-N : 使用users組做爲主要組
-r : 創建系統用戶
-m : 與-r 配合使用,在創建系統用戶時,同時創建家目錄
-M : 創建非系統用戶時,不創建家目錄
-D : 設置默認值,影響以下文件

注: 路徑中的目錄名要先存在,而基名不要存在 ,useradd的默認設置 /etc/default/useradd ,在新建用戶的同時會產生一個同名的組,會在home下創建一個跟用戶同名的家目錄 。

passwd

功能:修改用戶密碼
格式:passwd [參數] [用戶名]
參數:-l:鎖定用戶
-u :解除用戶的鎖定
-d :刪除用戶的密碼
-e :使下次使用密碼登錄時,強制修改密碼
--stdin :從標準輸入接收用戶密碼

注:root用戶可以使用passwd命令的一切功能,但是普通用戶只能使用該命令修改自己的密碼。

userdel

功能:刪除給定的用戶,以及與用戶相關的文件
格式:userdel [參數] 用戶名
參數:
-r : 刪除用戶主目錄,會連同家目錄和mail一起刪除

注: 請不要輕易用-r參數,這個參數會刪除用戶的同時刪除用戶所有的文件和目錄,如果用戶目錄下有重要的文件,在刪除前請備份。

usermod

功能:修改用戶信息
格式:usermod [參數] 用戶名
參數:-u UID 用戶名 修改指定用戶的uid
-g GID/組名 : 修改用戶的主組(該組要先存在)
-G GID/組名[GID2/組名2……] :設置用戶的附加組
-a 與-G 配置,增加用戶的附加組
-s shell :修改用戶的默認shell
-c '註釋內容' :修改用戶的註釋
-d 新地址 用戶名 :只修改/etc/passwd當中家目錄的信息,並不會將目錄遷移
-m 與-d 配合使用:修改家目錄時,目錄一同遷移
note: -d 與地址 一定要連在一起
-l 新名字 舊名字:修改用戶的登錄名
-L 用戶名 :鎖定用戶的密碼
-U 用戶名 :解鎖用戶的密碼

注:如果使用-G爲用戶修改附加組的話,默認情況下會覆蓋原有的附加組,如果只想追加新的附加組可以使用 -aG ,其中a表示追加。

gropadd

功能:建立用戶組
格式:groupadd [參數] 組名
參數:-g GID/組名:指定GID的值
-r :自動分區的組ID

注:系統自備的id數是不一樣的,centos6 < 500,centos < 1000

groupdel

功能:刪除用戶組
格式:groupdel 組名

groupmod

功能:修改組信息
格式:groupmod [參數] 組名
參數:-n 新組名:修改組的名稱
-g GID:修改組的GID
-o:強制使用指定的GID,與-g連用

gpasswd

功能:修改組密碼
格式:gpasswd [參數] [用戶名] [組名]
參數:gpasswd -a username groupname :將指定用戶以附加組方式加入到指定組
gpasswd -d username groupname :將指定用戶從指定組中刪除
gpasswd -A admin1[,admin2……] groupname :設置組管理員
gpasswd -M user1,user2 groupname :設置組成員列表 (僅root執行)
gpasswd -M '' groupname : 刪除組成的所有成員
gpasswd -r groupname: 清空指定組的組密碼

注:管理員可以修改組密碼,及修改組成員

groups

功能:查看賬號屬於哪個組,主組和附加組
格式:groups [用戶名]

newgrp

功能:生成一個子shell,使用戶臨時將主要組切換到指定組
格式: newgrp 組名

注:如果當前用戶本身以附加組方式存在於該組中,那麼newgrp 組名,無需輸入密碼

groupmems

功能:允許組管理員管理其組成員,查看將該組設置爲附加組的組成員
參數:
-g :指定組名
-a 用戶名:往指定組中增加成員
-d 用戶名: 從指定組中刪除成員
-l :列出組成員列表(不包含主組)
-p: 清空該組的所有組員

chpasswd

功能:修改用戶口令,用戶名和口令由用戶輸入的執行過程中輸入
格式:#chpasswd [參數]
參數:-e 不加密存儲

chown

功能:修改文件的owner
格式:chown 用戶名 文件/目錄名
參數:-R :遞歸同時修改目錄下的子文件子目錄
--reference 文件1 文件2 :將文件1的owner設置給文件2
chown owner.group 或 owner:group 文件名:可以同時修改文件的owner和group

注:修改文件的owner和group僅root可以修改

chgrp

功能:修改文件的group
格式:chgrp 組名 文件/目錄名
參數:
-R :遞歸
--reference :文件1 文件2 將文件1的group設置給文件2

注:owner可以修改文件的屬於組,但owner一定要屬於目標組

三.用戶安全管理

對於不同用戶對權限的設置,超級用戶可以不受文件訪問權限的限制,而普通用戶受具體文件訪問權限的限制,若普通用戶想執行對某個文件的操作,就需要修改這個用戶對權限的設置。

普通權限

rwxrwxrwx:
左三位:定義user(owner)的權限
中三位:定義group的權限
右三位:定義other的權限
rwx權限作用在文件上:
r:表示可以讀取該文件的內容
w:表示可以修改該文件的內容
x:無作用
rw:表示可以讀寫該文件
rx:表示可以讀並能執行該文件
wx:權限等同於僅w權限
rwx權限作用在目錄上:
r:可以短列出目錄的內容(子文件,子目錄名)
w:無作用
x:可以進入該目錄
rw:權限等同於僅r
rx:表示可以長列出,可以進入
wx:可以創建及刪除文件或目錄。
rwx:可以列出可以創建刪除可以進入。

注:當用戶訪問一個文件時,首先判斷當前用戶是否爲該文件的所屬人owner,如果是owner,則應用owner位的權限;如果不是owner,則判斷該用戶的所屬組當中,是否有一個組與該文件的group相同,如果有,則應用group位的權限;如果都不是,則應用other位。以上權限組合可以用字母和八進制數字表示:r:4,w:2,x:1.

特殊權限

安全上下文:
進程運行時能夠訪問哪些資源或文件,不取決於進程文件的屬主屬組,而是取決於運行該命令的用戶身份的uid/gid,以該身份獲取各種系統資源。
suid:當對於一個可執行的二進制文件作用了suid之後,任何人在執行該文件時,臨時擁有其所有人的權限
權限設定:chmod u+s file.....
chmod u-s file......
sgid:當對於一個可執行的二進制文件作用了sgid之後,任何人在執行該文件時,臨時擁有其所有組的權限;當對於一個目錄作用了sgid權限之後,任何人在該目錄下所創建的文件的所屬組,均與該目錄的所屬組相同
權限設定:chmod g+s file.....
chmod g-s file......
sticky: 對於一個目錄作用了sticky權限,該目錄下的文件僅其所屬人和目錄的所屬人及root可以刪除。
權限設定:chmod o+t DIR.....
chmod o-t DIR......

chmod

功能:修改文件訪問權限
格式:chmod [參數] <權限值> <文件名>
參數:
-v:顯示詳細說明
-c:與-v相似,但只有在文件權限發生改變時才顯示詳細說明
-R:遞歸改變目錄的權限
-f:不顯示擁有者的詳細信息

注:只有root和文件所屬人有權執行chmod文件

umask

功能:設置權限掩碼(決定新建文件的權限)
格式:umask 權限值
參數:umask:查詢umask
umask xxx :設置umask

注:超級用戶默認爲022,普通用戶默認爲002。新文件和新目錄的umask基準值不一樣。

getent passwd [user_name]:只顯示某個user的信息

四、權限管理

acl

在Linux中,acl主要負責文件權限管理,centos7 默認支持acl,centos6及之前的版本,操作系統安裝時所創建的文件系統默認支持acl,而操作安裝之後使用mkfs格式化的文件系統默認未開啓acl,需要手工開啓,方法如下:
1.查看分區ACL權限是否開啓
tune2fs -o acl /dev/sda5
2.開啓acl
mount -o acl /dev/sda5 /app
acl需要getfacl和setfacl來進行acl權限的獲取和設置。
setfacl:
-m : 賦予文件相關的acl參數,不能與-x同時設置
-x : 刪除文件相關的acl參數,不能與-m同用
-b :刪除所有的acl參數
-k :刪除默認的acl參數
-R :遞歸設置acl參數
--restore : 恢復acl參數
getfacl :
<filename> : 獲取文件的acl的詳細權限

注:acl權限有優先級,判斷順序爲:owner > acl user > group > other

Chattr

功能:管理文件的隱藏權限屬性
格式:chattr [參數] 操作符 屬性值 文件或目錄
參數: 
+a 表示文件不能刪除數據,不能覆蓋數據,只能追加數據。
+i 表示文件不能刪除,不能覆蓋,不能追加任何數據

注:只有root可以設置這個屬性,參數中的“+”表示爲目標文件增加一個隱藏屬性。

lsattr

功能:查看attr權限,顯示特定屬性
格式:lsattr [參數] [文件名]
參數:-R:查看目錄所有內容的屬性,包括子目錄中的內容

五、練習

1、創建用戶liubei,guanyu,zhangfei,要求三用戶同屬於一個附加組shuguo
步驟:1.先分別創建用戶liubeu,guanyu,zhangfeu,
2.使用gpasswd命令把用戶歸屬於一個組shuguo
3.使用命令id查看
[root@centos 7 ~]# useradd liubei
[root@centos 7 ~]# useradd guanyu
[root@centos 7 ~]# useradd zhangfei
[root@centos 7 ~]# gpasswd -a liubei,guanyu,zhangfei shuguo
[root@centos 7 ~]# id liubei
[root@centos 7 ~]# id guanyu
[root@centos 7 ~]# id zhangfei
Linux用戶管理命令
2、複製/etc/fstab文件到/var/tmp下,設置文件所有者爲wangcai讀寫權限,所屬組爲sysadmins組有讀寫權限,其他人無權限
步驟:1.先使用cd命令進到tmp目錄下
2.使用cp命令複製文件
3.使用chown修改所有者爲wangcai
4.使用chgrp命令修改所屬組爲sysadmins
5.使用chmod命令修改權限
6.使用ll命令查看
[root@centos 7 tmp]# cd /var/tmp
[root@centos 7 tmp]# cp /etc/fstab /var/tmp
[root@centos 7 tmp]# chown wangcai fstab
[root@centos 7 tmp]# chgrp sysadmins fstab
[root@centos 7 tmp]# chmod 660 fstab
[root@centos 7 tmp]# ll
Linux用戶管理命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章