您好,登錄后才能下訂單哦!
第一次寫博客因培訓老師建議寫博客增強自己的學習能力,我也覺得有些道理,及開通博客,嘗試寫一下。
也希望大??吹讲灰獓姽?,歡迎指導,謝謝。
1、用戶
每個用戶即為每個使用者,對應的一組用戶標識碼、密碼 從而識別為一個用戶。
而組即為用戶的一個容器,讓用戶裝在里面。
用戶類別分為兩種:管理員與普通用戶。
普通用戶有:
系統(tǒng)用戶
登錄用戶
用戶標識:userID,UID:
因為機器需要識別用戶 但是機器只認數(shù)字所以有了UID
UID由16位二進制數(shù)字組成表示0-65535 共65536個
其中管理員為0
普通用戶為1-65535
其中普通用戶中的系統(tǒng)用戶在centos6中為1-499,centos7中為1-999
登錄用戶在centos6中為500-60000,centos7中為1000-60000
但是這個不利于人的記憶,人容易記住的是字符串,但是機器識別不了所以有了名稱解析用來轉換username與uid,所以linux有個解析庫就用來查找username與uid之間的轉換,/etc/passwd
2、組
同樣的組也分兩類:管理員組和普通用戶組
普通用戶組也分:
系統(tǒng)組
登陸組
組標識:groupID,GID
與用戶標識相同
同樣的也有名稱解析,解析庫為/etc/group
第二種組類別分法,即用戶的基本組和附加組,一個用戶可以在多個組里面,但有個最主要的組就叫基本組,在的其他組就是附加組。就如同你本身在這個1部門工作,臨時去2部門幫忙1就是你的基本組2就是你的附加組
第三種組類別分法,私有組和公共組,私有組表示與用戶同名且組內(nèi)只有這一個用戶即為私有組,公共組則表示有多個用戶存在,但這個分法沒有實際意義。
3、安全上下文
進程會以發(fā)起者的身份運行;
進程對文件的訪問權限,取決與發(fā)起此進程的用戶權限,即這個進程能做什么取決于用戶權限有什么;
系統(tǒng)用戶:
講到安全上下文就要說到我們一開機即會啟動一大堆的進程,那這些進程都是以什么身份啟動,這就是系統(tǒng)用戶的作用,為了讓后臺進程或服務類進程以非管理員的身份運行,且通常一個用戶只干一件事,所以通常需要為此創(chuàng)建多個系統(tǒng)用戶;但是這類用戶從不用登錄系統(tǒng);
3、用戶與組的常用命令
groupadd:添加組;
用法:group [選項] group_name
選項:
-g:指定GID;沒有指定即默認為上一個添加的組的GID+1;
-r:創(chuàng)建系統(tǒng)組;
groupmod:修改組屬性
groupmod [選項] GROUP
-g:修改GID;
-n:修改組名;
groupdel命令:刪除組
groupdel [選項] GROUP
useradd [選項] 登錄名
-u, --uid UID:指定UID;
-g, --gid GROUP:指定基本組ID,此組得事先存在;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指明用戶所屬的附加組,多個組之間用逗號分隔;
-c, --comment COMMENT:指明注釋信息;
-d, --home HOME_DIR:以指定的路徑為用戶的家目錄;通過復制/etc/skel此目錄并重命名實現(xiàn);指定的家目錄路徑如果事先存在,則不會為用戶復制環(huán)境配置文件;
-s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
-r, --system:創(chuàng)建系統(tǒng)用戶;
注意:直接useradd默認屬性創(chuàng)建的用戶諸多默認設定配置文件為/etc/login.defs
useradd -D:顯示創(chuàng)建用戶的默認配置;
useradd -D [選項]: 修改默認選項的值;
修改的結果保存于/etc/default/useradd文件中;
usermod命令:修改用戶屬性
usermod [選項] 登錄
-u, --uid UID:修改用戶的ID為此處指定的新UID;
-g, --gid GROUP:修改用戶所屬的基本組;
-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改用戶所屬的附加組;原來的附加組會被覆蓋;
-a, --append:與-G一同使用,用于為用戶追加新的附加組;
-c, --comment COMMENT:修改注釋信息;
-d, --home HOME_DIR:修改用戶的家目錄;用戶原有的文件不會被轉移至新位置;
-m, --move-home:只能與-d選項一同使用,用于將原來的家目錄移動為新的家目錄;
-l, --login NEW_LOGIN:修改用戶名;
-s, --shell SHELL:修改用戶的默認shell;
-L, --lock:鎖定用戶密碼;即在用戶原來的密碼字符串之前添加一個"!";
-U, --unlock:解鎖用戶的密碼;
userdel命令:刪除用戶
userdel [選項] 登錄
-r:刪除用戶時一并刪除其家目錄;
passwd命令:
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
(1) passwd:修改用戶自己的密碼;
(2) passwd USERNAME:修改指定用戶的密碼,但僅root有此權限;
-l, -u:鎖定和解鎖用戶;
-d:清除用戶密碼串;
-e DATE: 過期期限,日期;
-i DAYS:非活動期限;
-n DAYS:密碼的最短使用期限;
-x DAYS:密碼的最長使用期限;
-w DAYS:警告期限;
--stdin:以標準輸出修改密碼
echo "PASSWORD" | passwd --stdin USERNAME
gpasswd命令:
組密碼文件:/etc/gshadow
gpasswd [選項] group
-a USERNAME:向組中添加用戶
-d USERNAME:從組中移除用戶
newgrp命令:臨時切換指定的組為基本組;
newgrp [-] [group]
-: 會模擬用戶重新登錄以實現(xiàn)重新初始化其工作環(huán)境;
chage命令:更改用戶密碼過期信息
chage [選項] 登錄名
-d
-E
-W
-m
-M
id命令:顯示用戶的真和有效ID;
id [OPTION]... [USER]
-u: 僅顯示有效的UID;
-g: 僅顯示用戶的基本組ID;
-G:僅顯示用戶所屬的所有組的ID;
-n: 顯示名字而非ID;
su命令:switch user
登錄式切換:會通過讀取目標用戶的配置文件來重新初始化
su - USERNAME
su -l USERNAME
非登錄式切換:不會讀取目標用戶的配置文件進行初始化
su USERNAME
注意:管理員可無密碼切換至其它任何用戶;
-c 'COMMAND':僅以指定用戶的身份運行此處指定的命令;
權限管理:
文件權限分為三類:
屬主:即一個用戶,這個用戶對這個文件的權限
屬組:即一個組,在這個組之下的用戶對這個文件的權限
其他:即除了屬主與屬組以外的用戶對這個文件的權限
前面有講到安全上下文是一個進程對文件的權限取決于發(fā)起這個用戶的權限,那他對文件訪問權限的應用模型是什么呢:
進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;
否則,則檢查進程的屬主是否屬于文件的屬組;如果是,則應用屬組權限;
否則,就只能應用other的權限;
權限:
我們隨便ls -l一個文件-rwxrw-r--. 1 root root 第一個-表示文件類型 后面9位表示擁有的權限,
-則代表沒有這個權限,rwx分代表一個權限,第一個root表示他的屬主,第二代表他的屬組
左三位:定義user(owner)的權限
中三位:定義group的權限;
右三位:定義other的權限
文件權限:
r:readable, 讀
w:writable, 寫
x:excutable,執(zhí)行
注意:文件默認沒有執(zhí)行權限,如果文件不是可執(zhí)行文件任何用戶不能擁有執(zhí)行權限,否則可能會報錯!
目錄權限:
r:可使用ls命令獲取其下的所有文件列表;
w: 可修改此目錄下的文件列表;即創(chuàng)建或刪除文件;
x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
這些位數(shù)固定,顯示字母則代表有這個權限,顯示-則代表沒有,譬如rw-r--r--則代表屬主擁有寫和讀的權限屬組和其他則只有讀權限
每三位代表一類用戶的權限r(nóng)wx 因為這個有就是有沒有就是-所以我們也可以以二進制0代表沒有,
1代表有組成一個三位二進制數(shù),所以可以用這三位二進制把權限表示為7種情況
權限組合機制:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
結合我們的三種用戶類型一起譬如rw-rw-r--則可以表示為660
權限管理命令:
chmod命令:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE...
三類用戶:
u:屬主
g:屬組
o:其它
a: 所有
(1) chmod [OPTION]... MODE[,MODE]... FILE...
MODE表示法:
賦權表示法:直接操作一類用戶的所有權限位rwx;
u=
g=
o=
a=
授權表示法:直接操作一類用戶的一個權限位r,w,x;
u+, u-
g+, g-
o+, o-
a+, a-
(2) chmod [OPTION]... OCTAL-MODE FILE...
(3) chmod [OPTION]... --reference=RFILE FILE...
選項:
-R, --recursive:遞歸修改
注意:用戶僅能修改屬主為自己的那些文件的權限;
從屬關系管理命令:chown, chgrp
chown命令:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
選項:
-R:遞歸修改
chgrp命令:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注意:僅管理員可修改文件的屬主和屬組;
到了這里我們會發(fā)現(xiàn)那我們會想說那直接創(chuàng)建一個文件或目錄它會直接有一個權限,那這個權限是怎么來的呢
linux自帶有一個umask:文件權限的反向掩碼;創(chuàng)建文件會使用這個掩碼來得出文件的權限
文件:
666-umask
目錄:
777-umask
之所以文件是用666去減是因為,前面說了文件默人不能擁有執(zhí)行權限;
那如果說比如666-023是等于643?因為默認沒有執(zhí)行權限所以如果結果中有執(zhí)行權限就將結果加1,所以前面的為644;
umask命令:
umask:查看當前umask
umask MASK: 設置umask
注意:此類設定僅對當前shell進程有效;
以上就是我對Linux用戶與組管理權限的了解,剛剛學習,寫的不好請指導;
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。