Linux/Centos7賬號與權限管理(超詳細實例操作)

Linux/Centos7賬號與權限管理

  1. 管理用戶賬號、組賬號
  2. 查詢賬號信息
  3. 設置文件和目錄的權限
  4. 設置文件和目錄的歸屬

一、前言概述

​ 作爲多用戶、多任務(Multi-Users,Multi-tasks)的服務器操作系統,Linux提供了嚴格的權限管理機制,主要從用戶身份、文件權限兩個方面對資源進行限制。Linux基於用戶身份對資源訪問進行控制。

  • 用戶賬號類別:
  1. 超級用戶——root,權限最高
  2. 普通用戶——自定義用戶 匿名用戶(nobody)類似於Windows中的Guest
  3. 程序用戶——控制程序和服務的,無法登陸
  • 組賬號——用戶的集合(其實可以認爲是用戶權限的集合)
  1. 基本組(私有組)——伴隨着用戶創建而創建 與用戶同名(也可以自己設置) 但創建一個用戶的時候必有其組
  2. 附加組(公有組)——直接創建空組,可以添加已有的用戶,給組設置權限,該組中所有用戶都具備此權限
  • UID和GID
  1. UID(User IDentity) ——用戶標識號 (默認情況下0表示root 1~999 表示(系統)程序用戶 1000~60000 表示(登錄)普通用戶)
  2. GID(Group IDentity)——組標識號

Linux/Centos7賬號與權限管理(超詳細實例操作)


二、用戶賬號文件

/etc/passwd——保存用戶名稱、宿主目錄、登錄shell等基本信息

[root@lokott ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

root​:x:​0:0:root:/root:/bin/bash——以冒號分隔 下面進行逐一解釋

  1. root——用戶賬號名稱
  2. x——使用加密算法加密的密碼,這裏是不會顯示的
  3. 0——用戶UID號
  4. 0——所屬基本組賬號的UID
  5. root——用戶全名,可以填寫用戶詳細信息
  6. /root——宿主目錄
  7. /bin/bash——指定用戶的登錄Shell

/etc/shadow——保存用戶的密碼、賬號有效等信息

[root@lokott ~]# head -2 /etc/shadow   //查看頭兩行信息
root:$6$P0mVYDgJo8HZnZWl$oYlITJyv.hP.6wS/OCuAdc61QoWTkYJMcONdy9aAjRW4Cpmc5Mor40xn/RiZ9Hi1PzhVoX5Chur4VfFB8JmKO1::0:99999:7:::
bin:*:17110:0:99999:7:::
[root@lokott ~]# 

root:$6$P0mVYDgJo8HZnZWl$oYlITJyv.hP.6wS/OCuAdc61QoWTkYJMcONdy9aAjRW4Cpmc5Mor40xn/RiZ9Hi1PzhVoX5Chur4VfFB8JmKO1::0:99999:7:::——以冒號分隔,下面逐一解釋

  1. root——用戶賬號名稱

  2. 粗體部分——表示加密算法加密的密碼,登錄輸入該密碼是無效的

  3. ::——之間的內容是上次修改時間

  4. 0——密碼的最短有效天數(0表示隨時可以更改)

  5. 99999——密碼的最長有效天數

  6. 7——提前7天提醒用戶口令將過期

    :::——表示的是密碼和賬號過期之後的操作處理(基本可以忽略)

二、管理用戶賬號

1.添加用戶賬號——useradd命令

選項

  1. -u ——指定用戶的UID號,且該UID號沒有被其他用戶使用
  2. -d ——指定用戶的宿主目錄位置(與-M一起使用時不生效!)
  3. -e——賬號失效時間(過期時間)
  4. -g——基本組
  5. -G——附加組
  6. -M——不創家目錄
  7. -s ——指定用戶的登錄shell

實例:useradd -d /opt/mike (-g mike) -G caiwu -s /sbin/nologin mike

[root@lokott ~]# useradd -d /opt/mike  -G caiwu -s /sbin/nolgin mike //注意需要先有caiwu組——groupadd caiwu
[root@lokott ~]# tail -2 /etc/passwd    //查看passwd文件最後兩行信息
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
mike:x:1001:1001::/opt/mike:/sbin/nolgin
[root@lokott ~]# tail -2 /etc/group
caiwu:x:1002:mike
mike:x:1001:
[root@lokott ~]# tail -2 /etc/shadow
lokott:$6$aq3AU9oDZf/ERE2D$Ol.zBTLNqbsPDdsJYE0yU3Wa7EUU1SonR3rUQ616PsgA2u.DtQ99ecTUbdw2y2RhmlaL75WlcqMsfEUNretgb0:18192:0:99999:7:::
mike:!!:18200:0:99999:7:::
[root@lokott ~]# id mike    //查看mike的id信息
uid=1001(mike) gid=1001(mike) 組=1001(mike),1002(caiwu)
[root@lokott ~]# ls /home/  //因爲-d 指定了用戶的宿主目錄,所以家目錄創建在了指定的/opt/mike目錄中
demo  lokott
[root@lokott ~]# ls /opt/
demo01.txt  mike  rh  test
[root@lokott ~]#

2.設置/更改用戶口令(密碼)passwd

passwd 選項 .... 用戶名

  1. -d 清除密碼
  2. -l 鎖定
  3. -S 查看是否鎖還是未鎖 (大寫!!!)
  4. -u 解鎖
[root@lokott ~]# useradd -d /opt/lisi -s /sbin/nologin lisi
[root@lokott ~]# tail -2 /etc/passwd
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1001::/opt/lisi:/sbin/nologin   //這裏/sbin/nologin是表示用戶無法登錄
[root@lokott ~]# passwd lisi
更改用戶 lisi 的密碼 。
新的 密碼:                                           //需要你輸入密碼
無效的密碼: 密碼少於 8 個字符           //因爲輸入了簡單密碼,可以繼續輸入一次也行,當然複雜密碼就沒問題
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
[root@lokott ~]# su - lisi
最後一次失敗的登錄:四 10月 31 18:49:45 CST 2019從 :1:1 上
最有一次成功登錄後有 1 次失敗的登錄嘗試。
This account is currently not available.  // 無法登錄,因爲登錄的shell是/sbin/nologin
[root@lokott ~]# pwd
/root
[root@lokott ~]# vim /etc/passwd              //進入passwd文件中將該用戶的/sbin/nologin改爲/bin/bash
[root@lokott ~]# su - lisi                          //root切換用戶時不需要輸入密碼
上一次登錄:四 10月 31 18:52:42 CST 2019pts/2 上
[lisi@lokott ~]$ pwd                               //登錄lisi用戶
/opt/lisi
[lisi@lokott ~]$ su   //相當於su - root  下面的結果表明普通用戶切換root時需要密碼,輸入的密碼不會顯示
密碼:
[root@lokott lisi]# pwd
/opt/lisi
[root@lokott lisi]# cd 
[root@lokott ~]# pwd                                    //表明切換到root用戶
/root
[root@lokott ~]#passwd -l lisi              //鎖定lisi的密碼
鎖定用戶 lisi 的密碼 。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi             //查看lisi用戶的密碼狀態
lisi LK 2019-10-31 0 99999 7 -1 (密碼已被鎖定。)
[root@lokott ~]# su - lisi
上一次登錄:四 10月 31 19:01:10 CST 2019pts/2 上  
[lisi@lokott ~]$ pwd         //可以看出雖然被鎖定了但是root可以切換登錄且無需密碼
/opt/lisi
[lisi@lokott ~]$ 
[root@lokott ~]# passwd -u lisi
解鎖用戶 lisi 的密碼。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi
lisi PS 2019-10-31 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)

該實例可以作以下總結:

  1. 其中/sbin/nologin 用戶無法直接登錄和被切換登錄
  2. 執行passwd -l lisi 後用戶被鎖定,在圖形用戶界面是無法登錄的,但是可以從root用戶切換登錄(而且root切換時不需要密碼)

3.修改用戶賬號的屬性usermod

  1. -u 修改用戶的UID號
  2. -d 修改用戶的宿主目錄位置
  3. -e 修改用戶賬戶失效時間
  4. -s 指定用戶的登錄shell
  5. -l 更改用戶登錄賬號名稱
  6. -L 鎖定 ----- 相當於passwd -l
  7. -U 解鎖 ----- 相當於passwd -u

其中1-4與useradd類似,演示以下-l的操作

[root@lokott ~]# usermod -l zhangsan lisi
usermod: user lisi is currently used by process 71736
[root@lokott ~]# ps -ef | grep lisi
root      71735  71117  0 19:01 pts/2    00:00:00 su - lisi
lisi      71736  71735  0 19:01 pts/2    00:00:00 -bash
root      72433  71829  0 19:11 pts/2    00:00:00 su - lisi
lisi      72435  72433  0 19:11 pts/2    00:00:00 -bash
root      73325  72935  0 19:24 pts/2    00:00:00 grep --color=auto lisi
[root@lokott ~]# kill 71735   //也可以重啓,自動就會結束進程
[root@lokott ~]# 
Session terminated, killing shell... ...已殺死。
[root@lokott ~]# exit
[root@lokott ~]# usermod -l zhangsan lisi
[root@lokott ~]# tail -2 /etc/passwd
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash  //只是把lisi用戶名字改了但是家目錄的名字還是lisi
[root@lokott ~]#ls /opt
demo01.txt  lisi  mike  rh  test   
[root@lokott ~]# 

4.刪除用戶賬號userdel

-r 宿主目錄一起刪除,下面的演示接着上面的操作

[root@lokott ~]# tail -2 /etc/passwd         //顯示兩個用戶
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lokott ~]# userdel -r mike             //刪除mike用戶並且“抄家”
[root@lokott ~]# tail -3 /etc/passwd  
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
zhangsan:x:1002:1003::/opt/lisi:/bin/bash
[root@lokott ~]# ls -l /opt/mike             //表明-r的作用將指定的家目錄刪除
ls: 無法訪問/opt/mike: 沒有那個文件或目錄
[root@lokott ~]# ls /opt                    //當前在/opt下有lisi家目錄(名字在上面改成了zhangsan)
demo01.txt  lisi  rh  test
[root@lokott ~]# userdel -r zhangsan        //刪除zhangsan用戶,同時也會將lisi目錄刪除
[root@lokott ~]# tail -3 /etc/passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
[root@lokott ~]# ls -l /opt                  //因刪除了zhangsan用戶且-r刪除家目錄,不加-r則不會刪除
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 18:33 test
[root@lokott ~]# useradd wang               //創建一個新的用戶
[root@lokott ~]# usermod -l sung wang        //改用戶名
[root@lokott ~]# tail -2 /etc/passwd         //查看passwd信息
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
sung:x:1001:1003::/home/wang:/bin/bash
[root@lokott ~]# userdel sung               //刪除sung用戶但是不會刪除wang
[root@lokott ~]# ls /home/
demo  lokott  wang

5.用戶賬號的初始配置文件

文件來源——新建用戶賬號是從/etc/skel目錄中複製過來 (cd到家目錄中用ls -a)

  1. ~/.bash_profile 表示進入bash後被加載
  2. ~/.bashrc 用戶登錄時被加載
  3. ~/.bash_logout 註銷的時候執行

三、管理組賬號

組賬號文件——與用戶賬號文件類似

  1. /etc/group:保存組賬號基本信息
  2. /etc/shadow:保存組賬號的密碼信息(一般不會設置)

1.添加組賬號groupadd命令

groupadd 選項 組名

-g ——指定GID

[root@lokott ~]# groupadd lisi                   //添加lisi組
[root@lokott ~]# tail /etc/group                 //查看group信息
postdrop:x:90:
postfix:x:89:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
lokott:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
[root@lokott ~]# groupadd -g 1005 wangwu       //添加wangwu組且給其配置GID爲1005
[root@lokott ~]# tail -2 /etc/group
lisi:x:1003:
wangwu:x:1005:
[root@lokott ~]# 

2.添加組成員和刪除組成員

添加——gpasswd
  1. -a 向組中添加一個用戶 a不會覆蓋
  2. -d 從組中刪除一個用戶
  3. -M 逗號分隔設置組的成員列表,會覆蓋組成員,將原有的給踢出
[root@lokott ~]# tail -2 /etc/group                          //查看組信息
lisi:x:1003:
wangwu:x:1005:
[root@lokott ~]# tail -2 /etc/passwd                    //查看用戶信息
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
[root@lokott ~]# useradd lisi                                   //添加lisi用戶會失敗,因爲上面顯示lisi組已經存在
useradd:lisi 組已經存在 - 如果您想將此用戶加入到該組,請使用 -g 參數。
[root@lokott ~]# useradd -g lisi lisi                         //將lisi用戶添加到lisi組中
[root@lokott ~]# useradd zhangsan                        //再添加一個zhangsan用戶
[root@lokott ~]# tail -2 /etc/passwd                      //查看用戶信息
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lokott ~]# gpasswd -a lisi wangwu          //添加lisi到wangwu組中(先得有wangwu組)
正在將用戶“lisi”加入到“wangwu”組中
[root@lokott ~]# id lisi                                        //查看lisi的UID
uid=1001(lisi) gid=1003(lisi) 組=1003(lisi),1005(wangwu)
[root@lokott ~]# gpasswd -d lisi wangwu          //從wangwu組中刪除lisi
正在將用戶“lisi”從“wangwu”組中刪除
[root@lokott ~]# id lisi                         //查看lisi的UID,已經不屬於wnagwu組了
uid=1001(lisi) gid=1003(lisi) 組=1003(lisi)

[root@lokott ~]# tail -5 /etc/passwd              //顯示用戶信息
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1003::/home/lisi:/bin/bash
zhangsan:x:1002:1006::/home/zhangsan:/bin/bash
[root@lokott ~]# tail -5 /etc/group                 //顯示組信息
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:
zhangsan:x:1006:
[root@lokott ~]# gpasswd -M lisi,zhangsan wangwu   //將兩個用戶批量添加到wangwu組中
[root@lokott ~]# tail -5 /etc/group
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:lisi,zhangsan                         //查看到信息
zhangsan:x:1006:
[root@lokott ~]# useradd hh                         //添加兩個新的用戶,爲了驗證-M的覆蓋功能
[root@lokott ~]# useradd ww
[root@lokott ~]# gpasswd -M hh,ww wangwu
[root@lokott ~]# tail -5 /etc/group
lisi:x:1003:
wangwu:x:1005:hh,ww                                //原本的lisi和zhangsan都被踢出去了
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:
刪除——groupdel 組賬號

注意!!!不能使用 groupdel 命令隨意刪除組。此命令僅適用於刪除那些 "不是任何用戶初始組(主組 )" 的組,換句話說,如果有組還是某用戶的初始組(主組),則無法使用 groupdel 命令成功刪除。例如:

[root@lokott ~]# tail  -10 /etc/group                
stapdev:x:158:
tcpdump:x:72:
lokott:x:1000:
printadmin:x:985:
caiwu:x:1002:
lisi:x:1003:
wangwu:x:1005:hh,ww
zhangsan:x:1006:
hh:x:1007:
ww:x:1004:
[root@lokott ~]# groupdel caiwu 
[root@lokott ~]# groupdel lisi
groupdel:不能移除用戶“lisi”的主組
[root@lokott ~]# groupdel wangwu 
[root@lokott ~]# groupdel zhangsan 
groupdel:不能移除用戶“zhangsan”的主組
[root@lokott ~]# groupdel hh
groupdel:不能移除用戶“hh”的主組
[root@lokott ~]# groupdel ww
groupdel:不能移除用戶“ww”的主組
[root@lokott ~]# 

如果真的要刪除,可以將創建該組的初始成員刪除後再刪除

[root@lokott note]# tail -1 /etc/passwd
ww:x:10000:10000::/home/ww:/bin/bash
[root@lokott note]# groupdel ww
groupdel:不能移除用戶“ww”的主組
[root@lokott note]# userdel ww
[root@lokott note]# tail -1 /etc/group
zhangsan:x:1006:
[root@lokott note]# 
命令lastb是用來查看最近登錄的信息
[root@lokott ~]# lastb
lisi     :1           :1               Thu Oct 31 18:49 - 18:49  (00:00)    
root     pts/1                         Thu Oct 31 17:07 - 17:07  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    
root     :0           :0               Thu Oct 24 14:43 - 14:43  (00:00)    

btmp begins Thu Oct 24 14:43:01 2019
[root@lokott ~]# 

四、文件/目錄的權限及歸屬

1.訪問權限

讀取r:允許查看文件內容、顯示目錄列表

寫入w:允許修改文件內容,允許在目錄中新建、移動、刪除文件或子目錄

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

2.歸屬(所有權)

屬主:用於該文件或目錄的用戶賬號

屬組:用於該文件或目錄的組賬號

3.結合實例介紹權限

[root@lokott ~]# ls -l
總用量 8
-rw-------. 1 root root 1785 10月 23 12:21 anaconda-ks.cfg
-rw-r--r--. 1 root root 1833 10月 23 12:24 initial-setup-ks.cfg
drwxr-xr-x. 4 root root   73 10月 30 22:03 note  //以此爲例介紹

下面對drwxr-xr-x. 4 root root 73 10月 30 22:03 note 進行解釋

  1. d ——文件類型(d表示目錄、l表示鏈接文件、c表示字符設備(輸入輸出)文件、b塊設備(存儲)文件 - 普通文件)
  2. rwx 、 r-x、r-x分別代表是屬主權限(這裏表示可讀可寫可執行)、屬組權限(這裏表示可讀可執行)、other權限(這裏表示可讀可執行)
  3. 4 ——子目錄的數量
  4. 第一個root—— 屬主
    5.第二個 root ——屬組
  5. 73——大小
  6. 10月 30 22:03 ——創建時間
  7. note ——目錄名(文件)

4.設置文件和目錄的權限chmod 命令(-R 遞歸)

  1. chmod 【ugoa】【+-=】【rwx】
  2. chmod nnn 文件或目錄(優先選擇)
//下面是對文件的權限操作
[root@lokott note]# touch 2.sh    
[root@lokott note]# ls -l 2.sh                  //2.sh權限是644
-rw-r--r--. 1 root root 0 10月 31 21:41 2.sh 
[root@lokott note]# chmod u+x 2.sh 
[root@lokott note]# ls -l 2.sh 
-rwxr--r--. 1 root root 0 10月 31 21:41 2.sh
[root@lokott note]# chmod ugo+w 2.sh 
[root@lokott note]# ls -l 2.sh 
-rwxrw-rw-. 1 root root 0 10月 31 21:41 2.sh
[root@lokott note]# chmod 655 2.sh 
[root@lokott note]# ls -l 2.sh 
-rw-r-xr-x. 1 root root 0 10月 31 21:41 2.sh

//下面是對目錄的權限操作
[root@lokott note]# ll                        //ll是ls -l --color 的別名
總用量 8
-rwxrwxrwx. 1 root root   0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root   0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root  26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root  30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxr-xr-x. 2 root root   6 10月 31 21:38 test
[root@lokott note]# which ll         
alias ll='ls -l --color=auto'
    /usr/bin/ls
[root@lokott note]# chmod  777 test/      更改權限爲777
[root@lokott note]# ll
總用量 8
-rwxrwxrwx. 1 root root   0 10月 31 21:40 1.txt
-rw-r-xr-x. 1 root root   0 10月 31 21:41 2.sh
-rwxrwxrwx. 1 root root 286 10月 30 22:03 ifcfg-ens33
drwxrwxrwx. 2 root root  26 10月 23 13:20 linux-cmd
-rwxr-xr-x. 1 root root  30 10月 30 22:02 readme.txt
drwxrwxrwx. 2 root root 173 10月 30 21:56 shell
drwxrwxrwx. 2 root root   6 10月 31 21:38 test
[root@lokott note]# touch test/1.sh
[root@lokott note]# ls -l test/1.sh 
-rw-r--r--. 1 root root 0 10月 31 21:50 test/1.sh   //目錄的權限與其子目錄與文件權限無關除非遞歸—R
[root@lokott note]# chmod 777 -R test/     //遞歸更改權限 即test和其子目錄的所有文件權限都是777
[root@lokott note]# ls -l test/1.sh 
-rwxrwxrwx. 1 root root 0 10月 31 21:50 test/1.sh

如果給予屬組和其他用戶只有寫權限(622),可以強制寫入,但會覆蓋原本的內容!

[root@lokott test]# pwd                             //當前所在目錄的絕對路徑
/opt/test
[root@lokott test]# ll                              //顯示詳細信息
總用量 8
-rw-r--r--. 1 root root 13 10月 31 16:33 1.txt        //除了root的其餘用戶權限爲只讀
-rw--w--w-. 1 root root 18 10月 31 18:33 2.txt         //除了root的其餘用戶權限爲只寫
[root@lokott test]# cat 1.txt 
tehsda
hello
[root@lokott test]# cat 2.txt                          //這邊原本的2.txt的內容如下
231354
2222244878
[root@lokott lisi]# su - lisi                          //切換到lisi用戶
上一次登錄:四 10月 31 22:36:45 CST 2019pts/1 上
[lisi@lokott ~]$ cd /opt/test/
[lisi@lokott test]$ ll                                  //沒有ls的權限
ls: 無法打開目錄.: 權限不夠
[lisi@lokott test]$ cat 1.txt                           //表示可以查看1.txt內容
tehsda
hello
[lisi@lokott test]$ vim 1.txt                          //嘗試寫入數據
[lisi@lokott test]$ cat 1.txt                           //可以wq!強制保存退出,結果是可以寫入數據的
tehsda
hello
dada
asdaadas
[lisi@lokott test]$ cat 2.txt
cat: 2.txt: 權限不夠
[lisi@lokott test]$ vim 2.txt
[lisi@lokott test]$ cat 2.txt                             //似乎強制寫入數據之後就可以查看,猜測:
ssdad                                                             //是Centos7的問題還是因爲是當前用戶寫的所以可以看?
dsawdad
[lisi@lokott test]$ ls -l 2.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:45 2.txt
//使用echo命令重定向和追加形式寫入數據到文本中
[lisi@lokott test]$ echo "123123" > 2.txt    
[lisi@lokott test]$ cat 2.txt
123123
[lisi@lokott test]$ echo "123456" >> 2.txt
[lisi@lokott test]$ cat 2.txt
123123
123456  
[lisi@lokott test]$ su 
密碼:
[root@lokott test]# ls -l
總用量 8
-rw-r--r--. 1 lisi lisi 27 10月 31 22:43 1.txt
-rw--w--w-. 1 lisi lisi 14 10月 31 22:47 2.txt
[root@lokott test]# cat 2.txt 
123123
123456
[root@lokott test]# 

5.設置文件和目錄的歸屬chown

  1. chown 屬主
  2. chown :屬組
  3. chown 屬主:屬組
[root@lokott opt]# ls -l 
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test
[root@lokott opt]# chown lisi test    
[root@lokott opt]# ls -l                           
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 lisi root 32 10月 31 22:45 test        //test目錄自身屬主變成lisi而屬組未發生改變

[root@lokott opt]# chown root:lisi test
[root@lokott opt]# ls -l 
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test        //test目錄自身屬主變成root而屬組變爲lisi

[root@lokott opt]# chown :root test
[root@lokott opt]# ls -l 
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root root 32 10月 31 22:45 test        //test目錄自身屬組變爲root

6.權限掩碼umask

作用:控制新建的文件或者目錄的權限——注意只是對新建的有效

默認權限去除umask的權限爲

[root@lokott opt]# mkdir umasktest
[root@lokott opt]# umask 000 umasktest/
[root@lokott opt]# ll
總用量 0
-rw-r--r--. 1 root root  0 10月 31 16:19 demo01.txt
drwxr-xr-x. 2 root root  6 3月  26 2015 rh
drwx-wx-wx. 2 root lisi 32 10月 31 22:45 test
drwxrwxrwx. 2 root root  6 10月 31 23:26 umasktest
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2019
[root@lokott umasktest]# touch 1.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt             //文件權限爲666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019              //目錄權限爲777

[root@lokott umasktest]# cd ..
[root@lokott opt]# umask  111 umasktest/                     //原本的1.txt和2019權限沒有發生變化!
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2018
[root@lokott umasktest]# touch 2.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018            //目錄權限爲666
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt           // 2.txt權限爲666

[root@lokott umasktest]# cd ..
[root@lokott opt]# umask  666 umasktest/
[root@lokott opt]# cd umasktest/
[root@lokott umasktest]# mkdir 2017
[root@lokott umasktest]# touch 3.txt
[root@lokott umasktest]# ll
總用量 0
-rw-rw-rw-. 1 root root 0 10月 31 23:26 1.txt
d--x--x--x. 2 root root 6 10月 31 23:29 2017              //目錄權限爲111
drw-rw-rw-. 2 root root 6 10月 31 23:28 2018
drwxrwxrwx. 2 root root 6 10月 31 23:26 2019
-rw-rw-rw-. 1 root root 0 10月 31 23:28 2.txt
----------. 1 root root 0 10月 31 23:29 3.txt            //文件3.txt權限全爲0  
[root@lokott umasktest]# umask                          //查看umask值
0666

五、總結

主要是對Linux/Centos7中賬號與權限管理的介紹,主要是命令的選項結合操作對象的演示案例需要注意許多與正常思維不一致的地方,需要自己多試驗多嘗試!其中對於普通用戶強行寫入只寫文件後可以查看文件內容存有疑問,歡迎閱讀者給出解釋!

謝謝閱讀!

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