一、權(quán)限概述
㈠ 什么是權(quán)限
權(quán)限:在計(jì)算機(jī)系統(tǒng)中,權(quán)限是指某個(gè)計(jì)算機(jī)用戶具有使用軟件資源的權(quán)利。
思考:計(jì)算機(jī)資源分為哪兩部分?
硬件資源 硬盤、CPU、內(nèi)存、網(wǎng)卡等物理硬件資源
軟件資源
軟件:操作系統(tǒng)(特殊的軟件)、應(yīng)用程序。只要不啟動(dòng),這些軟件就是一堆靜態(tài)的文件,并且靜靜的躺在我們計(jì)算機(jī)的磁盤中。
軟件資源:Linux系統(tǒng)中,一切皆文件!SO,這里的軟件資源就是文件資源。
總結(jié):
我們今天所講的權(quán)限,指的就是:文件資源所擁有的相關(guān)權(quán)限,即文件權(quán)限。
㈡ 權(quán)限設(shè)置目的
文件權(quán)限的設(shè)置目的:是想讓某個(gè)用戶有權(quán)利操作文件
㈢ 文件權(quán)限的分類
普通權(quán)限
用戶正常情況去操作文件所具有的權(quán)限
高級(jí)權(quán)限
用戶對(duì)某個(gè)文件操作有特殊需求,而普通權(quán)限不能滿足,需要給文件設(shè)置高級(jí)權(quán)限
默認(rèn)權(quán)限
用戶在系統(tǒng)中創(chuàng)建一個(gè)文件,該文件默認(rèn)都會(huì)有一個(gè)權(quán)限,該權(quán)限是默認(rèn)有的
注意:
權(quán)限是設(shè)置在文件上的,而不是用戶
二、普通權(quán)限(重點(diǎn))
㈠ 理解普通權(quán)限r(nóng)wx含義
1、讀權(quán)限—r(read)
針對(duì)目錄
一個(gè)目錄擁有r權(quán)限,說(shuō)明可以查看該目錄里的內(nèi)容(ls命令列出)
針對(duì)普通文件
一個(gè)普通文件擁有r權(quán)限,說(shuō)明可以查看該文件的內(nèi)容(cat/head/tail/less/more等命令查看)
讀權(quán)限r(read)用數(shù)字表示是4
2、寫權(quán)限—w(write)
針對(duì)目錄
一個(gè)目錄擁有w權(quán)限,說(shuō)明可以在該目錄里創(chuàng)建、刪除、重命名等操作(mkdir/touch/mv/rm等)
針對(duì)普通文件
一個(gè)普通文件擁有w權(quán)限,說(shuō)明可以修改該文件的內(nèi)容(vi/vim編輯器編輯文件)
寫權(quán)限w(write)用數(shù)字表示是2
3、執(zhí)行權(quán)限—x(execute)
針對(duì)目錄
一個(gè)目錄擁有x權(quán)限,說(shuō)明可以進(jìn)入或切換到該目錄里(cd命令)
針對(duì)普通文件
一個(gè)普通文件擁有x權(quán)限,說(shuō)明可以執(zhí)行該文件(一般程序文件、腳本文件、命令都需要執(zhí)行權(quán)限)
執(zhí)行權(quán)限x(execute)用數(shù)字表示是1
4、沒有權(quán)限—橫杠-
沒有任何權(quán)限用橫杠
-
表示,數(shù)字表示是
0
㈡ 理解UGO的含義
1、UGO指的是什么
UGO,指的是用戶身份,每個(gè)字母代表不同的用戶身份。
U(the user who owns it)
文件的擁有者(owner)或者創(chuàng)建者
G(other users in the file’sgroup)
在文件的所屬組(默認(rèn)是創(chuàng)建文件的用戶的主組)里的用戶
O(other usersnot inthe file’s group)
既不是文件的創(chuàng)建者,也不在文件屬組里的用戶,稱為其他人
注意:
除了上面ugo以外,還有一個(gè)字母a(all users),表示所有用戶,包含ugo
2、如何判斷不同身份的用戶對(duì)文件的權(quán)限
查看文件詳細(xì)信息,包含權(quán)限信息: [root@localhost ~]# ls -l total 144 -rw-r--r--. 1 root root 9 Mar 2 20:38 1.sh -rw-------. 1 root root 1651 Feb 28 11:00 anaconda-ks.cfg drwxr-xr-x. 2 root root 4096 Mar 6 18:34 Desktop drwxr-xr-x. 2 root root 4096 Feb 28 14:12 dir1
㈢ 修改文件普通權(quán)限(chmod)
1、chmod命令用法
chmod [選項(xiàng)] 文件名 常見選項(xiàng): -R, --recursive遞歸更改目錄和目錄里文件的權(quán)限
2、舉例說(shuō)明
① 通過(guò)字母形式更改文件權(quán)限
u:表示文件擁有者 g:表示文件屬組用戶 o:表示其他人,即不是文件的創(chuàng)建者,也不在文件屬組里 a:表示所有人
環(huán)境準(zhǔn)備
[root@localhost ~]# mkdir /tmp/dir1 [root@localhost ~]# touch /tmp/dir1/file{1..5} [root@localhost ~]# touch /tmp/test{1..3} [root@localhost ~]# ll /tmp/ -R
使用字母形式修改文件權(quán)限
[root@localhost tmp]# pwd /tmp [root@localhost tmp]# ll test1 -rw-r--r--. 1 root root 0 Mar 6 20:45 test1 [root@localhost tmp]# chmod u+x test1 [root@localhost tmp]# ll test1 -rwxr--r--. 1 root root 0 Mar 6 20:45 test1 [root@localhost tmp]# chmod g+w test1 [root@localhost tmp]# ll test1 -rwxrw-r--. 1 root root 0 Mar 6 20:45 test1 [root@localhost tmp]# chmod o-r test1 [root@localhost tmp]# ll test1 -rwxrw----. 1 root root 0 Mar 6 20:45 test1 [root@localhost tmp]# ll test2 -rw-r--r--. 1 root root 0 Mar 6 20:45 test2 [root@localhost tmp]# chmod a+x test2 [root@localhost tmp]# ll test2 -rwxr-xr-x. 1 root root 0 Mar 6 20:45 test2 [root@localhost tmp]# ll test3 -rw-r--r--. 1 root root 0 Mar 6 20:45 test3 [root@localhost tmp]# chmod u+x,g+w,o-r test3 [root@localhost tmp]# ll test3 -rwxrw----. 1 root root 0 Mar 6 20:45 test3 [root@localhost tmp]# chmod u=rw,g=rx,o+r test3 [root@localhost tmp]# ll test3 -rw-r-xr--. 1 root root 0 Mar 6 20:45 test3 修改目錄的權(quán)限: [root@localhost tmp]# ll -d dir1/ drwxr-xr-x. 2 root root 4096 Mar 6 20:45 dir1/ [root@localhost tmp]# ll dir1/ total 0 -rw-r--r--. 1 root root 0 Mar 6 20:45 file1 -rw-r--r--. 1 root root 0 Mar 6 20:45 file2 -rw-r--r--. 1 root root 0 Mar 6 20:45 file3 -rw-r--r--. 1 root root 0 Mar 6 20:45 file4 -rw-r--r--. 1 root root 0 Mar 6 20:45 file5 1.只修改目錄本身的權(quán)限 [root@localhost tmp]# chmod g+w dir1/ [root@localhost tmp]# ll -d dir1/ drwxrwxr-x. 2 root root 4096 Mar 6 20:45 dir1/ [root@localhost tmp]# ll dir1/ total 0 -rw-r--r--. 1 root root 0 Mar 6 20:45 file1 -rw-r--r--. 1 root root 0 Mar 6 20:45 file2 -rw-r--r--. 1 root root 0 Mar 6 20:45 file3 -rw-r--r--. 1 root root 0 Mar 6 20:45 file4 -rw-r--r--. 1 root root 0 Mar 6 20:45 file5 說(shuō)明:目錄下面文件的權(quán)限并沒有修改 2.修改目錄以及目錄里所有文件的權(quán)限(遞歸修改),使用-R參數(shù) [root@localhost tmp]# chmod -R o+w dir1/ [root@localhost tmp]# ll -d dir1/ drwxrwxrwx. 2 root root 4096 Mar 6 20:45 dir1/ [root@localhost tmp]# ll dir1/ total 0 -rw-r--rw-. 1 root root 0 Mar 6 20:45 file1 -rw-r--rw-. 1 root root 0 Mar 6 20:45 file2 -rw-r--rw-. 1 root root 0 Mar 6 20:45 file3 -rw-r--rw-. 1 root root 0 Mar 6 20:45 file4 -rw-r--rw-. 1 root root 0 Mar 6 20:45 file5
② 通過(guò)數(shù)字形式更改文件權(quán)限
學(xué)會(huì)用數(shù)字表示權(quán)限
字母和數(shù)字對(duì)應(yīng)關(guān)系: r——4 w——2 x——1 -——0 rw- r-x r--用數(shù)字表示就是654 rwx rw- ---用數(shù)字表示就是760 755用字母表示就是rwx r-x r-x 644用字母表示就是rw- r-- r--
使用數(shù)字形式修改文件權(quán)限
# chmod 644 file1 # chmod 700 file2 # chmod -R 755 dir1
總結(jié):
用戶是否可以刪除目錄里的文件,看的是目錄的權(quán)限?。?!
對(duì)于正常能夠操作的目錄來(lái)說(shuō),應(yīng)該默認(rèn)具備r-x
3、課堂練習(xí)
創(chuàng)建5個(gè)用戶user01~user05和一個(gè)admin組
將user01~user03用戶加入到admin組里
user01用戶在其家目錄里創(chuàng)建file1~file3三個(gè)文件
user02用戶編輯/home/user01/file1文件的內(nèi)容:good good study,day day up!
user05用戶往/home/user01/file1文件里追加內(nèi)容:I known
user04用刪除/home/user01家目錄的所有文件
三、高級(jí)權(quán)限(了解)
㈠ 高級(jí)權(quán)限有哪些
1、冒險(xiǎn)位(SETUID)
冒險(xiǎn)位,指文件操作者(用戶)
臨時(shí)擁有
文件
擁有者
的權(quán)限
冒險(xiǎn)位,一般針對(duì)的是
命令
或者
腳本文件
冒險(xiǎn)位,用字母表示是
s或S
;數(shù)字表示是
4
冒險(xiǎn)位的設(shè)置:chmod u+s 文件名或者chmod 4xxx 文件名
2、強(qiáng)制位(SETGID)
強(qiáng)制位,一般針對(duì)的是目錄
如果一個(gè)目錄擁有強(qiáng)制位,那么任何用戶在該目錄里所創(chuàng)建的任何文件的屬組都會(huì)繼承該目錄的屬組。
強(qiáng)制位,用字母表示是s或S;數(shù)字表示是2
強(qiáng)制位的設(shè)置:chmod g+s 文件名或者chmod 2xxx 文件名
3、粘滯位(STICKY)
粘滯位,一般針對(duì)的是公共目錄
如果一個(gè)公共目錄擁有粘滯位,那么該目錄下的文件,只有root和文件的創(chuàng)建者可以刪除,其他人只能自己管理自己。(A用戶不能刪除B用戶創(chuàng)建的文件)
粘滯位,用字母表示是t或T;數(shù)字表示是1
粘滯位的設(shè)置:chmod o+t 文件名或者chmod 1xxx 文件名
㈡ 高級(jí)權(quán)限設(shè)置
1、冒險(xiǎn)位舉例
需求: 給一個(gè)vim命令設(shè)置冒險(xiǎn)位,目的是任何人拿vim去修改文件可以臨時(shí)獲得文件擁有者的權(quán)限 [root@localhost tmp]# which vim /usr/bin/vim [root@localhost tmp]# ll /usr/bin/vim -rwxr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim [root@localhost tmp]# chmod u+s /usr/bin/vim 或者 [root@localhost tmp]# chmod 4755 /usr/bin/vim [root@localhost tmp]# ll /usr/bin/vim -rwsr-xr-x. 1 root root 2324712 Dec 22 2016 /usr/bin/vim 測(cè)試驗(yàn)證,普通用戶使用vim修改一個(gè)本沒有權(quán)限修改的文件: [root@localhost tmp]# ll /etc/passwd -rw-r--r--. 1 root root 1650 Mar 5 20:39 /etc/passwd [root@localhost tmp]# su - user01 [user01@localhost ~]$ vim /etc/passwd 驗(yàn)證是否可以修改成功,如果可以,說(shuō)明user01用戶臨時(shí)擁有了/etc/passwd文件擁有者的權(quán)限
2、強(qiáng)制位舉例
需求: 給目錄dir2設(shè)置一個(gè)強(qiáng)制位,測(cè)試是否任何人在該目錄里創(chuàng)建的文件屬組都是該目錄的屬組 [root@localhost tmp]# ll -d dir2 drwxr-xr-x. 2 root root 4096 Mar 6 13:42 dir2 給dir2增加強(qiáng)制位: [root@localhost tmp]# chmod g+s dir2 給dir2目錄設(shè)置權(quán)限,讓其他人可以寫 [root@localhost tmp]# chmod o+w dir2 [root@localhost tmp]# ll -d dir2 drwxr-srwx. 2 root root 4096 Mar 6 13:42 dir2 測(cè)試普通用戶user01在dir2目錄里創(chuàng)建文件的屬組是否是dir2的屬組 [root@localhost tmp]# su - user01 [user01@localhost ~]$ touch /tmp/dir2/file1 [user01@localhost ~]$ ll /tmp/dir2/file1 -rw-rw-r--. 1 user01 root 0 Mar 6 13:44 /tmp/dir2/file1
3、粘滯位舉例
需求: 在創(chuàng)建一個(gè)公共目錄/tmp/dir3,要求所有人都可以在該公共目錄里創(chuàng)建、刪除文件;但是只能自己管理自己,不能刪除別人的文件 [root@localhost ~]# mkdir /tmp/dir3 [root@localhost ~]# chmod 777 /tmp/dir3 [root@localhost ~]# chmod o+t /tmp/dir3 或者一步到位: [root@localhost ~]# chmod 1777 /tmp/dir3 [root@localhost ~]# ll -d /tmp/dir3 drwxrwxrwt. 2 root root 4096 Mar 6 13:52 /tmp/dir3 測(cè)試驗(yàn)證: 自己完成
㈢ 總結(jié)
高級(jí)權(quán)限分類
冒險(xiǎn)位——>針對(duì)命令 s/S 4 chmod u+s 命令文件
強(qiáng)制位——>針對(duì)目錄 s/S 2 chmod g+s 目錄
粘滯位
——>針對(duì)公共目錄 t/T 1 chmod o+t 公共目錄
高級(jí)權(quán)限設(shè)置
chmod 4xxx 文件名 chmod 2xxx 目錄名 chmod 1777 公共目錄
四、默認(rèn)權(quán)限(了解)
㈠ 什么是文件的默認(rèn)權(quán)限
所謂文件的默認(rèn)權(quán)限(遮罩權(quán)限),是指用戶創(chuàng)建文件后,文件天生就有的權(quán)限,不需要設(shè)置。
㈡ 文件默認(rèn)權(quán)限由誰(shuí)控制
文件默認(rèn)權(quán)限由一個(gè)叫做umask的東西來(lái)控制。
㈢ umask如何控制文件默認(rèn)權(quán)限
1、臨時(shí)控制
什么是臨時(shí)控制?
臨時(shí)控制,指的是用命令umask臨時(shí)設(shè)置,只在當(dāng)前終端當(dāng)前進(jìn)程中生效。
查看當(dāng)前用戶的umask: [root@localhost ~]# umask 0022 [root@localhost ~]# su - user01 [user01@localhost ~]$ umask 0002 注意: 1. 管理員和普通用戶的umask不同,就表示管理員和普通用戶創(chuàng)建的文件的默認(rèn)權(quán)限不同! 2. 第1位數(shù)字表示高級(jí)權(quán)限;后面3位數(shù)字表示普通權(quán)限
如何臨時(shí)設(shè)置用戶的umask?
寫在前面:
Linux系統(tǒng)中,默認(rèn)創(chuàng)建目錄的最大權(quán)限是0777;文件的最大權(quán)限是0666
777
666 rw-rw-rw-
[root@localhost ~]# umask 0007臨時(shí)設(shè)置root用戶的umask為0007 問(wèn):umask=0007,那么在當(dāng)前終端上root用戶所創(chuàng)建目錄和普通文件的權(quán)限分別是什么呢? 計(jì)算過(guò)程如下: umask=文件的最大權(quán)限-文件的默認(rèn)權(quán)限 目錄: 0007=0777-目錄的默認(rèn)權(quán)限 目錄的默認(rèn)權(quán)限=0777-0007=0770=rwxrwx--- 770 普通文件: 0007=0666-普通文件的默認(rèn)權(quán)限 普通文件的默認(rèn)權(quán)限=0666-0007=0660=rw-rw---- 說(shuō)明: 1.權(quán)限用數(shù)字表示時(shí)沒有負(fù)數(shù),所以最小就是0 2.默認(rèn)權(quán)限規(guī)則遵循Linux系統(tǒng)中權(quán)限最小化原則 $ stu1 umask 0003 dir: 默認(rèn)權(quán)限=目錄最大權(quán)限-umask=777-003=774rwxrwxr-- file: 默認(rèn)權(quán)限=文件最大權(quán)限-umask=666-003=663 rw- rw- -wx 實(shí)際: 664 rw-rw-r--
2、永久控制
什么是永久設(shè)置?
永久設(shè)置,指的是通過(guò)修改配置文件設(shè)置,對(duì)用戶的所有終端所有進(jìn)程生效
修改哪個(gè)配置文件呢?
相關(guān)配置文件介紹
全局配置文件(針對(duì)所有用戶所有進(jìn)程) /etc/profile 系統(tǒng)和用戶的環(huán)境變量信息,當(dāng)用戶第一次登錄時(shí),該文件被讀取 /etc/bashrc 每個(gè)運(yùn)行的bash信息(系統(tǒng)別名、函數(shù)及默認(rèn)權(quán)限的定義),當(dāng)bash被打開時(shí),該文件被讀取 局部配置文件(針對(duì)某個(gè)特定用戶以及用戶的所有進(jìn)程) ~/.bashrc 當(dāng)前用戶的bash信息,當(dāng)用戶登錄和每次打開新的shell時(shí)該文件被讀取 ~/.bash_profile 當(dāng)前用戶的環(huán)境變量,當(dāng)用戶登錄時(shí),該文件被讀取 ~/.bash_history 保存當(dāng)前用戶歷史命令的文件 ~/.bash_logout 當(dāng)用戶退出bash或者終端時(shí),會(huì)首先執(zhí)行該文件里的代碼,然后再退出
2. 如何永久設(shè)置用戶的umask?
1.針對(duì)所有用戶生效 # vim /etc/bashrc 在該文件的最后增加以下內(nèi)容: umask 0007 重新讀取該配置文件讓其立馬生效 # source /etc/bashrc 或者 # . /etc/bashrc 2.針對(duì)某個(gè)用戶生效 比如,只針對(duì)user01用戶生效 [user01@localhost ~]$ vim ~/.bashrc 在該文件的最后增加以下內(nèi)容: umask 0007
五、文件的屬主和屬
如何修改文件的屬主和屬組
1、chown命令修改
chown命令既可以修改文件的屬主,也可以修改文件的屬組。
只修改文件的屬主 # chown 用戶名 文件名 修改文件的屬主和屬組 # chown 用戶名.組名 文件名 # chown 用戶名:組名 文件名 # chown 用戶名.文件名//沒有指定組名,默認(rèn)是用戶的主組 只修改文件的屬組 # chown .組名文件名 # chown :組名 文件名 可以加-R選項(xiàng),表示遞歸修改
2、chgrp命令修改
chgrp命令只能修改文件的屬組。
# chgrp 組名 文件名
六、ACL訪問(wèn)控制策略(擴(kuò)展)
㈠ ACL能做什么
ACL訪問(wèn)控制策略可以作為前面所講
權(quán)限的補(bǔ)充
,
更加細(xì)
的來(lái)控制文件的權(quán)限
ACL策略可以
只針對(duì)某個(gè)用戶
在文件上有相應(yīng)權(quán)限
ACL策略也可以
只針對(duì)多個(gè)用戶或者一個(gè)組
里的所有用戶在文件上有相應(yīng)權(quán)限
㈡ 如何設(shè)置文件的ACL策略
1、設(shè)置ACL策略(setfacl)
常用選項(xiàng): -m修改或者設(shè)置ACL策略 -R 遞歸授權(quán),對(duì)目錄下已存在的目錄或文件有acl策略,但新建的文件沒有 -x 去掉某個(gè)用戶或者某個(gè)組的權(quán)限 -b 刪除所有的acl策略 -d 默認(rèn)ACL策略,只針對(duì)目錄,該目錄下新建的目錄和文件都會(huì)繼承acl策略 mask: 定義除其他人和所有者外的最大權(quán)限
重點(diǎn)掌握:
setfacl -m u:用戶:rwx /home/redhat/file1 給單個(gè)用戶單獨(dú)加權(quán)限 setfacl -m g:組名:rwx /home/redhat/file1 給單個(gè)組單獨(dú)加權(quán)限 setfacl -x u:用戶 /home/redhat/file1 去掉某個(gè)用戶的權(quán)限 setfacl -x g:組名 /home/redhat/file1 去掉某個(gè)組的acl策略 setfacl -b /home/redhat/file1 刪除文件上所有的acl策略 # setfacl -m urw file1 針對(duì)于單個(gè)用戶給可讀可寫權(quán)限 # setfacl -m grw file1 針對(duì)于單個(gè)組給可讀可寫權(quán)限
2、查看ACL策略(getfacl)
# getfacl 文件名
鏈接:https://www.cnblogs.com/rallina/p/17931072.html
-
Linux
+關(guān)注
關(guān)注
87文章
11324瀏覽量
209938 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7522瀏覽量
88290 -
權(quán)限管理
+關(guān)注
關(guān)注
0文章
12瀏覽量
9071
原文標(biāo)題:六、ACL訪問(wèn)控制策略(擴(kuò)展)
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論