1. 程式人生 > >用戶、組和權限

用戶、組和權限

用戶、組、權限

在Linux系統中每一個文件都具有“所有者與所屬用戶組”屬性,那麽下面我們就來簡單介紹一下所有者與所屬用戶組。

在Linux系統中每一個文件都具有“所有者與所屬用戶組”屬性,那麽下面我們就來簡單介紹一下所有者與所屬用戶組。

所有者即用戶(Username/UID),),用戶分為管理員用戶和普通用戶。

管理員用戶:

名稱:一般為root uid:0

普通用戶(uid範圍:1-65535):

1、 系統用戶:名稱可以隨便定,用戶的uid為1-499(centos6及之前版本), 1-999 (centos7)

主要用戶對守護進程獲取資源進行權限分配

2、登錄用戶:名稱可以隨便定,用戶id為500+(centos6及之前版本),1000+(centos7)

交互式登錄


所屬用戶組即用戶組(Groupname/GID),,一般分為用戶的主要組和用戶的附加組:

1、用戶的主要組:即主組,用戶有且只有一個主組,組名同用戶名,且僅包含一個用戶:私有組

2、用戶的附加組:用戶可以屬於零個或多個附加組


Linux中用戶和組的配置文件:

/etc/passwd :用戶及其屬性信息( 名稱、UID 、主組ID 等)


[[email protected] 192 01:21:51 ~]#vim /etc/passwd

root:x:0:0:he,he room,110,119:/root:/bin/bash

通我們以root賬戶為例,通過上述我們可以看到在/etc/passwd中儲存用戶信息的格式為:

login name :登錄用名(root)

passwd :密碼 (x)

UID號 :用戶身份編號 (0)

GID :登錄默認所在組編號 (0)

GECOS :用戶全名或註釋

home directory錄 :用戶主目錄 (/root)

shell :用戶默認使用shell (/bin/bash)


/etc/group :組及其屬性信息

[[email protected] 193 01:33:38 ~]#vim /etc/group

root:x:0:laohe,h

通我們以root賬戶為例,通過上述我們可以看到在/etc/group中儲存組的信息格式為:

組名:root

組密碼:x

GID:0

組成員:laohe,h


/etc/shadow :用戶密碼及其相關屬性

[[email protected] 194 01:38:43 ~]#vim /etc/shadow

root:$6$FJtMrUTBaszVAjxz$aZZV4WPVkd4mfXTkClcdUXlUF0HVliKOdx35vnyqtoigcleA3.C76aaLHO/7Ev5qLKQoM7e4OASjy6PnZ.tWJ.:17316:0:99999:7:::

通我們以root賬戶為例,通過上述我們可以看到在/etc/shadow存用戶密碼信息的格式為:

login name:登錄用名(root)

加密方式:一般用sha512 加密(6)

salt:俗稱為"鹽",$FJtMrUTBaszVAjxz$

加密密碼:aZZV4WPVkd4mfXTkClcdUXlUF0HVliKOdx35vnyqtoigcleA3.C76aaLHO/7Ev5qLKQoM7e4OASjy6PnZ.tWJ.

更改密碼時間:從1970 年1 月1 日起到密碼最近一次被更改的時間(17316)

可改密時間:密碼再過幾天可以被變更(0 表示隨時可被變更)

密碼多久過期:密碼再過幾天必須被變更(99999 表示永不過期)

提醒時間:密碼過期前幾天系統提醒用戶(默認為一周)

後面的::信息沒有,留做備用


/etc/gshadow :組密碼及其相關屬性

通我們以root賬戶為例,通過上述我們可以看到在/etc/gshadow中的用戶組信息:

[[email protected] 195 01:55:34 ~]#vim /etc/gshadow

root:::laohe,h

組名: 是用戶組的名稱,由字母或數字構成(root)
口令:用戶組密碼,這個段可以是空的或!,如果是空的或有!,表示沒有密碼
組管理者:這個字段也可為空,如果有多個用戶組管理者,用,號分割

組內用戶列表:如果有多個成員,用,號分割(laohe,h)



☆常用的用戶管理命令:useradd、usermod、userdel

1、useradd [options] LOGIN (創建用戶)

-u UID : 用於指定用戶的uid

-o 配合-u 選項,不檢查UID 的唯一性

-g GID :指明用戶所屬基本組,可為組名,也可以GID

-c "COMMENT" :用戶的註釋信息

-d HOME_DIR: 以指定的路徑( 不存在) 為家目錄

-s SHELL : 指明用戶的默認shell 程序

-G GROUP1[,GROUP2,...] :為用戶指明附加組,組須事先存在

-N 不創建私用組做主組,使用users 組做主組

-r: 創建系統用戶 CentOS 6: ID<500 ,CentOS 7: ID<1000

19

2、usermod [OPTION] login (修改用戶信息)

-u UID: 新UID

-g GID: 新 新 主 組

-G GROUP1[,GROUP2,...[,GROUPN]]] :新附加組(原來的

附加組將會被覆蓋;若保留原有,則要同時使用-a 選項)

-s SHELL :新的默認SHELL

-c ‘COMMENT‘ :新的註釋信息

-d HOME: 新家目錄不會自動創建;若要創建新家目錄並移

動原家數據,同時使用-m 選項

-l login_name: 新的名字


3、userdel [OPTION]... login 刪除用戶

-r: 刪除用戶 家目錄


☆常用的組管理命令:groupadd、groupmod、groupdel

1、groupadd [OPTION]... group_name 創建組

-g GID: 指明GID 號;

-r: 創建系統組(CentOS 6: ID<500,CentOS 7: ID<1000)


2、groupmod [OPTION]... groupname 修改組

-n group_name: 新名字

-g GID: 新的GID


3、groupdel GROUPNAME 刪除組(組裏有成員則不可刪)


☆查看和修改密碼:

1、查看用戶:ID

id [OPTION]... [USER]

-u: 顯示UID

-g: 顯示GID

-G: 顯示用戶所屬的組的ID

-n: 顯示名稱,需配合ugG


passwd [OPTIONS] UserName: 修改指定用戶的密碼(僅管理員可用)

passwd: 修改自己的密碼

常用選項:

-l: 鎖定指定用戶

-u: 解鎖指定用戶

-e: 強制用戶下次登錄修改密碼

-n mindays: 指定最短使用期限

-x maxdays :最大使用期限

-w warndays :提前多少天開始警告

-i inactivedays :非活動期限

--stdin :從標準輸入接收用戶密碼

echo " PASSWORD " | passwd --stdin USERNAME


2、組:

groups [OPTION].[USERNAME]... 查看用戶所屬組列表


groupmems [options] [action]

options: :

-g, --group groupname 組 更改為指定組 ( 只有root)

Actions:

-a, --add username 指定用戶加入組

-d, --delete username 從組中刪除用戶

-p, --purge 從組中清除所有成員

-l, --list 顯示組成員列表


☆權限

在我們使用文件和目錄的時候會涉及到一個很重要的問題那就是權限,一般來說權限分為:讀(r)、寫(w)、執行(x)。這裏我們以文件為例:

[[email protected] 217 03:17:31 ~]#ll initial-setup-ks.cfg

-rw-r--r--. 1 root root 1721 May 17 14:51 initial-setup-ks.cfg

-rw-r--r--即為文件的權限

1為文件的引用計數

第一個root為所有者(屬主)

第二個root為所屬組

1727為文件的大小

May 17 14:51 文件的創建時間

initial-setup-ks.cfg 為文件名


文件的權限主要針對三類對象進行定義:

owner: 屬主, u

group: 屬組, g

other: 其他, o

每個文件針對每類訪問者都定義了三種權限:

r: Readable

w: Writable

x: eXcutable

X為只給目錄不給文件


在Linux中的數字表示法中,r表示4,w表示2,x表示1.


1、修改文件的屬主:chown

chown [OPTION]... [OWNER][:[GROUP]] FILE...

-R: 遞歸

chown [OPTION]... --reference=RFILE FILE...


2、修改文件的屬組:chgrp

模式法:

chgrp [OPTION]... GROUP FILE...

chmod [OPTION]... MODE[,MODE]... FILE...

MODE: :

修改一類用戶的所有權限:

u= g= o= ug= a= u=,g=

修改一類用戶某位或某些位權限

u+ u- g+ g- o+ o- a+ a- + -

chmod [OPTION]... --reference=RFILE FILE...(FILE復制RFILE的權限)

數字法:

chmod 權限值 file


☆Linux中的特殊權限:SUID SGID Sticky

1、SUID: 只對二進制可執行程序有效,對目錄無意義。文件啟動後啟動程序者相當於繼承之前這個程序的所有者的權限來使用這個程序

語法:

chmod u+s FILE...

chmod u-s FILE...


2、SGID:

對文件而言,啟動進程後,其進程的屬主為原程序文件的屬組

chmod g+s FILE...

chmod g-s FILE...

對目錄而言,一旦某目錄被設定了SGID ,則對此目錄有寫權限的用戶在此

目錄中創建的文件所屬的組為此目錄的屬組

chmod g+s DIR...

chmod g-s DIR...


3、Sticky:

目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件

chmod o+t DIR...

chmod o-t DIR...



☆ACL

1、ACL :Access Control List ,實現靈活的權限管理

2、功能:除了傳統的命令能對用戶、屬組、其他人產生約束外,這個命令可以對更多的用戶設置權限。

3、生效順序:所有者、自定義用戶、自定義組、其他人

4、centos7默認的文件系統才有ACL功能,centos7之前的版本設置默認創建ext4文件可以手動添加。

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt/test

5、ACL 文件上的group 權限是mask 值(自定義用戶,自定義組,擁有組的最大權限), 而非傳統的組權限。mask 只影響除所有者和other 的之外的人和組的最大權限。Mask 需要與用戶的權限進行邏輯與運算後,才能變成有限的權限(Effective Permission),用戶或組的設置必須存在於mask 權限設定 範圍內才會生效。


語法:

setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ..

常用命令:

getfacl a file 查看文件的ACL權限

setfacl -k dir 刪除默認ACL 權限

setfacl –b file1 清除所有ACL 權限

getfacl file1 | setfacl --set-file=- file2 復制file1的 的acl 權限給file2

setfacl –m u:apache:rwx  file 設置apache用戶對file文件的rwx權限
setfacl –m g:market:rwx  file  設置market用戶組對file文件的rwx權限 
setfacl –x g:market file   刪除market組對file文件的所有權限
getfacl  file  查看file文件的權限














本文出自 “11986114” 博客,請務必保留此出處http://11996114.blog.51cto.com/11986114/1930743

用戶、組和權限