Linux基礎(chǔ)權(quán)限是9個(gè)字符梁棠。
[root@oldboyedu ~]# ls -lhi
total 36K
33631870 -rw-r--r--. 1 root root? ? 21 Oct? 6 22:54 a.txt
33631871 -rw-r--r--. 1 root root? ? 16 Oct? 6 23:02 b.txt
33631857 -rw-r--r--? 1 root root? ? 61 Oct? 7 00:11 c.txt
rw-r--r--
rw-r--r--
rw-r--r--
分3組:
前三個(gè)字符是表示用戶(屬主)權(quán)限位? user(用戶) u
中三個(gè)字符是表示用戶組權(quán)限位 group(用戶組)? ? g
后三個(gè)字符是其它用戶權(quán)限位 others(其他用戶)? ? o
同一組的三個(gè)字符權(quán)限也是有位置的:
r-- 第一個(gè)字符的位置讀的權(quán)限位
? ? 第二個(gè)字符的位置寫的權(quán)限位
第三個(gè)字符的位置是執(zhí)行的權(quán)限位。
r? 4
w? 2
x? 1
-? 0
【文件】權(quán)限詳細(xì)說明:****
【目錄】權(quán)限詳細(xì)說明:****
測試準(zhǔn)備:
incahome(家男娄、組)
oldboy 家庭男主人模闲,用來代表用戶(User)角色,是文件的所有者
oldgirl 女主人(和所有者oldboy屬于相同組实夹,oldboy的家人)用來代表用戶組incahome的角色
test? 其他人 其他(others)人,用來代表其他用戶角色
[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
準(zhǔn)備環(huán)境:
[root@oldboyedu ~]# mkdir -p /oldboy
[root@oldboyedu ~]# echo "echo oldboyLinux" >/oldboy/test.sh
[root@oldboyedu ~]# chmod +x /oldboy/test.sh
1. 測試默認(rèn)情況下不同用戶的對應(yīng)權(quán)限
[root@oldboyedu /oldboy]# chown oldboy.incahome test.sh
[root@oldboyedu /oldboy]# ls -l
total 4
-rwxr-xr-x 1 oldboy incahome 22 Oct? 7 21:18 test.sh
權(quán)限修改:
777 +x -x? u=w? g-x
Linux權(quán)限有兩種表現(xiàn)形式:
1由捎、數(shù)字表示法 稱為8進(jìn)制權(quán)限
r 4
w 2
x 1
- 0
實(shí)際的權(quán)限表示就是將每3位相加即可。
rwxr-xr-x? 755
rwx 7
r-x 5
r-x 5
2、字符表示法
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--
修改文件屬性的用戶和組
chown 用戶.用戶組 文件? 這里的點(diǎn)可以用:替換膳凝。
chown 用戶 文件
chown .用戶組 文件? ====chgrp 用戶組 文件
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]#
安全權(quán)限臨界點(diǎn):
文件不想被修改被執(zhí)行:644
[root@oldboyedu /oldboy]# touch oldboy.txt
[root@oldboyedu /oldboy]# ls -l
total 4
-rw-r--r-- 1 root? ? root? 0 Oct? 7 23:21 oldboy.txt
目錄不想被修改(刪除移動(dòng)創(chuàng)建)被執(zhí)行(進(jìn)入):755
博客:寫博客著淆。劫狠。拴疤。服務(wù)器的博客目錄和文件的權(quán)限,防止被惡意篡改独泞。
企業(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/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、找到文件被篡改來源屠升,并優(yōu)化調(diào)整潮改。
亡羊補(bǔ)牢。
5弥激、寫總結(jié) 故障報(bào)告进陡。
控制默認(rèn)權(quán)限的東西? umask
[root@oldboyedu /oldboy]# umask
022
創(chuàng)建文件默認(rèn)最大的權(quán)限為666 (-rw-rw-rw-),其默認(rèn)創(chuàng)建的文件沒有可執(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
666
011
-------------------
655
11
-----------------
666
基于文件:默認(rèn)權(quán)限規(guī)則 了解
從666計(jì)算
umask都為偶數(shù) 默認(rèn)權(quán)限用減法
umask有奇數(shù) 默認(rèn)權(quán)限用減法 然后奇數(shù)位加1
基于目錄:默認(rèn)權(quán)限規(guī)則
從777計(jì)算
默認(rèn)權(quán)限用減法
Linux系統(tǒng)特殊權(quán)限位知識(shí)
9位基礎(chǔ)權(quán)限
還有3位特殊權(quán)限位
suid位:
suid(setuid)位通過S字符標(biāo)識(shí)以蕴,
存在于基本權(quán)限的用戶權(quán)限位的x權(quán)限對應(yīng)的位置,
如果用戶權(quán)限位對應(yīng)的x權(quán)限位上有x權(quán)限辛孵,則suid就用小寫的s標(biāo)識(shí)丛肮,
suid的s對應(yīng)的數(shù)字權(quán)限為4,完整權(quán)限用八進(jìn)制數(shù)4000表示魄缚。
sgid位:
sgid(setgid)位同樣是通過S字符來標(biāo)識(shí)宝与,
但是,sgid位存在于基本權(quán)限的用戶組權(quán)限位的x權(quán)限對應(yīng)的位置冶匹,
如果用戶組權(quán)限位對應(yīng)的x權(quán)限位上有x權(quán)限习劫,則sgid就用小寫的s標(biāo)識(shí),
suid的s對應(yīng)的數(shù)字權(quán)限為2嚼隘,完整的權(quán)限用八進(jìn)制數(shù)2000表示诽里。
sticky(粘滯位)知識(shí)簡介
sticky(粘滯)位通過字符T標(biāo)識(shí),存在于基本權(quán)限的其他用戶位對應(yīng)的x權(quán)限位上飞蛹,
如果其他用戶位的x權(quán)限位上有x權(quán)限谤狡,
則sticky(粘滯)位通過小寫的t標(biāo)識(shí)灸眼,對應(yīng)的數(shù)字權(quán)限是1,
完整的權(quán)限用八進(jìn)制數(shù)1000表示墓懂。
4 2 1焰宣,加和放在基礎(chǔ)權(quán)限數(shù)字的前面。
修改方法:
[root@oldboyedu /oldboy]# chmod 7755 abc
預(yù)測:-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到底有什么作用
簡單地說宛徊,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一樣苞氮。
命令筆記
文件屬性
chmod 修改文件權(quán)限
-R 遞歸修改
chown 改變文件用戶和組
-R 遞歸修改
chgrp 修改用戶組
-l? 列表定時(shí)任務(wù)
用戶管理
id 查看用戶身份
whoami 查看當(dāng)前用戶
usermod 修改用戶屬性
groupadd 添加用戶組
stat 查看文件屬性
-c 獲取文件屬性的一部分
%A 顯示字符權(quán)限