3月21日第16天課堂筆記

第12章 Linux系統(tǒng)權(quán)限知識(shí)及應(yīng)用實(shí)踐

1、 Linux基礎(chǔ)權(quán)限是9個(gè)字符。
[root@yuzhiwei~]# ls -lhi
total 16K
33651696 -rw-r--r-- 1 root root 8 Mar 14 18:45 1.txt
-rw-r--r--

分3組:
前三個(gè)字符標(biāo)識(shí)用戶(屬主)權(quán)限位 user(用戶) u
中三個(gè)字符是標(biāo)識(shí)用戶組權(quán)限位 group(用戶組) g
后三個(gè)字符是其他用戶權(quán)限位 orhers(其他用戶) o
同一組的三個(gè)字符權(quán)限也是有位置的:

r--
第一個(gè)字符的位置是讀的權(quán)限位
第二個(gè)字符的位置是寫的權(quán)限位
第三個(gè)字符的位置是執(zhí)行的權(quán)限位

r 4
w 2
x 1

  • 0

2、文件權(quán)限詳細(xì)說(shuō)明:

(1)可讀r:表示具有讀取、瀏覽文件內(nèi)容(讀取文件實(shí)體block)的權(quán)限。
(2)可寫w:表示具有新增、修改、刪除文件內(nèi)容的權(quán)限。
(3)可執(zhí)行x:表示具有執(zhí)行文件的權(quán)限。

2.1、其中,對(duì)于可寫r,有兩點(diǎn)需要說(shuō)明:
a、如果沒有可讀r配合,那么使用vi編輯文件時(shí)會(huì)提示無(wú)法編輯(但可強(qiáng)制編輯),可以使用echo等命令進(jìn)行重定向或追加;
b、刪除文件或創(chuàng)建文件的權(quán)限是受上一級(jí)目錄的權(quán)限控制的(因?yàn)槲募麤]有存放在Inode里,而是在上級(jí)目錄的Block里存放,若修改上級(jí)目錄的Block,當(dāng)然會(huì)受上級(jí)目錄的Inode權(quán)限控制),和文件本身的權(quán)限無(wú)關(guān),因此,文件本身的可寫w權(quán)限和文件是否能被刪除和改名無(wú)關(guān)。

2.2、對(duì)于可執(zhí)行x,有三點(diǎn)需要說(shuō)明:
a、首先文件的本身要能夠執(zhí)行(命令或腳本)。
b、如果是普通用戶,同時(shí)還需要具備可讀r的權(quán)限才能執(zhí)行文件。
c、root用戶只要有可執(zhí)行x的權(quán)限就能執(zhí)行文件。

3、目錄權(quán)限詳細(xì)說(shuō)明:
(1)可讀r:表示具有瀏覽目錄下面文件及子目錄內(nèi)容的權(quán)限。
(2)可寫w:表示具有增加、刪除或修改目錄內(nèi)文件的權(quán)限。
(3)可執(zhí)行x:表示具有進(jìn)入目錄的權(quán)限。例如可以執(zhí)行cd dir命令切刀目錄下,但是無(wú)法列出目錄下的文件及子目錄。

測(cè)試準(zhǔn)備:
incahome(家、組)
oldboy 家庭男主人,用來(lái)代表用戶(User)角色,是文件的所有者
oldgirl 女主人(和所有者oldboy屬于相同組,oldboy的家人)用來(lái)代表用戶組incahome的角色
test 其他人 其他(others)人,用來(lái)代表其他用戶角色
[root@oldboyedu ~]# groupadd incahome
[root@oldboyedu ~]# useradd oldboy
useradd: user 'oldboy' already exists
[root@oldboyedu ~]# usermod -g incahome oldboy
[root@oldboyedu ~]# id oldboy
uid=1000(oldboy) gid=1004(incahome) groups=1004(incahome),1000(oldboy)

如果此前沒有創(chuàng)建oldboy,可以執(zhí)行下面命令,而不需要usermod命令。
[root@oldboyedu ~]# useradd oldboy -g incahome

[root@oldboyedu ~]# useradd oldgirl -g incahome
useradd: user 'oldgirl' already exists
[root@oldboyedu ~]# id oldgirl
uid=1001(oldgirl) gid=1001(oldgirl) groups=1001(oldgirl)
[root@oldboyedu ~]# usermod -g incahome oldgirl
[root@oldboyedu ~]# id oldgirl
uid=1001(oldgirl) gid=1004(incahome) groups=1004(incahome)
[root@oldboyedu ~]# useradd test
useradd: user 'test' already exists

圖片11.png

權(quán)限修改:
777 +x -x u=w g-x

4、Linux權(quán)限有兩種表現(xiàn)形式:
4.1、數(shù)字表示法
r 4
w 2
x 1
- 0
實(shí)際的權(quán)限表示就是將沒三位相加即可。
rwxr-xr-x 755
rwx 7
r-x 5
r-x 5

4.2、字符表示法
chmod 修改文件權(quán)限
-R 遞歸修改
rw-rw-r-x 代表的數(shù)字權(quán)限為665
--xr-x-wx 代表的數(shù)字權(quán)限為153
-wx--x--x 代表的數(shù)字權(quán)限為311

而以下數(shù)字權(quán)限表示的字符權(quán)限如下:
755 代表的字符權(quán)限為rwxr-xr-x
644 代表的字符權(quán)限為rw-r--r--
134 代表的字符權(quán)限為--x-wxr--

5、修改文件屬性的用戶和組
chown 用戶.用戶組 文件 這里的.可以用:代替
chown 用戶 文件
chwom .用戶組 文件

chgrp incahome test.txt
[root@oldboyedu /oldboy]# chown oldboy test.sh
[root@oldboyedu /oldboy]# ls -l
total 4
---x--x--x 1 oldboy root 12 Oct 7 22:16 test.sh
[root@oldboyedu /oldboy]# chown .incahome test.sh
[root@oldboyedu /oldboy]# ls -l
total 4
---x--x--x 1 oldboy incahome 12 Oct 7 22:16 test.sh
[root@oldboyedu /oldboy]# chown root:root test.sh
[root@oldboyedu /oldboy]# ls -l
total 4
---x--x--x 1 root root 12 Oct 7 22:16 test.sh
[root@oldboyedu /oldboy]#

6、企業(yè)環(huán)境下文件和目錄的安全核心知識(shí)
安全權(quán)限臨界點(diǎn):
文件不想被修改被執(zhí)行:644
創(chuàng)建文件默認(rèn)權(quán)限:644
目錄不想被修改(刪除移動(dòng)創(chuàng)建)被執(zhí)行(進(jìn)入):755
創(chuàng)建目錄默認(rèn)權(quán)限:755

7、企業(yè)真實(shí)案例:網(wǎng)站文件被惡意修改了。。。。打開網(wǎng)站后有彈窗廣告(不是你網(wǎng)站的)用戶打開網(wǎng)站,報(bào)警。原因:權(quán)限設(shè)置不到位。chmod -R 777 目錄 開發(fā)人員習(xí)慣 解決方案:
1、備份 tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
2、找到被修改的文件 [root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd' /oldboy/oldboy.txt:<script>ddddddddddddd</scripts> /oldboy/[圖片上傳失敗...(image-1e13d6-1553324388695)test.sh:<script>ddddddddddddd</scripts>
3、批量刪除 [root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d' [root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
4、找到文件被篡改來(lái)源,并優(yōu)化調(diào)整。 亡羊補(bǔ)牢。
5、寫總結(jié) 故障報(bào)告。

8、控制默認(rèn)權(quán)限的東西 umask
創(chuàng)建文件默認(rèn)最大權(quán)限為666(-rw-rw-rw),其創(chuàng)建默認(rèn)文件沒有可執(zhí)行權(quán)限x位。

666
022 -

644 默認(rèn)權(quán)限
[root@oldboyedu /oldboy]# umask 044 ====臨時(shí)
[root@oldboyedu /oldboy]# touch abc
[root@oldboyedu /oldboy]# ls -l abc
-rw--w--w- 1 root root 0 Oct 7 23:42 abc

[root@oldboyedu /oldboy]# umask 044
[root@oldboyedu /oldboy]# touch abc
[root@oldboyedu /oldboy]# ls -l abc
-rw--w--w- 1 root root 0 Oct 7 23:42 abc

[root@oldboyedu /oldboy]# umask
0044
[root@oldboyedu /oldboy]# umask 043
[root@oldboyedu /oldboy]# umask
0043

[root@oldboyedu /oldboy]# touch a
[root@oldboyedu /oldboy]# ls -l a
-rw--w-r-- 1 root root 0 Oct 7 23:44 a
當(dāng)umask中存在奇數(shù)位的時(shí)候,在計(jì)算完畢,奇數(shù)為加1

9、基于文件:默認(rèn)權(quán)限規(guī)則 了解
從666計(jì)算
umask都為偶數(shù),默認(rèn)權(quán)限用減法
umask有奇數(shù),默認(rèn)權(quán)限用減法,然后奇數(shù)為加1

10、基于目錄:默認(rèn)權(quán)限規(guī)則
從777計(jì)算
權(quán)限默認(rèn)用減法

Linux系統(tǒng)特殊權(quán)限位知識(shí)

3位特殊權(quán)限位:

suid位:(針對(duì)二進(jìn)制命令)
suid位通過(guò)S字符標(biāo)識(shí),
存在于基本權(quán)限的用戶權(quán)限位的x權(quán)限對(duì)應(yīng)的位置,
如果用戶權(quán)限位對(duì)應(yīng)的x權(quán)限位上有x權(quán)限,則suid就用小寫的s標(biāo)識(shí),
suid的s對(duì)應(yīng)的數(shù)字權(quán)限為4,完整權(quán)限用八進(jìn)制數(shù)4000表示。

suid核心知識(shí)小結(jié)
(1)suid功能是針對(duì)二進(jìn)制命令或程序的,不能用在Shell等類似腳本文件上。
(2)用戶或?qū)僦鲗?duì)應(yīng)的前三位權(quán)限的x位上,如果有s(S)就表示具備suid權(quán)限。
(3)Suid的作用就是讓普通用戶可以在執(zhí)行某個(gè)設(shè)置了suid位的命令或程序時(shí),擁有和命令對(duì)應(yīng)屬主(一般為root管理員)一樣的身份和權(quán)限(默認(rèn))。
(4)二進(jìn)制命令程序需要有可執(zhí)行權(quán)限x配合才行。
(5)Suid對(duì)應(yīng)的身份和權(quán)限僅在程序命令執(zhí)行過(guò)程中有效。
(6)Suid是一把雙刃劍,是一個(gè)比較危險(xiǎn)的功能,對(duì)系統(tǒng)安全有一定的威脅,企業(yè)里用戶授權(quán)可以使用sudo等替代suid功能。
(7)在進(jìn)行安全優(yōu)化時(shí),系統(tǒng)中默認(rèn)設(shè)置了suid 權(quán)限的命令要取消掉。

4 2 1,加和放在基礎(chǔ)權(quán)限數(shù)字的前面。

修改方法:
[root@oldboyedu /oldboy]# chmod 7755 abc

預(yù)測(cè):-rwsr-sr-t
[root@oldboyedu /oldboy]# chmod 7755 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwsr-sr-t 1 root root 0 Oct 7 23:42 abc
[root@oldboyedu /oldboy]# chmod 7644 abc
[root@oldboyedu /oldboy]# ls -l abc
-rwSr-Sr-T 1 root root 0 Oct 7 23:42 abc

工作中如何使用?
suid到底有什么用
簡(jiǎn)單地說(shuō),suid的作用就是讓普通用戶可以在執(zhí)行某個(gè)設(shè)置了suid位的命令或程序時(shí),
擁有和root管理員一樣的身份和權(quán)限(默認(rèn)情況)。

[oldgirl@oldboyedu /]$ ll -ld oldboy/
dr-x-wxrw-. 2 oldboy incahome 6 Oct 7 22:15 oldboy/
oldgirl屬于incahome,增加一個(gè)用戶屬于incahome,是不是也和oldgirl有同樣權(quán)限。
oldboy 給一個(gè)新用戶設(shè)置suid,這個(gè)新用戶的權(quán)限就和oldboy一樣。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容