天天看點

Linux賬号和權限管理

Linux賬号和權限管理

                                                                                                                                            --------------Isuncle 原著

Linux基于使用者身份對資源通路進行控制

使用者帳号:

超級使用者root

超級使用者,即root使用者,類似于Windows系統中的Administrator使用者,非執行管理任務時不建議使用root使用者登入系統;root使用者的UID的固定值為0、root組帳号的GID号為固定值0。

普通使用者

普通使用者帳号一般隻在使用者自己的宿主目錄中有完全權;,普通使用者/組使用的UID、GID号在500~60000之間。

程式使用者

程式使用者:用于維持系統或某個程式的正常運作,一般不允許登入到系統。例如:bin、daemon、ftp、mail等;1~499的UID、GID預設保留給程式使用者使用。

組帳号:

基本組(私有組)

附加組(公共組)

UID和GID:

UID(User Identity,使用者辨別号)

GID(Group Identify,組辨別号)

用于儲存使用者的帳号基本資訊

檔案位置:/etc/passwd

每一行對應一個使用者的帳号記錄

1.基于系統運作和管理需要,所有使用者都可以通路passwd檔案中的内容,但是隻有root使用者才能進行更改

2.在早期的UNIX作業系統中,使用者帳号的密碼資訊是儲存在passwd檔案中的,不法使用者可以很容易的擷取密碼字串并進行暴力破解,是以存在一定的安全隐患

後來經改進後,将密碼轉存入專門的shadow檔案中(見下頁)并嚴格控制全新,而passwd檔案中僅保留密碼占位符“x”

Linux賬号和權限管理

字段1:使用者帳号的名稱

字段2:使用者密碼字串或者密碼占位符“x”

字段3:使用者帳号的UID号

字段4:所屬基本組帳号的GID号

字段5:使用者全名

字段6:宿主目錄

字段7:登入Shell資訊

用于儲存密碼字串、密碼有效期等資訊

檔案位置:/etc/shadow

每一行對應一個使用者的密碼記錄

1.預設隻有root使用者能夠讀取檔案中的内容,并且不允許root直接編輯該檔案中的内容

2.上次修改密碼的時間,表示從1970年01月01日(可了解為Unix系統的誕生日)算起到最近一次修改密碼時間隔的天數

Linux賬号和權限管理

   字段1:使用者帳号的名稱

字段2:加密的密碼字串資訊

字段3:上次修改密碼的時間

字段4:密碼的最短有效天數,預設值為0

字段5:密碼的最長有效天數,預設值為99999

字段6:提前多少天警告使用者密碼将過期,預設值為7

字段7:在密碼過期之後多少天禁用此使用者

字段8:帳号失效時間,預設值為空

字段9:保留字段(未使用)

添加使用者賬号:

useradd指令

格式:useradd[選項]...使用者名

常用指令選項

-u:指定UID 标記号

-d:指定宿主目錄,預設為/home/使用者名

-e:指定帳号失效時間

-g:指定使用者的基本組名(或UID号)

-G:指定使用者的附加組名(或GID号)

-M:不為使用者建立并初始化宿主目錄

-s:指定使用者的登入Shell

比如下面我們來用–u指令建立一個UID為504的使用者st02:

[root@localhost~]# useradd -u504 st02

[root@localhost~]# tail -1 /etc/passwd (檢視一下)

st02:x:504:504::/home/st02:/bin/bash (檢視結果)

這裡我們建立一個考試測試用的帳号exam01,指定屬于users組,該帳号于2009-07-30失效

[root@localhost~]# useradd -gusers-e 2009-07-30 exam01

指定mike的基本組為mike,并加入到ftpuser組;指定主目錄為/ftphome/mike;不允許mike通過本地登入伺服器

Linux賬号和權限管理

(對應的基本組mike、ftpuser必須存在,添加組賬号的方法後面會講解)

添加一個新的使用者賬号後,useradd指令會在該使用者的宿主目錄中建立一些初始配置檔案。這些檔案來自于賬号的末班目錄”/etc/skel/”

檔案來源

建立使用者帳号時,從/etc/skel 目錄中複制而來

主要的使用者初始配置檔案

~/.bash_profile:使用者每次登入時執行

~/.bashrc:每次進入新的Bash環境時執行

~/.bash_logout:使用者每次登出時執行

Linux賬号和權限管理

預設情況下,使用者宿主目錄下的初始配置檔案隻對目前使用者有效,而全局配置檔案對所有使用者有效

設定/更改使用者密碼——passwd

passwd指令

格式:passwd[選項]...使用者名

-d:清空使用者的密碼,使之無需密碼即可登入

-l:鎖定使用者帳号

-S:檢視使用者帳号的狀态(是否被鎖定)

-u:解鎖使用者帳号

不指定使用者名時,修改目前賬号的密碼

Linux賬号和權限管理

修改使用者賬号的屬性——usermod

usermod指令

格式:usermod[選項]...使用者名

-l:更改使用者帳号的登入名稱

-L:鎖定使用者賬戶

-U:解鎖使用者賬戶

以下選項與useradd指令中的含義相同

-u、-d、-e、-g、-G、-s

删除使用者賬号——userdel

userdel指令

格式:userdel[-r]使用者名

添加-r 選項時,表示連使用者的宿主目錄一并删除

删除使用者賬号stu01

Linux賬号和權限管理

組賬号檔案:

與使用者帳号檔案相類似

/etc/group:儲存組帳号基本資訊

/etc/gshadow:儲存組帳号的密碼資訊

Linux賬号和權限管理

添加組賬号——groupadd

groupadd指令

格式:groupadd[-g GID]組帳号名

Linux賬号和權限管理

添加删除組成員——gpasswd

gpasswd指令

用途:設定組帳号密碼(極少用)、添加/删除組成員

格式:gpasswd[選項]...組帳号名

-a:向組内添加一個使用者

-d:從組内删除一個使用者成員

-M:定義組成員清單,以逗号分隔

Linux賬号和權限管理
Linux賬号和權限管理

删除組賬号——groupdel

groupdel指令

格式:groupdel組帳号名

Linux賬号和權限管理

查詢賬号資訊

id指令

用途:查詢使用者身份辨別

格式:id[使用者名]

groups指令

用途:查詢使用者所屬的組

格式:groups[使用者名]

finger指令

用途:查詢使用者帳号的詳細資訊

格式:finger[使用者名]

users、w 、who指令

用途:查詢已登入到主機的使用者資訊

了解了使用者群組之後下面我們再來介紹提下權限,在Linux中,權限沒有windows中那麼複雜隻分為三種,以及檔案/目錄的歸屬。

檔案/目錄的權限和歸屬

通路權限

讀取r:允許檢視檔案内容、顯示目錄清單

寫入w:允許修改檔案内容,允許在目錄中建立、移動、删除檔案或子目錄

可執行x:允許運作程式、切換目錄

歸屬(所有權)

屬主:擁有該檔案或目錄的使用者帳号

屬組:擁有該檔案或目錄的組帳号

檢視檔案/目錄的權限和歸屬

Linux賬号和權限管理
Linux賬号和權限管理
Linux賬号和權限管理

“-rw-r—r--”部分的第一個字元表示檔案類型,可以是d(目錄)、b(塊裝置檔案)、c(字元裝置檔案),減号“-”(普通檔案)、字母“l”(連結檔案)等

其餘部分指定了檔案的通路權限

在表示屬主、屬組内使用者或其他使用者對該檔案的通路權限時,主要使用了四種不同的權限字元:r可讀;w可寫;x可執行;-無權限

r、w、x、- 權限字元還可分别表示為8進制數字4、2、1、0

設定檔案和目錄的權限——chmod

chmod指令

格式1:chmod[ugoa][+-=][rwx]檔案或目錄...

Linux賬号和權限管理
Linux賬号和權限管理

格式2:chmod nnn 檔案或目錄...

Linux賬号和權限管理

-R:遞歸修改指定目錄下所有子項的全新

設定檔案和目錄的歸屬——chown

chown指令

格式:chown屬主檔案或目錄

chown:屬組檔案或目錄

chown屬主:屬組檔案或目錄

-R:遞歸修改指定目錄下所有檔案、子目錄的歸屬

繼續閱讀