今日內(nèi)容:基本權(quán)限
1.什么是權(quán)限?
我們可以把它理解為操作系統(tǒng)對用戶能夠執(zhí)行的功能所設(shè)立的限制,主要用于約束用戶能對系統(tǒng)所做的操作,以及內(nèi)容訪問的范圍,或者說,權(quán)限是指某個特定的用戶具有特定的系統(tǒng)資源使用權(quán)力。
2.為什么要使用權(quán)限?
因為系統(tǒng)中不可能只存在一個root用戶,一定會存在多個用戶,為了保護每個登陸用戶的隱私和工作環(huán)境,所以就有了權(quán)限。
3.權(quán)限與用戶之間的關(guān)系?
在Linux系統(tǒng)中,針對文件定義了三種身份,分別是屬主(owner)、屬組(group)、其他人(others),每一種身份又對應(yīng)三種權(quán)限,分別是可讀(readable)、可寫(writable)、可執(zhí)行(excutable)。
rwx r-x r-x
rwx:屬主權(quán)限位(root)
r-x:數(shù)組權(quán)限位 (root)
r-x:其它用戶權(quán)限位

用戶對文件資源,有三種角色ugo,當一個用戶訪問文件流程如下
- 判斷用戶是否為文件所有者,如果是則按所有者的權(quán)限進行訪問
- 判斷用戶是否為文件所有組成員,如果是則按組的權(quán)限進行訪問
- 如果不是所有者,也不是該文件所屬組,則按匿名權(quán)限進行訪問
當我們使用ls -l查看一個文件的詳細屬性時,能看到每個文件都有一個9位基本權(quán)限位,linux中基本權(quán)限位則是使用這9位字符來表示,主要控制文件屬主(User)、屬組(Group)、其他用戶(Other)
r(read) 讀取權(quán)限 4
w(write) 寫入權(quán)限 2
x(execute) 執(zhí)行權(quán)限 1
-(沒有權(quán)限)沒有權(quán)限 0
[root@oldboy ~]# ll
-rw-r--r--. 1 root root 118 3月 11 11:12 1.txt
示例:該1.txt被root用戶所擁有,root組的所擁有
root用戶對其有什么權(quán)限 ? 權(quán)限的前3位 rw-
root組對文件有什么權(quán)限?中間3位字符 r--
其他人對該文件有什么權(quán)限?最后3個字符 r--
二、使用chmod設(shè)定權(quán)限示例
1.ugo
[root@oldboy ~]# touch file #創(chuàng)建文件file
[root@oldboy ~]# chmod a=rwx file #給所有人添加讀寫執(zhí)行權(quán)限
[root@oldboy ~]# chmod a=-rwx file #取消所有的權(quán)限
[root@oldboy ~]# chmod u=rwx,g=rw,o=- file #屬主讀寫執(zhí)行屬組讀寫其他用戶沒有權(quán)限
[root@oldboy ~]# chmod ug=rwx,o=r file #屬主讀寫執(zhí)行數(shù)組讀寫執(zhí)行其它用戶讀權(quán)限
[root@oldboy ~]# ll file
-rwxrwxr--. 1 root root 0 3月 16 15:07 file
2.number方式 -R遞歸
[root@oldboy ~]# touch file #創(chuàng)建文件file
[root@oldboy ~]# chmod 644 file #屬主rw- 屬組r-- 其他人r--
[root@oldboy ~]# ll file
-rw-r--r--. 1 root root 0 3月 16 15:23 file
[root@oldboy ~]# chmod 600 file #屬主rw-- 屬組--- 其他人---
[root@oldboy ~]# ll file
-rw-------. 1 root root 0 3月 16 15:23 file
[root@oldboy ~]# mkdir dir
[root@oldboy ~]# chmod 777 dir/ #修改目錄允許所有人訪問
[root@oldboy ~]# chmod -R 755 dir/ #修改目錄及子目錄
[root@oldboy ~]# ll -d dir/
drwxr-xr-x. 2 root root 6 3月 16 15:31 dir/
3.權(quán)限設(shè)置案例
針對pr部門的訪問目錄/home/pr設(shè)置權(quán)限要求如下:
1.root 用戶和pr組的員工可以讀寫執(zhí)行
2.其他用戶沒有任何權(quán)限
[root@oldboy ~]# groupadd pr
[root@oldboy ~]# useradd pr01 -g pr
[root@oldboy ~]# useradd pr02 -g pr
[root@oldboy ~]# useradd pr03
[root@oldboy ~]# mkdir /home/pr
[root@oldboy ~]# chgrp pr /home/pr
[root@oldboy ~]# ll -d /home/pr
drwxr-xr-x. 2 root pr 6 3月 16 15:45 /home/pr
[root@oldboy ~]# su - pr01
[pr01@oldboy ~] ll -d /home/pr
drwxr-xr-x. 2 root pr 6 3月 16 15:45 /home/pr
[pr02@oldboy ~] ll -d /home/pr
drwxrwx---. 2 root pr 6 3月 16 15:45 /home/pr
[pr01@oldboy ~] ll -d /home/pr
drwxrwx---. 2 root pr 6 3月 16 15:45 /home/pr
[pr02@oldboy ~] ll -d /home/pr
drwxrwx---. 2 root pr 6 3月 16 15:45 /home/pr
[pr03@oldboy ~] su - root
[root@oldboy ~]# su - pr02
[pr02@oldboy ~] touch pr.txt
PS:權(quán)限中的rwx對文件的影響:
讀取權(quán)限(r)具有讀取\閱讀文件內(nèi)容權(quán)限
1.只能使用查看類命令cat、head、tail、less、more寫入權(quán)限(w)具有新增、修改文件內(nèi)容的權(quán)限
1.使用vim編輯會提示權(quán)限拒絕, 但可強制保存,會覆蓋文件的所有內(nèi)容
2.使用echo命令重定向的方式可以往文件內(nèi)寫入數(shù)據(jù), >>可以進行追加
3.不能刪除文件,因為刪除文件看的不是文件的屬性, 需要看上級目錄是否有w的權(quán)限執(zhí)行權(quán)限(x)具有執(zhí)行文件的權(quán)限
1.執(zhí)行權(quán)限什么用都沒有
2.如果普通用戶需要執(zhí)行文件,需要配合r權(quán)限 rx (命令) rw(配置文件) r(單純的普通只看不改不執(zhí)行)
文件權(quán)限實驗案例:
新建文件并添加內(nèi)容到文件中
[root@oldboy opt]# touch filename1
[root@oldboy opt]# echo "data" >filename1
[root@oldboy opt]# ll filename1
-rw-r--r--. 1 root root 5 3月 16 17:23 filename1
切換bxg普通用戶
[root@oldboy opt]# su - bxg
上一次登錄:一 3月 16 16:13:29 CST 2020pts/0 上
[bxg@oldboy ~]$ cat /opt/filename1
data
對文件擁有讀取的權(quán)限,但bxg用戶對文件沒有執(zhí)行和刪除的權(quán)限
4.使用root增加x執(zhí)行權(quán)限
[root@oldboy opt]# chmod o+x /opt/filename1
[root@oldboy opt]# ll /opt/filename1
-rw-r--r-x. 1 root root 5 3月 16 17:23 /opt/filename1
5.測試x權(quán)限是否真的能執(zhí)行該文件
[bxg@oldboy ~]$ /opt/filename1
/opt/filename1:行1: data: 未找到命令
6.增加w執(zhí)行權(quán)限
[root@oldboy opt]# chmod o+w /opt/filename1
[root@oldboy opt]# ll /opt/filename1
-rw-r--rwx. 1 root root 5 3月 16 17:23 /opt/filename1
7.測試執(zhí)行權(quán)限
[root@oldboy opt]# vim /opt/filename1
PS: 總結(jié)rwx對目錄的影響
讀取權(quán)限(r),如果目錄只有r權(quán)限: 具有瀏覽目錄及子目錄權(quán)限
1.可以使用ls命令瀏覽目錄及子目錄, 但同時也會提示權(quán)限拒絕
2.使用ls -l命令瀏覽目錄及子目錄,文件屬性會帶問號,并且只能看到文件名
總結(jié): 目錄只有r權(quán)限,僅僅只能瀏覽內(nèi)的文件名,無其他操作權(quán)限
寫入權(quán)限(w),如果目錄只有w權(quán)限: 具有增加、刪除或修改目錄內(nèi)文件名權(quán)限(需要x權(quán)限配合)
PS: 如果目錄有w權(quán)限, 可以在目錄內(nèi)創(chuàng)建文件, 刪除文件(跟文件本身權(quán)限無關(guān))
不能進入目錄、不能復(fù)制目錄、不能刪除目錄、不能移動目錄
執(zhí)行權(quán)限(x),如果目錄只有x權(quán)限
1.只能進入目錄
2.不能瀏覽、復(fù)制、移動、刪除
Linux權(quán)限總結(jié)與注意事項
文件r權(quán)限, 只給用戶查看,無其他操作
文件rw權(quán)限, 可以查看和編輯文件內(nèi)容
文件rx權(quán)限, 允許查看和執(zhí)行文件、但不能修改文件----->(腳本文件、命令文件)
文件rwx權(quán)限, 能讀,能寫,能執(zhí)行,但不能刪除,因為刪除需要看上級目錄的權(quán)限有沒有w----->(謹慎賦予,賦予給該文件的屬主身份)
目錄rx權(quán)限, 允許瀏覽目錄內(nèi)文件以及子目錄, 不允許在該目錄下創(chuàng)建文件、刪除文件
目錄rw權(quán)限, 能查看目錄,能往目錄寫入文件,但無法進入目錄----->(使用的情況太少)
PS: 文件的 x 權(quán)限小心給予,目錄的 w 權(quán)限小心給予。
PS: 文件通常設(shè)定的權(quán)限是644,目錄設(shè)定的權(quán)限是755。
變更文件的屬主屬組
[root@oldboy ~]# ll access.log
-rw-r--r--. 1 root root 58112885 3月 12 16:44 access.log
[root@oldboy ~]# chown bgx.bgx access.log
[root@oldboy ~]# ll access.log
-rw-r--r--. 1 bgx bgx 58112885 3月 12 16:44 access.log
只變更文件屬組
[root@oldboy ~]# chown .root access.log
[root@oldboy ~]# ll access.log
-rw-r--r--. 1 bgx root 58112885 3月 12 16:44 access.log
使用chgrp直接變更文件的屬組(只能是屬組)
[root@oldboy ~]# chgrp bgx access.log
[root@oldboy ~]# ll access.log
-rw-r--r--. 1 bgx bgx 58112885 3月 12 16:44 access.log