目錄
1. root超級用戶和普通用戶
2.?創建普通用戶、密碼設置、切換用戶
3. sudo短暫提權(給普通用戶添加sudo權限)
4. 權限
4.1 是什么
4.2 為什么有權限?(權限 = 角色 + 目標屬性)
4.2.1 角色
4.2.2 目標屬性
4.3 修改目標屬性chmod
4.3.1 相關指令
4.3.2 文件權限相關問題(重點)
4.3.3 目錄權限相關問題(重點)
4.3.4 缺省權限(權限掩碼)(重點)
4.3.5 文件的刪除權限 & 粘滯位(重點)
4.4 修改角色chown\chgrp
4.4.1 相關指令
1. root超級用戶和普通用戶
????????Linux下有兩種用戶:超級用戶(root)、普通用戶。
????????????????? 超級用戶:可以再linux系統下做任何事情,不受限制
????????????????? 普通用戶:在linux下做有限的事情。
????????? 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。
2.?創建普通用戶、密碼設置、切換用戶
語法: | adduser [用戶名] |
功能: | 新創建一個普通用戶 |
語法: | passwd [用戶名] |
功能: | 給用戶重設密碼,root下可以直接給普通用戶重置密碼。普通用戶使用需要加sudo |
語法: | su |
功能: | 切換用戶 |
????????例如,要從root用戶切換到普通用戶user,則使用 su user。
????????要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統會提示輸入root用戶的密碼。
# 普通用戶切換超級用戶
su # 不重新登陸,不做路徑變化
su - # 重新登陸,路徑變回/root# 超級->普通
su # 用戶名,不需要輸入密碼,
????????注意:Linux多用戶之間相互隔離:任何用戶,無法進入其他用戶的家目錄。
3. sudo短暫提權(給普通用戶添加sudo權限)
? ? ? ? sudo:是用來進行指定的短暫提權的。
? ? ? ? 比如:安裝軟件到系統中,需要管理員root權限。(軟件其實只安裝了一份,允許大家同時使用)
? ? ? ? 舉例:whoami ->普通用戶 -> sudo ls ->報錯
給普通用戶添加sudo權限
? ? ? ? 1. 切換root用戶,打開/etc/sudoers文件
vim /etc/sudoers
? ? ? ? 2. 在100行有以下代碼
root ALL=(ALL) ALL
? ? ? ? 3. 拷貝上述代碼并修改用戶名為需要添加sudo權限的用戶。
root ALL=(ALL) ALL
gyy ALL=(ALL) ALL
# 我的普通用戶名為gyy
? ? ? ? 4. 進入vim的命令模式,使用wq!強制保存退出。
4. 權限
4.1 是什么
? ? ? ? 權限的本質是:能或者不能做什么事情。
4.2 為什么有權限?(權限 = 角色 + 目標屬性)
? ? ? ? 1. 控制用戶的行為,防止錯誤的發生
? ? ? ? 2. 理解:權限 = 角色 + 目標屬性
? ? ? ? ? ? ? ? 權限首先限制的是角色(人)
? ? ? ? ? ? ? ? 權限要求目標必須具備對應的屬性
(Linux下一切皆文件,面對的都是文件的:讀、寫、執行)
4.2.1 角色
1. 角色是什么?
? ? ? ? 角色有:擁有者(user)、所屬組(group)、other。
? ? ? ? other不需要記錄,除了擁有者、所屬組之外的就是other。
2. 什么是所屬組?
? ? ? ? 更精細化的權限管理,首先要有更精細化的身份角色。所屬組就是用來給角色分組的。
4.2.2 目標屬性
1. 權限位
? ? ? ? 擁有者、所屬組、other每個有三個權限位,分別為rwx(可讀、可寫、可執行,權限位是“-”代表沒有此權限)
????????? 讀(r/-):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
????????? 寫(w/-):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
????????? 執行(x/-):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
????????? “-”表示不具有該項權限
? ? ? ? 例:像下列test.txt文件擁有者的權限是:可讀可寫不可執行,所屬組權限是:可讀可寫不可執行,other權限是:可讀、不可寫、不可執行。
4.3 修改目標屬性chmod
4.3.1 相關指令
語法: | chmod [參數] 權限 文件名 |
功能: | 修改文件屬性,參數可以使用“,”表達式 |
常用選項: | R 遞歸修改目錄文件的權限 說明:只有文件的擁有者和root才可以改變文件的權限。 |
修改權限的符號: | |
+ | 向權限范圍增加權限 |
- | 向權限范圍取消權限 |
= | 向權限范圍賦予權限 |
用戶符號: | |
u | 擁有者 |
g | 所屬組 |
o | 其他用戶 |
a | 所有用戶 |
實例:
# 給擁有者添加rw權限
chmod u+rw abc.txt# 給other取消x權限
chmod o-x abc.txt# 給所有角色權限設置為rwx
chmod a=rwx abc.txt
? ? ? ? 以上是文件權限值得字符表示法,還有三位8進制表示法,將擁有者、所屬組、other的三個權限位分別用"1"代表有權限,"0"代表沒有權限。使用三位八進制表示權限值。
實例:
# 將test1.txt的權限設置為 110110110 即 rw-rw-rw-
chmod 666 test1.txt# 將test2.txt的權限設置為 111111111 即 rwxrwxrwx
chmod 777 test2.txt
4.3.2 文件權限相關問題(重點)
????????1. 能修改任何人的文件權限嗎?用戶只能更改自己的文件權限。
????????2. 沒有權限會怎么辦?系統會拒絕讓我們訪問(Permission denied)
????????3. 確定權限信息的時候,系統會先確定用戶是誰?擁有者、所屬組,還是other?
????????? ? ? ? 在Centos下,用戶角色只確定一次,順序是:擁有者,所屬組,other
????????4. root用戶的權限?不受權限約束
????????? ? ? ? 任何普通用戶的文件,root都可以讀寫
????????? ? ? ? user和group都是root的用戶,即使user和group的權限設置位"---",root用戶也可以讀寫。
????????5. 如何理解可執行?可執行只是允許文件執行
????????? ? ? ? 可執行權限 != 文件可以執行。
4.3.3 目錄權限相關問題(重點)
? ? ? ? 默認情況下,新建的目錄rwx權限都要有。
? ? ? ? 6. 如果目錄沒有r權限,就無法查看目錄里面的文件,ls報(Permission denied)
? ? ? ? 7. 如果目錄沒有w權限,就無法再智能目錄內部新建文件
? ? ? ? 8. 如果目錄沒有x權限,就不能進入目錄。
4.3.4 缺省權限(權限掩碼)(重點)
? ? ? ? 對于新建普通文件:起始權限666,默認不帶可執行
? ? ? ? 對于新建目錄文件:起始文件777,默認攜帶x
1.?權限掩碼umask:系統默認存在,用來讓用戶設置實際初始權限。
? ? ? ? 1. umask目的:希望凡是在umask中出現的權限都不應該在最終權限中出現。
? ? ? ? 2. 為什么要有umask?
? ? ? ? ? ? ? ? a. 默認權限,由OS自主決定,無法在船艦前進行修改 --- 系統可配置,可以靈活滿足需要的一種表現。
? ? ? ? ? ? ? ? b. 特殊情況下,配置umask,可以控制文件的默認權限,讓我們的代碼都是可控的。
? ? ? ? 最終權限 = 起始權限 & (~umask)
umask
# 0002 第一位不看,后三位分別對應9個位的權限值
2. 修改權限掩碼
語法: | umask [權限掩碼] |
功能: | 查看/修改權限掩碼 |
實例:
# 設置權限掩碼
umask 755# 查看權限掩碼
umask
4.3.5 文件的刪除權限 & 粘滯位(重點)
1. 一個文件是否能被刪除,與文件本身無關,與文件所處的目錄的w權限有關!
2. 協作問題,粘滯位
? ? ? ? 如果兩個用戶之間要進行文件級別的協作,不能將共享目錄放在私人賬號里,則只能放在根目錄下。共享文件,不想讓非文件的擁有者刪除對應的文件!使用粘滯位解決。
? ? ? ? 粘滯位目的:在一個公共目錄(如?/tmp
)中,用戶只能刪除或重命名自己創建的文件或目錄,而不能刪除其他用戶的文件,即使該目錄對所有用戶都有寫權限(如 777)。
? ? ? ? 粘滯位添加:(粘滯位是在other的x權限位置)
# 添加粘滯位
chmod +t [目錄/文件名]# 刪除粘滯位
chmod -t [目錄/文件名]
????????當一個目錄被設置為"粘滯位"(用chmod +t),則該目錄下的文件只能由
????????????????1. 超級管理員刪除
????????????????2. 該目錄的所有者刪除
????????????????3. 該文件的所有者刪除
4.4 修改角色chown\chgrp
? ? ? ? 系統默認不允許我們把文件給別人,所以想要修改角色必須提高權限,使用sudo或者切換root用戶。
4.4.1 相關指令
語法: | chown [角色] 文件名 |
功能: | 修改文件擁有者角色,可以同時修改擁有者和所屬組 |
常用選項: | -R?遞歸修改文件或目錄的擁有者 |
語法: | chgrp [角色] 文件名 |
功能: | 修改文件所屬組角色 |
常用選項: | -R?遞歸修改文件或目錄的所屬組 |
# 修改test1.txt的擁有者為root
chown root test1.txt# 修改test2.txt的擁有者和所屬組為user1
chown user1:user1 test2.txt# 修改test3.txt的所屬組為user3
chgrp user3 test3.txt