linux下wxr的权限,Day16-Linux权限知识和应用实践讲解
Linux基礎權限是9個字符。
[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組:
前三個字符是表示用戶(屬主)權限位 ?user(用戶) u
中三個字符是表示用戶組權限位 group(用戶組) ? ? g
后三個字符是其它用戶權限位 others(其他用戶) ? ?o
同一組的三個字符權限也是有位置的:
r-- 第一個字符的位置讀的權限位
第二個字符的位置寫的權限位
第三個字符的位置是執行的權限位。
r ?4
w ?2
x ?1
- ?0
【文件】權限詳細說明:****
【目錄】權限詳細說明:****
測試準備:
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)
如果此前沒有創建oldboy,可以執行下面命令,而不需要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
準備環境:
[root@oldboyedu ~]# mkdir -p /oldboy
[root@oldboyedu ~]# echo "echo oldboyLinux" >/oldboy/test.sh
[root@oldboyedu ~]# chmod +x /oldboy/test.sh
1. 測試默認情況下不同用戶的對應權限
[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
權限修改:
777 +x -x ?u=w ?g-x
Linux權限有兩種表現形式:
1、數字表示法 稱為8進制權限
r 4
w 2
x 1
- 0
實際的權限表示就是將每3位相加即可。
rwxr-xr-x ?755
rwx 7
r-x 5
r-x 5
2、字符表示法
rw-rw-r-x ?代表的數字權限為665
--xr-x-wx ?代表的數字權限為153
-wx--x--x ?代表的數字權限為311
而以下數字權限表示的字符權限如下:
755 ?代表的字符權限為rwxr-xr-x
644 ?代表的字符權限為rw-r--r--
134 ?代表的字符權限為--x-wxr--
修改文件屬性的用戶和組
chown 用戶.用戶組 文件 ?這里的點可以用:替換。
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]#
安全權限臨界點:
文件不想被修改被執行: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
目錄不想被修改(刪除移動創建)被執行(進入):755
博客:寫博客。。。服務器的博客目錄和文件的權限,防止被惡意篡改。
企業真實案例:網站文件被惡意修改了。。。。打開網站后有彈窗廣告(不是你網站的)
用戶打開網站,報警。
原因:權限設置不到位。chmod -R 777 目錄 開發人員習慣
解決方案:
1、備份
tar zcvf /opt/oldboy_$(date +%F).tar.gz ./oldboy/
2、找到被修改的文件
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
/oldboy/oldboy.txt:
/oldboy/test.sh:
3、批量刪除
[root@oldboyedu /]# find /oldboy -type f |xargs sed -i '/ddddddddddddd/d'
[root@oldboyedu /]# find /oldboy -type f |xargs grep 'ddddddddddddd'
4、找到文件被篡改來源,并優化調整。
亡羊補牢。
5、寫總結 故障報告。
控制默認權限的東西 ?umask
[root@oldboyedu /oldboy]# umask
022
創建文件默認最大的權限為666 (-rw-rw-rw-),其默認創建的文件沒有可執行權限x位。
666
022 -
--------------------
644 默認權限
[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 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
當umask中存在奇數位的時候,在計算完畢,奇數位加1
666
011
-------------------
655
11
-----------------
666
基于文件:默認權限規則 了解
從666計算
umask都為偶數 默認權限用減法
umask有奇數 默認權限用減法 然后奇數位加1
基于目錄:默認權限規則
從777計算
默認權限用減法
Linux系統特殊權限位知識
9位基礎權限
還有3位特殊權限位
suid位:
suid(setuid)位通過S字符標識,
存在于基本權限的用戶權限位的x權限對應的位置,
如果用戶權限位對應的x權限位上有x權限,則suid就用小寫的s標識,
suid的s對應的數字權限為4,完整權限用八進制數4000表示。
sgid位:
sgid(setgid)位同樣是通過S字符來標識,
但是,sgid位存在于基本權限的用戶組權限位的x權限對應的位置,
如果用戶組權限位對應的x權限位上有x權限,則sgid就用小寫的s標識,
sgid的s對應的數字權限為2,完整的權限用八進制數2000表示。
sticky(粘滯位)知識簡介
sticky(粘滯)位通過字符T標識,存在于基本權限的其他用戶位對應的x權限位上,
如果其他用戶位的x權限位上有x權限,
則sticky(粘滯)位通過小寫的t標識,對應的數字權限是1,
完整的權限用八進制數1000表示。
4 2 1,加和放在基礎權限數字的前面。
修改方法:
[root@oldboyedu /oldboy]# chmod 7755 abc
預測:-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的作用就是讓普通用戶可以在執行某個設置了suid位的命令或程序時,
擁有和root管理員一樣的身份和權限(默認情況)。
[oldgirl@oldboyedu /]$ ll -ld oldboy/
dr-x-wxrw-. 2 oldboy incahome 6 Oct ?7 22:15 oldboy/
oldgirl屬于incahome,增加一個用戶屬于incahome,是不是也和oldgirl有同樣權限。
oldboy 給一個新用戶設置suid,這個新用戶的權限就和oldboy一樣。
總結
以上是生活随笔為你收集整理的linux下wxr的权限,Day16-Linux权限知识和应用实践讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统更新字体,更换Linux下
- 下一篇: linux自动运行python脚本,执行