Linux云計(jì)算-04_Linux用戶及權(quán)限管理

Linux是一個(gè)多用戶的操作系統(tǒng),引入用戶,可以更加方便管理Linux服務(wù)器,系統(tǒng)默認(rèn)需要以一個(gè)用戶的身份登錄,而且在系統(tǒng)上啟動(dòng)進(jìn)程也需要以一個(gè)用戶身份器運(yùn)行,用戶可以限制某些進(jìn)程對(duì)特定資源的權(quán)限控制。

本章介紹Linux系統(tǒng)如何管理創(chuàng)建、刪除、修改用戶角色、用戶權(quán)限配置、組權(quán)限配置及特殊權(quán)限深入剖析。

1 Linux用戶及組

Linux操作系統(tǒng)對(duì)多用戶的管理,是非常繁瑣的,所以用組的概念來(lái)管理用戶就變得簡(jiǎn)單,每個(gè)用戶可以在一個(gè)獨(dú)立的組,每個(gè)組也可以有零個(gè)用戶或者多個(gè)用戶。

Linux系統(tǒng)用戶是根據(jù)用戶ID來(lái)識(shí)別的,默認(rèn)ID長(zhǎng)度為32位,默認(rèn)ID編號(hào)從0開(kāi)始,但是為了和老式系統(tǒng)兼容,用戶ID限制在60000以下,Linux用戶分總共分為三種,分別如下:

  • root用戶 (ID 0)
  • 系統(tǒng)用戶 (ID 1-499)
  • 普通用戶 (ID 500以上)

Linux系統(tǒng)中的每個(gè)文件或者文件夾,都有一個(gè)所屬用戶及所屬組,使用id命令可以顯示當(dāng)前用戶的信息,使用passwd命令可以修改當(dāng)前用戶密碼。Linux操作系統(tǒng)用戶的特點(diǎn)如下:

  • 每個(gè)用戶擁有一個(gè)UserID,操作系統(tǒng)實(shí)際讀取的是UID,而非用戶名;
  • 每個(gè)用戶屬于一個(gè)主組,屬于一個(gè)或多個(gè)附屬組,一個(gè)用戶最多有31個(gè)附屬組;
  • 每個(gè)組擁有一個(gè)GroupID;
  • 每個(gè)進(jìn)程以一個(gè)用戶身份運(yùn)行,該用戶可對(duì)進(jìn)程擁有資源控制權(quán)限;
  • 每個(gè)可登陸用戶擁有一個(gè)指定的Shell環(huán)境。

2 Linux用戶管理

Linux用戶在操作系統(tǒng)可以進(jìn)行日常管理和維護(hù),涉及到的相關(guān)配置文件如下:

  • /etc/passwd 保存用戶信息
  • /etc/shdaow 保存用戶密碼(以加密形式保存)
  • /etc/group 保存組信息
  • /etc/login.defs 用戶屬性限制,密碼過(guò)期時(shí)間,密碼最大長(zhǎng)度等限制
  • /etc/default/useradd 顯示或更改默認(rèn)的useradd配置文件

如需創(chuàng)建新用戶,可以使用命令useradd,執(zhí)行命令useradd superman即可創(chuàng)建superman用戶,同時(shí)會(huì)創(chuàng)建一個(gè)同名的組superman,默認(rèn)該用戶屬于superman主組。

useradd superman命令默認(rèn)創(chuàng)建用戶superman,會(huì)根據(jù)如下步驟進(jìn)行操作:

  • 在/etc/passwd文件中添加用戶信息;
  • 如使用passwd命令創(chuàng)建密碼,密碼會(huì)被加密保存在/etc/shdaow中;
  • 為superman創(chuàng)建家目錄:/home/superman;
  • 將/etc/skel中的.bash開(kāi)頭的文件復(fù)制至/home/superman家目錄;
  • 創(chuàng)建與用戶名相同的superman組,superman用戶默認(rèn)屬于superman同名組;
  • superman組信息保存在/etc/group配置文件中。

在使用useradd命令創(chuàng)建用戶時(shí),可以支持如下參數(shù):

用法:useradd [選項(xiàng)] 登錄
useradd -D
useradd -D [選項(xiàng)]
選項(xiàng):
-b, --base-dir BASE_DIR                 指定新賬戶的家目錄;
-c, --comment COMMENT                   新賬戶的GECOS字段;
-d, --home-dir HOME_DIR                 新賬戶的主目錄;
-D, --defaults                          顯示或更改默認(rèn)的useradd配置;
-e, --expiredate EXPIRE_DATE            新賬戶的過(guò)期日期;
-f, --inactive INACTIVE                 新賬戶的密碼不活動(dòng)期;
-g, --gid GROUP                         新賬戶主組的名稱或ID;
-G, --groups GROUPS                     新賬戶的附加組列表;
-h, --help                              顯示此幫助信息并推出;
-k, --skel SKEL_DIR                     使用此目錄作為骨架目錄;
-K, --key KEY=VALUE                     不使用/etc/login.defs中的默認(rèn)值;
-l, --no-log-init                       不要將此用戶添加到最近登錄和登錄失敗數(shù)據(jù)庫(kù);
-m, --create-home                       創(chuàng)建用戶的主目錄;
-M, --no-create-home                    不創(chuàng)建用戶的主目錄;
-N, --no-user-group                     不創(chuàng)建同名的組;
-o, --non-unique                        允許使用重復(fù)的UID創(chuàng)建用戶;
-p, --password  PASSWORD                加密后的新賬戶密碼;
-r, --system                            創(chuàng)建一個(gè)系統(tǒng)賬戶;
-R, --root CHROOT_DIR                   chroot到的目錄;
-s, --shell SHELL                       新賬戶的登錄shell;
-u, --uid UID                           新賬戶的用戶ID;
-U, --user-group                        創(chuàng)建與用戶同名的組;
-Z, --selinux-user SEUSER               為SELinux用戶映射使用指定SEUSER。

2.1 useradd案例演示

1、新建superman2用戶,并加入到superman,superman1附屬組

[root@superman-vm01 ~]# useradd -G superman,superman1 superman2
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cat /etc/passwd|grep superman2
superman2:x:1001:1002::/home/superman2:/bin/bash
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# id superman2
uid=1001(superman2) gid=1002(superman2) groups=1002(superman2),1000(superman),1001(superman1)
[root@superman-vm01 ~]# 

2、新建superman3用戶,并指定新的家目錄,同時(shí)指定其登陸的SHELL

[root@superman-vm01 ~]# useradd superman3 -d /data/superman3 -s /bin/bash   
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cat /etc/passwd|grep superman3
superman3:x:1002:1003::/data/superman3:/bin/bash
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# id superman3
uid=1002(superman3) gid=1003(superman3) groups=1003(superman3)
[root@superman-vm01 ~]# 

3 Linux組管理

所有的Linux或者Windows系統(tǒng)都有組的概念,通過(guò)組可以更加方便的管理用戶,組的概念應(yīng)用于各行各業(yè),例如企業(yè)會(huì)使用部門、職能或地理區(qū)域的分類方式來(lái)管理成員,應(yīng)用在Linux系統(tǒng),同樣可以創(chuàng)建用戶,并用組的概念對(duì)其管理。

Linux組有如下特點(diǎn):

  • 每個(gè)組有一個(gè)組ID;
  • 組信息保存在/etc/group中;
  • 每個(gè)用戶至少擁有一個(gè)主組,同時(shí)還可以擁有31個(gè)附屬組。

通過(guò)命令groupadd、groupdel、groupmod來(lái)對(duì)組進(jìn)行管理,詳細(xì)參數(shù)使用如下:

groupadd用法
-f, --force                     如果組已經(jīng)存在則成功退出;
                                并且如果 GID 已經(jīng)存在則取消 –g;
-g, --gid GID                   為新組使用GID;
-h, --help                      顯示此幫助信息并推出;
-K, --key KEY=VALUE             不使用/etc/login.defs中的默認(rèn)值;
-o, --non-unique                允許創(chuàng)建有重復(fù)GID的組;
-p, --password PASSWORD         為新組使用此加密過(guò)的密碼;
-r, --system                    創(chuàng)建一個(gè)系統(tǒng)賬戶;

groupmod用法      
-g, --gid GID                   將組ID改為GID;
-h, --help                      顯示此幫助信息并推出;
-n, --new-name NEW_GROUP        改名為NEW_GROUP;
-o, --non-unique                允許使用重復(fù)的GID;
-p, --password PASSWORD         將密碼更改為(加密過(guò)的)PASSWORD;

groupdel用法
groupdel superman                  刪除superman組; 

3.1 組管理案例演示

1、groupadd創(chuàng)建hanxiao組

[root@superman-vm01 ~]# groupadd hanxiao
[root@superman-vm01 ~]# 

2、groupadd創(chuàng)建hanxiao組,并指定GID為1010

[root@superman-vm01 ~]# groupadd -g 1010 hanxiao1
[root@superman-vm01 ~]# 

3、groupadd創(chuàng)建一個(gè)system組,名為hanxiao2組

[root@superman-vm01 ~]# groupadd -r hanxiao2 
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat /etc/group|grep hanxiao2
hanxiao2:x:982:
[root@superman-vm01 ~]# 

4、groupmod修改組名稱,將hanxiao組名,改成hanxiao1

[root@superman-vm01 ~]# groupmod -n hanxiao3 hanxiao
[root@superman-vm01 ~]# 

5、groupmod修改組GID號(hào),將原h(huán)anxiao1組gid改成gid 1020

[root@superman-vm01 ~]# cat /etc/group|grep hanxiao1
hanxiao1:x:1010:
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# groupmod -g 1020 hanxiao1
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cat /etc/group|grep hanxiao1
hanxiao1:x:1020:
[root@superman-vm01 ~]# 

4 Linux用戶及組案例

useradd主要用于新建用戶,而用戶新建完畢,可以使用usermod來(lái)修改用戶及組的屬性,如下為usermod詳細(xì)參數(shù):

用法:usermod [選項(xiàng)] 登錄
選項(xiàng):
-c, --comment 注釋                   GECOS字段的新值;
-d, --home HOME_DIR                 用戶的新主目錄;
-e, --expiredate EXPIRE_DATE        設(shè)定帳戶過(guò)期的日期為EXPIRE_DATE;
-f, --inactive INACTIVE             過(guò)期INACTIVE天數(shù)后,設(shè)定密碼為失效狀態(tài);
-g, --gid GROUP                     強(qiáng)制使用GROUP為新主組;
-G, --groups GROUPS                 新的附加組列表GROUPS;
-a, --append GROUP                  將用戶追加至上邊-G中提到的附加組中,
                                    并不從其它組中刪除此用戶;
-h, --help                          顯示此幫助信息并推出;
-l, --login LOGIN                   新的登錄名稱;
-L, --lock                          鎖定用戶帳號(hào);
-m, --move-home                     將家目錄內(nèi)容移至新位置 (僅于-d一起使用);
-o, --non-unique                    允許使用重復(fù)的(非唯一的)UID;
-p, --password PASSWORD             將加密過(guò)的密碼(PASSWORD)設(shè)為新密碼;
-R, --root CHROOT_DIR               chroot到的目錄;
-s, --shell SHELL                   該用戶帳號(hào)的新登錄shell環(huán)境;
-u, --uid UID                       用戶帳號(hào)的新UID;
-U, --unlock                        解鎖用戶帳號(hào);
-Z, --selinux-user  SEUSER          用戶賬戶的新SELinux用戶映射。

4.1 usermod案例演示

1、將superman用戶屬組修改為superman,superman2附屬組;

[root@superman-vm01 ~]# id superman
uid=1000(superman) gid=1000(superman) groups=1000(superman)
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# usermod -G superman,superman2 superman 
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# id superman
uid=1000(superman) gid=1000(superman) groups=1000(superman),1002(superman2)
[root@superman-vm01 ~]#   

2、將superman用戶加入到superman3,superman4附屬組,-a為添加新組,原組保留;

[root@superman-vm01 ~]# id superman
uid=1000(superman) gid=1000(superman) groups=1000(superman),1002(superman2)
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# usermod -a -G superman3,superman4 superman  
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# id superman
uid=1000(superman) gid=1000(superman) groups=1000(superman),1002(superman2),1003(superman3),1021(superman4)
[root@superman-vm01 ~]# 

3、修改superman用戶,并指定新的家目錄,同時(shí)指定其登陸的SHELL;

[root@superman-vm01 ~]# cat /etc/passwd|grep superman
superman:x:1000:1000:superman:/home/superman:/bin/bash
superman2:x:1001:1002::/home/superman2:/bin/bash
superman3:x:1002:1003::/data/superman3:/bin/bash
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# usermod -d /tmp/ -s /bin/sh superman
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cat /etc/passwd|grep superman       
superman:x:1000:1000:superman:/tmp/:/bin/sh
superman2:x:1001:1002::/home/superman2:/bin/bash
superman3:x:1002:1003::/data/superman3:/bin/bash
[root@superman-vm01 ~]#   

4、 將superman用戶名修改為superman;

[root@superman-vm01 ~]# cat /etc/passwd|grep superman       
superman:x:1000:1000:superman:/tmp/:/bin/sh
superman2:x:1001:1002::/home/superman2:/bin/bash
superman3:x:1002:1003::/data/superman3:/bin/bash
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# usermod -l hanxiao superman 
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cat /etc/passwd|grep superman
superman2:x:1001:1002::/home/superman2:/bin/bash
superman3:x:1002:1003::/data/superman3:/bin/bash
hanxiao:x:1000:1000:superman:/tmp/:/bin/sh
[root@superman-vm01 ~]#  

5、鎖定superman用戶及解鎖superman用戶方法;

[root@superman-vm01 ~]# usermod -L superman2         
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# su - superman2
Last login: Thu Jul  8 07:41:18 CST 2021 on pts/0
[superman2@superman-vm01 ~]$ 
[superman2@superman-vm01 ~]$ su - superman2
Password: 
su: Authentication failure
[superman2@superman-vm01 ~]$ exit
logout
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# usermod -U superman2
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# su - superman2
Last login: Thu Jul  8 07:42:49 CST 2021 on pts/0
Last failed login: Thu Jul  8 07:43:16 CST 2021 on pts/0
There were 2 failed login attempts since the last successful login.
[superman2@superman-vm01 ~]$ 
[superman2@superman-vm01 ~]$ su - superman2
Password: 
Last login: Thu Jul  8 07:43:29 CST 2021 on pts/0
[superman2@superman-vm01 ~]$ 

4.2 userdel案例演示

使用userdel可以刪除指定用戶及其用戶的郵箱目錄或者Selinux映射環(huán)境:

  • userdel superman 保留用戶的家目錄;
  • userdel –r superman 刪除用戶及用戶家目錄,用戶login系統(tǒng)無(wú)法刪除;
  • userdel –rf superman 強(qiáng)制刪除用戶及該用戶家目錄,不論是否login系統(tǒng)。

5 Linux權(quán)限管理

Linux權(quán)限是操作系統(tǒng)用來(lái)限制對(duì)資源訪問(wèn)的機(jī)制,權(quán)限一般分為讀、寫(xiě)、執(zhí)行。系統(tǒng)中每個(gè)文件都擁有特定的權(quán)限、所屬用戶及所屬組,通過(guò)這樣的機(jī)制來(lái)限制哪些用戶或用戶組可以對(duì)特定文件進(jìn)行相應(yīng)的操作。

Linux每個(gè)進(jìn)程都是以某個(gè)用戶身份運(yùn)行,進(jìn)程的權(quán)限與該用戶的權(quán)限一樣,用戶的權(quán)限越大,則進(jìn)程擁有的權(quán)限就越大。

Lnux中有的文件及文件夾都有至少三種權(quán)限,常見(jiàn)的權(quán)限如表所示:

權(quán)限 對(duì)文件的影響 對(duì)目錄的影響
r(讀取) 可讀取文件內(nèi)容 可列出目錄內(nèi)容
w(寫(xiě)入) 可修改文件內(nèi)容 可在目錄中創(chuàng)建刪除內(nèi)容
x(執(zhí)行) 可作為命令執(zhí)行 可訪問(wèn)目錄內(nèi)容
目錄必須擁有x權(quán)限,否則無(wú)法查看其內(nèi)容

Linux權(quán)限授權(quán),默認(rèn)是授權(quán)給三種角色,分別是user、group、other,Linux權(quán)限與用戶之間的關(guān)聯(lián)如下:

  • U代表User,G代表Group,O代表Other;
  • 每個(gè)文件的權(quán)限基于UGO進(jìn)行設(shè)置;
  • 權(quán)限三位一組(rwx),同時(shí)需授權(quán)給三種角色,UGO;
  • 每個(gè)文件擁有一個(gè)所屬用戶和所屬組,對(duì)應(yīng)UGO,不屬于該文件所屬用戶或所屬組使用O來(lái)表示;

在Linux系統(tǒng)中,可以通過(guò)ls –l查看目錄的詳細(xì)屬性,如下所示:

[root@superman-vm01 ~]# ls -l /home
drwxr-xr-x  2 superman superman       15 Jul  7 07:27 superman

shuchaoyang目錄屬性參數(shù)詳解如下:

  • d 表示目錄,同一位置如果為-則表示普通文件;
  • rwxrwxr-x 表示三種角色的權(quán)限,每三位為一種角色,依次為u,g,o權(quán)限,如上則表示user的權(quán)限為rwx,group的權(quán)限為r-x,other的權(quán)限為r-x;
  • 2表示文件夾的鏈接數(shù)量,可理解為該目錄下子目錄的數(shù)量;
  • 從左到右,第一個(gè)superman表示該用戶名,第二個(gè)superman則為組名,其它人角色默認(rèn)不顯示;
  • 15表示該文件夾占據(jù)的字節(jié)數(shù);
  • Jul 7 07:27表示文件創(chuàng)建或者修改的時(shí)間;
  • 最右邊的superman為目錄的名,或者文件名。

6 Chown屬主及屬組

修改某個(gè)用戶、組對(duì)文件夾的屬主及屬組,用命令chown實(shí)現(xiàn),案例演示如下:

1、修改superman文件夾所屬的用戶為root,其中-R參數(shù)表示遞歸處理所有的文件及子目錄。

[root@superman-vm01 ~]# cd /home
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# chown -R root superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 root superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

2、修改superman文件夾所屬的組為root。

[root@superman-vm01 home]# ll
total 0
drwx------ 3 root superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chown -R :root superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 root root 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

或者
[root@superman-vm01 home]# ll
total 0
drwx------ 3 root superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chgrp -R root superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 root root 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

3、修改superman文件夾所屬的用戶為superman,組也為superman。

[root@superman-vm01 home]# ll
total 0
drwx------ 3 root root 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chown -R superman:superman superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

7 Chmod用戶及組權(quán)限

修改某個(gè)用戶、組對(duì)文件夾的權(quán)限,用命令chmod實(shí)現(xiàn),其中以代指ugo,、-、=代表加入、刪除和等于對(duì)應(yīng)權(quán)限,具體案例如下:

1、授予用戶對(duì)superman目錄擁有x權(quán)限

[root@superman-vm01 home]# ll
total 0
drw------- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R u+x superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwx------ 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#  

2、授予組對(duì)superman目錄擁有rwx權(quán)限

[root@superman-vm01 home]# ll
total 0
drwx------ 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R g+rwx superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwxrwx--- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#  

3、授予用戶、組、其它人對(duì)superman目錄擁有rwx權(quán)限

[root@superman-vm01 home]# ll
total 0
d--------- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R u+rwx,g+rwx,o+rwx superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwxrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

4、撤銷用戶對(duì)superman目錄擁有w權(quán)限

[root@superman-vm01 home]# ll
total 0
drwxrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R u-w superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
dr-xrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#  

5、撤銷用戶、組、其它人對(duì)superman目錄擁有x權(quán)限

[root@superman-vm01 home]# ll
total 0
dr-xrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R u-x,g-x,o-x superman  
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
dr--rw-rw- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#  

6、授予用戶、組、其它人對(duì)superman目錄只有rx權(quán)限

[root@superman-vm01 home]# ll
total 0
dr--rw-rw- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R u=rx,g=rx,o=rx superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

8 Chmod二進(jìn)制權(quán)限

Linux權(quán)限默認(rèn)使用rwx來(lái)表示,為了更簡(jiǎn)化在系統(tǒng)中對(duì)權(quán)限進(jìn)行配置和修改,Linux權(quán)限引入二進(jìn)制表示方法,如下代碼:

Linux權(quán)限可以將rwx用二進(jìn)制來(lái)表示,其中有權(quán)限用1表示,沒(méi)有權(quán)限用0表示; Linux權(quán)限用二進(jìn)制顯示如下: rwx=111 r-x=101 rw-=110 r--=100 依次類推,轉(zhuǎn)化為十進(jìn)制,對(duì)應(yīng)十進(jìn)制結(jié)果顯示如下: rwx=111=4+2+1=7 r-x=101=4+0+1=5 rw-=110=4+4+0=6 r--=100=4+0+0=4 得出結(jié)論,用r=4,w=2,x=1來(lái)表示權(quán)限。

使用二進(jìn)制方式來(lái)修改權(quán)限案例演示如下,其中默認(rèn)superman目錄權(quán)限為755:

1、授予用戶對(duì)superman目錄擁有rwx權(quán)限

[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 755 superman  
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwxr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

2、授予組對(duì)superman目錄擁有rwx權(quán)限

[root@superman-vm01 home]# ll
total 0
drwxr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 775 superman  
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwxrwxr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

3、授予用戶、組、其它人對(duì)superman目錄擁有rwx權(quán)限

[root@superman-vm01 home]# ll
total 0
drwxrwxr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 777 superman  
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwxrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 

4、撤銷用戶對(duì)superman目錄擁有w權(quán)限

[root@superman-vm01 home]# ll
total 0
drwxrwxrwx 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 555 superman  
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]

5、撤銷用戶、組、其它人對(duì)superman目錄擁有x權(quán)限

[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 644 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drw-r--r-- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#

6、授予用戶、組、其它人對(duì)superman目錄只有rx權(quán)限

[root@superman-vm01 home]# ll
total 0
drw-r--r-- 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod -R 555 superman 
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#

9 Linux特殊權(quán)限及掩碼

Linux權(quán)限除了常見(jiàn)的rwx權(quán)限之外,還有很多特殊的權(quán)限,細(xì)心的讀者會(huì)發(fā)現(xiàn),為什么Linux目錄默認(rèn)權(quán)限755,而文件默認(rèn)權(quán)限為644呢,這是因?yàn)長(zhǎng)inux權(quán)限掩碼umask導(dǎo)致。

每個(gè)Linux終端都擁有一個(gè)umask屬性,umask熟悉可以用來(lái)確定新建文件、目錄的默認(rèn)權(quán)限,默認(rèn)系統(tǒng)權(quán)限掩碼為022。在系統(tǒng)中每創(chuàng)建一個(gè)文件或者目錄,文件默認(rèn)權(quán)限是666,而目錄權(quán)限則為777,權(quán)限對(duì)外開(kāi)放比較大,所以設(shè)置了權(quán)限掩碼之后,默認(rèn)的文件和目錄權(quán)限減去umask值才是真實(shí)的文件和目錄的權(quán)限。

  • 對(duì)應(yīng)目錄權(quán)限為:777-022=755;
  • 對(duì)應(yīng)文件權(quán)限為:666-022=644;
  • 執(zhí)行umask命令可以查看當(dāng)前默認(rèn)的掩碼,umask -S 023可以設(shè)置默認(rèn)的權(quán)限掩碼。

在Linux權(quán)限中,除了普通權(quán)限外,還有如下表所示,三個(gè)特殊權(quán)限:

權(quán)限 對(duì)文件的影響 對(duì)目錄的影響
suid 以文件的所屬用戶身份執(zhí)行,而非執(zhí)行文件的用戶 無(wú)
sgid 以文件所屬組身份去執(zhí)行 在該目錄中創(chuàng)建任意新文件的所屬組與該目錄的所屬組相同
sticky 無(wú) 對(duì)目錄擁有寫(xiě)入權(quán)限的用戶僅可以刪除其擁有的文件,無(wú)法刪除其它用戶所擁有的文件

Linux中設(shè)置特殊權(quán)限方法如下:

  • 設(shè)置suid: chmod u+s superman
  • 設(shè)置sgid: chmod g+s superman
  • 設(shè)置sticky: chmod o+t superman

特殊權(quán)限與設(shè)置普通權(quán)限一樣,可以使用數(shù)字方式表示:

  • SUID = 4
  • SGID = 2
  • Sticky = 1

可以通過(guò)chmod 4755 superman對(duì)該目錄授予特殊權(quán)限為s的權(quán)限,Linux系統(tǒng)中s權(quán)限的應(yīng)用常見(jiàn)包括:su、passwd、sudo

[root@superman-vm01 home]# ll
total 0
dr-xr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# chmod 4755 superman
[root@superman-vm01 home]# 
[root@superman-vm01 home]# ll
total 0
drwsr-xr-x 3 superman superman 78 Jul  9 05:57 superman
[root@superman-vm01 home]#
[root@superman-vm01 ~]# ll /usr/bin/su
-rwsr-xr-x. 1 root root 32208 Oct 31  2018 /usr/bin/su
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# ll /usr/bin/sudo
---s--x--x. 1 root root 147392 Oct 31  2018 /usr/bin/sudo
[root@superman-vm01 ~]# 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,716評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 178,746評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,991評(píng)論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,706評(píng)論 6 413
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 56,036評(píng)論 1 329
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 43,203評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,725評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,451評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,677評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,857評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 35,266評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,606評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,407評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,643評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容