linux系統中的帳號和權限管理


Linux用戶

超級用戶:root

普通用戶:由管理員創建

程序用戶:一般不允許登錄計算機


組賬號

基本組

附加組

(基本組和附加組不是絕對的,而是基於用戶而言)


UID:用戶標識號,root用戶恆爲0,程序用戶默認爲1~499,普通用戶默認爲500~6000

GID:組標識號,root組恆爲0,程序組默認爲1~499,普通組默認爲500~60000

( /etc/login.defs文件中定義了UIDGID範圍,可修改)


用戶帳號文件

/etc/passwd保存用戶帳號的信息,文件內容如下

135407684.png

包含7個字段,每個字段用 : 隔開,每個字段含義如下

1個字段:用戶名

2個字段:密碼佔位符x

3個字段:用戶的UID

4個字段:用戶所屬基本組的GID

5個字段:用戶全名

6個字段:用戶的宿主目錄

7個字段:用戶登錄所使用的shell



/etc/shadow用戶的密碼信息,文件內容如下

135528852.png

包含9個字段,每個字段含義如下

1個字段:用戶名

2個字段:加密的密碼串,*!!表示該用戶不能登錄

3個字段:上次修改密碼的時間(197011日算起)

4個字段:密碼最短有效天數,默認爲0,表示不限制

5個字段:密碼最長有效天數,默認爲99999,表示不限制

6個字段:提前多少天提醒用戶,默認爲7

7個字段:密碼過期後禁用

8個字段:帳號失效時間(197011日算起)

9個字段:保留字段




創建用戶

useradd

-u:指定用戶UID

-d:指定宿主目錄,默認會在/home目錄下創建一個和用戶同名的目錄,此目錄不能事先存在

-e:指定帳號失效時間

-g:指定用戶的基本組,默認爲同名組

-G:指定用戶的附加組

-M:不爲用戶建立並初始化宿主目錄

-s:指定用戶的登錄Shell

例:useradd -u 500 -d /tom tom


設置和修改密碼

passwd

-d:清空用戶密碼

-l:鎖定用戶

-S:查看用戶是否被鎖定

-u:解鎖用戶


修改賬號 (也可以修改/etc/passwd文件)

usermod

-l:更改用戶登錄名(家目錄不變)

-L:鎖定用戶

-U:解鎖用戶

(-u-d-e-g-G-s 使用和useradd的用法一樣)


刪除用戶

userdel

-r:刪除用戶宿主目錄


用戶賬號的初始配置文件

創建用戶時,會在用戶宿主目錄下生成一些初始配置文件,這些文件來自於賬號模板目錄/etc/skel/,基本上是隱藏文件。這個目錄裏面所有的文件在每次創建用戶時都會拷貝一份到用戶的宿主目錄。

~/.bash_profile:用戶登錄時執行

~/.bashrc:用戶打開shell時執行

~/.bash_logout:用戶註銷時執行

~/.vimrc:用戶打開vim編輯器時執行,默認沒有創建

與上述對應的全局配置文件,針對所有用戶生效

/etc/profile:對應 ~/.bash_profile

/etc/bashrc:對應 ~/.bashrc

/etc/vimrc:對應 ~/.vimrc


組賬號文件

/etc/group保存用戶賬號信息,分爲4個字段

1個字段:組名

2個字段:組密碼佔位符x

3個字段:組的GID

4個字段:組成員(只顯示附加組成員)


/etc/gshadow保存組賬號密碼(現已無用處)


創建組

groupadd

-g:指定組的GID

例:groupadd-g500caiwu


修改組信息

gpasswd

-n:修改組名

-g:修改組的GID

-a:向組中添加用戶

-d:刪除組中成員

-M:定義組中成員


刪除組

groupdel


查詢賬號信息

id --查詢用戶身份標示

groups --查詢用戶所屬組

(上面兩項默認項默認查看當前用戶,可以在後面跟用戶名,查看指定用戶的信息)

finger --查詢用戶賬號的登錄屬性

wwho --查詢當前主機所有登錄的用戶

whoami --查詢當前用戶登錄的用戶


切換用戶

su

格式:su - tom(“-”表示使用目標用戶環境)

root用戶切換普通用戶時,不需要輸入密碼,普通用戶切換時需要輸入密碼,省略後面的用戶名時,默認切換到root用戶

-c:臨時切換,當臨時切換爲另一用戶執行一條命令時使用

例:su - -c 'ifconfig' root



文件及目錄權限

使用ls命令加-l選項查看目錄和文件時,會以長格式顯示文件和目錄的屬性,如下

135721933.png

其中文件類型及權限又分十個字段

135754453.png

類型:d(目錄)b(塊設備文件)c(字符設備文件)-(普文)、字母 l(鏈接文件)

u權限:文件屬主的權限

g權限:文件屬組的權限

o權限:其它權限

權限的格式固定爲:rwx

rwx對應的權限及數字表示

r

w

x

-

4

2

1

0

讀取權限

寫入權限

執行權限

無權限


修改權限

chmod

ugo:分別代表屬主、屬組和其它

a:代表所有,例a+rw等同於ugo+rw

+:加入對應權限

-:刪除對應權限

=:定義ugo對應的權限,例如 o=rwx

(ugo同時設權限時,用逗號相隔)

chmod u=rx,go+r a.txt

爲目錄設置權時,可以使用-R選項遞歸式修改


數字方式修改

每組權限分別爲對應數字之和,組成了一個3位的8進制的數來表示3種權限

--x

-w-

-wx

r--

r-x

rw-

rwx

1

2

3

4

5

6

7

例:chmod 777 a.txt

等同於:chmod a=rwx a.txt


修改屬主和屬組

chown

-R:遞歸式修改目錄

root root用戶

:rootroot

root:rootroot用戶和root

例:chown root:root a.txt

chgrp--修改屬組

-R :遞歸修改

例:chgrp root a.txt(等同於 chown:roota.txt)


默認權限

umask屬性--用來確定新建文件和目錄的默認權限

直接執行umask可以查看umask屬性,-S選項表示以文字方式來表示umask4位數組成,第1位表示特殊權限,一般不用管,後面的3位分別代表ugoumask屬性

使用滿權限減去umask得出默認權限,文件和目錄的滿權限分別是666777;默認root用戶的umask屬性爲022,普通用戶的umask002

默認情況下的默認權限


文件

目錄

root用戶

666-022=644

777-022=755

普通用戶

666-002=664

777-002=775

修改umask屬性

umask後面直接跟屬性值

例:umask 022

爲了安全一般把root用戶的umask屬性改爲077


特殊權限

suid

執行文件時以文件所屬用戶身份執行

sgid

在該目錄下新建文件和目錄繼承該目錄的屬組

sticky

對目錄擁有寫權限的用戶無法刪其他用戶的文件



設置特殊權限

suid

chmodu+sa.txt

sgid

chmodg+sa.txt

sticky

chmodo+ta.txt

通過數字設置

suid

sgid

sticky

4

2

1

例:chmod 4755 a.txt




ACL訪問控制列表(分區要支持)

實現設置某個文件針對不同用戶的權限

默認安裝系統時創建的分區都支持ACl

tune2fs -l /dev/sdb1--查看分區是否支持

tune2fs -o acl /dev/sdb1--使分區支持acl


設置acl規則

setfacl [選項] u[g]:用戶或組名:權限 文件/目錄名

ug:指定爲用戶還是組設

-m:設置權限

-x:刪除指定權限

-b:刪除所有權限

-d:設置默認權限,只能爲目錄設,設置之後,在此目錄下新建的文件/目錄會繼承此目錄的權限(設置時需結合-m選項,-m選項需在-d選項之後)

例:setfacl -d -m u:root:rwx /root


查看acl規則

getfacl 目錄/文件名


也可以在掛載時添加acl支持,只對當前生效

mount -o acl /dev/sdb1 /mnt


注:如果ACL規則中用戶()被刪除,會保留該用戶()UID (GID)


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