您好,登錄后才能下訂單哦!
第一次寫博客因培訓老師建議寫博客增強自己的學習能力,我也覺得有些道理,及開通博客,嘗試寫一下。
也希望大牛看到不要噴哈哈哈哈哈,歡迎指導,謝謝。
1、用戶
每個用戶即為每個使用者,對應的一組用戶標識碼、密碼 從而識別為一個用戶。
而組即為用戶的一個容器,讓用戶裝在里面。
用戶類別分為兩種:管理員與普通用戶。
普通用戶有:
系統用戶
登錄用戶
用戶標識:userID,UID:
因為機器需要識別用戶 但是機器只認數字所以有了UID
UID由16位二進制數字組成表示0-65535 共65536個
其中管理員為0
普通用戶為1-65535
其中普通用戶中的系統用戶在centos6中為1-499,centos7中為1-999
登錄用戶在centos6中為500-60000,centos7中為1000-60000
但是這個不利于人的記憶,人容易記住的是字符串,但是機器識別不了所以有了名稱解析用來轉換username與uid,所以linux有個解析庫就用來查找username與uid之間的轉換,/etc/passwd
2、組
同樣的組也分兩類:管理員組和普通用戶組
普通用戶組也分:
系統組
登陸組
組標識:groupID,GID
與用戶標識相同
同樣的也有名稱解析,解析庫為/etc/group
第二種組類別分法,即用戶的基本組和附加組,一個用戶可以在多個組里面,但有個最主要的組就叫基本組,在的其他組就是附加組。就如同你本身在這個1部門工作,臨時去2部門幫忙1就是你的基本組2就是你的附加組
第三種組類別分法,私有組和公共組,私有組表示與用戶同名且組內只有這一個用戶即為私有組,公共組則表示有多個用戶存在,但這個分法沒有實際意義。
3、安全上下文
進程會以發起者的身份運行;
進程對文件的訪問權限,取決與發起此進程的用戶權限,即這個進程能做什么取決于用戶權限有什么;
系統用戶:
講到安全上下文就要說到我們一開機即會啟動一大堆的進程,那這些進程都是以什么身份啟動,這就是系統用戶的作用,為了讓后臺進程或服務類進程以非管理員的身份運行,且通常一個用戶只干一件事,所以通常需要為此創建多個系統用戶;但是這類用戶從不用登錄系統;
3、用戶與組的常用命令
groupadd:添加組;
用法:group [選項] group_name
選項:
-g:指定GID;沒有指定即默認為上一個添加的組的GID+1;
-r:創建系統組;
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此目錄并重命名實現;指定的家目錄路徑如果事先存在,則不會為用戶復制環境配置文件;
-s, --shell SHELL:指定用戶的默認shell,可用的所有shell列表存儲在/etc/shells文件中;
-r, --system:創建系統用戶;
注意:直接useradd默認屬性創建的用戶諸多默認設定配置文件為/etc/login.defs
useradd -D:顯示創建用戶的默認配置;
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]
-: 會模擬用戶重新登錄以實現重新初始化其工作環境;
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':僅以指定用戶的身份運行此處指定的命令;
權限管理:
文件權限分為三類:
屬主:即一個用戶,這個用戶對這個文件的權限
屬組:即一個組,在這個組之下的用戶對這個文件的權限
其他:即除了屬主與屬組以外的用戶對這個文件的權限
前面有講到安全上下文是一個進程對文件的權限取決于發起這個用戶的權限,那他對文件訪問權限的應用模型是什么呢:
進程的屬主與文件的屬主是否相同;如果相同,則應用屬主權限;
否則,則檢查進程的屬主是否屬于文件的屬組;如果是,則應用屬組權限;
否則,就只能應用other的權限;
權限:
我們隨便ls -l一個文件-rwxrw-r--. 1 root root 第一個-表示文件類型 后面9位表示擁有的權限,
-則代表沒有這個權限,rwx分代表一個權限,第一個root表示他的屬主,第二代表他的屬組
左三位:定義user(owner)的權限
中三位:定義group的權限;
右三位:定義other的權限
文件權限:
r:readable, 讀
w:writable, 寫
x:excutable,執行
注意:文件默認沒有執行權限,如果文件不是可執行文件任何用戶不能擁有執行權限,否則可能會報錯!
目錄權限:
r:可使用ls命令獲取其下的所有文件列表;
w: 可修改此目錄下的文件列表;即創建或刪除文件;
x: 可cd至此目錄中,且可使用ls -l來獲取所有文件的詳細屬性信息;
這些位數固定,顯示字母則代表有這個權限,顯示-則代表沒有,譬如rw-r--r--則代表屬主擁有寫和讀的權限屬組和其他則只有讀權限
每三位代表一類用戶的權限rwx 因為這個有就是有沒有就是-所以我們也可以以二進制0代表沒有,
1代表有組成一個三位二進制數,所以可以用這三位二進制把權限表示為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...
注意:僅管理員可修改文件的屬主和屬組;
到了這里我們會發現那我們會想說那直接創建一個文件或目錄它會直接有一個權限,那這個權限是怎么來的呢
linux自帶有一個umask:文件權限的反向掩碼;創建文件會使用這個掩碼來得出文件的權限
文件:
666-umask
目錄:
777-umask
之所以文件是用666去減是因為,前面說了文件默人不能擁有執行權限;
那如果說比如666-023是等于643?因為默認沒有執行權限所以如果結果中有執行權限就將結果加1,所以前面的為644;
umask命令:
umask:查看當前umask
umask MASK: 設置umask
注意:此類設定僅對當前shell進程有效;
以上就是我對Linux用戶與組管理權限的了解,剛剛學習,寫的不好請指導;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。