目錄
一、什么是shell?
二、為什么存在shell?
bash和shell的區別
一、什么是權限?
二、修改權限
一、修改檔案權限
二、修改用戶
三、不受權限約束的超級用戶“root”
三、默認權限
1、默認的權限
2、umask(權限掩碼)
一般普通檔案,起始權限是666,但是我們看到的普通檔案起始權限是664,是為什么呢?
修改權限掩碼
4、權限的經典面試題
(1)進入應該目錄、讀取一個檔案、在一個目錄下寫檔案分別都需要什么權限?
(2)在同一目錄下,如何防止其他用戶洗掉自己創建的檔案?(粘滯位)
(3)粘滯位的應用場景
一、什么是shell?
shell是命令解釋器,是包裹再作業系統外層的軟體層(類似于Windows的圖形化界面)
二、為什么存在shell?
因為用戶不擅長直接和作業系統交流,所以通過shell,把用戶的請求任務傳遞給作業系統,把作業系統執行結果,通過shell外殼回傳給用戶
shell還有一個作用就是可以保護作業系統,拒絕用戶的非法操作
bash和shell的區別
bash是shell的一種,在centos 7 中使用的是bash,
一、什么是權限?
權限即就是:決定某件事情,某人能否做
檔案權限=“人” + 事物屬性
所以檔案受“人”的影響:人指代擁有者、所屬者、other
還受檔案本身的屬性(事物屬性)影響:權限屬性 r (讀)、w(寫)、x(執行權限)

如圖:lesson1檔案的檔案屬性:rw- rw- r--,表示擁有者(owner)可讀可寫不可執行、所屬者(group)可讀可寫 不可執行、其他(other)可讀
注意:
1、上述資訊沒有顯示other用戶,是因為顯示了擁有者和所屬者后,其他的用戶就是other
2、默認的擁有者和所屬者都是創建檔案的用戶本身,如果所屬者沒有添加過其他用戶,就是自己本身
3、group存在的意義是,在安全的前提下,方便組內協同
二、修改權限
一、修改檔案權限
//擁有者(owner) 、所屬者(group) 、其他(other)
chmod u+r 檔案名 //給擁有者加上讀權限
chmod g-w 檔案名 //給所屬者加上寫權限
chmod o+rwx 檔案名 //給其他加上讀寫執行權限
chomd a+r 檔案名 //給所有用戶加上讀權限
chmod u+r,g-w,o+rwx 檔案名 //給擁有者加上讀權限、給所屬者加上寫權限、給其他加上讀寫執行權限
chmod u=rw- 檔案名 //把擁有者權限修改為可讀可寫不可執行
除了上述的修改權限命令外,還有一種命令方法,
是否可讀:可以理解用0/1二進制表示,不能用0表示,可以用1表示
例如:rw- ——>110 ;轉化成8進制數就是6
所以 ,666——>rw- rw-rw-
chmod 666 檔案名 //將權限修改為擁有者、所屬者、其他都可讀可寫不可執行
二、修改用戶
//修改用戶需要進行sudo提權
sudo chown 用戶名 檔案名 //將檔案的擁有者修改為命令里的用戶
sudo chgrp 用戶名 檔案名 //將檔案的所屬者修改為命令里的用戶
sudo chown 用戶名1:用戶名2 檔案名 //將檔案的擁有者修改為用戶名1,所屬者修改為用戶名2
三、不受權限約束的超級用戶“root”
用戶分類:
超級用戶:root
普通用戶:自己創建的用戶
關于用戶的常用命令:
創建命令:
adduser 用戶名
passwd 用戶名 //設定密碼
其他關于用戶的命令:
ls /home:查看所有用戶
whoami:查看當前用戶
su - 用戶名 :切換用戶
sudo 其他命令:可以暫時提權,讓普通用戶有root用戶的權限
三、默認權限
1、默認的權限
一般普通檔案,起始權限:666 (rw- rw- rw-)
一般目錄檔案,起始權限:777(rwx rwx rwx)
2、umask(權限掩碼)
一般普通檔案,起始權限是666,但是我們看到的普通檔案起始權限是664,是為什么呢?
是因為umask的存在,umask是權限掩碼
凡是在umask中出現的權限,都不應該在最終權限中出現
計算規則為:
權限 & -umask
也就是權限與運算,權限掩碼的反

所以,即使普通檔案的默認權限是666,也因為umask(權限掩碼)的存在,讓初始權限為664,
修改權限掩碼
umask 三八進制數
例:
umask 003 //將默認權限掩碼改為了003
4、權限的經典面試題
(1)進入應該目錄、讀取一個檔案、在一個目錄下寫檔案分別都需要什么權限?
答:
目錄權限:
一個目錄下寫檔案 w權限
讀取一個目錄 r權限
進入一個目錄需要 x權限 //特別注意,進入一個目錄需要x權限,并非r權限
(2)在同一目錄下,如何防止其他用戶洗掉自己創建的檔案?(粘滯位)
答:sudo chmod +t dir
上述命令叫做設定粘滯位,給目錄設定粘滯位可以防止普通用戶洗掉該目錄下的檔案
補充:如果其他用戶直接洗掉目錄,也是無法洗掉的,因為洗掉目錄前需要洗掉掉該目錄下所有的檔案,因為粘滯位的存在,也是無法操作成功的,
(3)粘滯位的應用場景
在Linux中會有很多的臨時檔案,臨時檔案存放在根目錄下的臨時目錄中,這個目錄是一個公開的,大家都可以使用和訪問,為了防止其他用戶洗掉你的臨時檔案,可以通過設定粘滯位,防止其他用戶洗掉你的檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356207.html
標籤:其他
