18.1.2-linux目錄文件隱藏屬性和特殊權限
linux目錄文件隱藏屬性和特殊權限
內容:
1.linux權限查看 計算 修改
2.文件和目錄rwx含義
3.各種權限拒絕錯誤排查
4.如何讓網站通過權限控制 盡量安全
5.通過umask計算默認的權限
6.文件系統的屬性(隱藏屬性)
7.linux特殊權限 suid , 粘滯位(/tmp)
第1章 網站權限-通過控制權限讓網站安全
1.1 文件或目錄安全 (比較安全的權限)
file rw-r--r-- root root oldboy.txt
dir rwxr-xr-x root root oldboy.txt
file 644 dir 755 屬於
1.2 網站安全: ---站點目錄(存放網站程序)
/app/blog 網站程序存放
/app/blog/upload 用戶上傳目錄(用戶的頭像 上傳的圖片或附件)
1.3 如何讓/app/blog目錄安全
1.3.1
1.blog目錄
file 644 root root
dir 755 root root
2.blog/upload目錄
file 644 www www
dir 755 www www
運行博客 通過www用戶(虛擬用戶,被破譯也不可以登錄系統)運行 (root用戶運行太危險,一旦破解就掌控了服務器)
1.3.2 環境準備:
useradd www
mkdir -p /app/blog/upload
touch /app/blog/awk.html /app/blog/renyi.jpg /app/blog/li.avi
1.3.3 測試及報錯
su - www
#www用戶上傳一個文件
#www用戶在 upload裏面創建一個文件
[www@oldboyedu43-lnb blog]$ touch upload/oldboy.jpg
touch: cannot touch `upload/oldboy.jpg': Permission denied
[www@oldboyedu43-lnb blog]$ #upload目錄
[www@oldboyedu43-lnb blog]$ ls -ld upload/
drwxr-xr-x 2 root root 4096 Dec 28 17:47 upload/
[www@oldboyedu43-lnb blog]$ #其他人 r-x
1.3.4 解決方法1 給其他用戶寫權限
chmod o+w upload
drwxr-xrwx 2 root root 4096 Dec 28 17:47 upload/
權限太大了
1.3.5 解決方法2 把upload目錄送給 www
chown www.www upload
drwxr-xr-x 2 www www 4096 Dec 28 17:47 upload/
noexec 不讓運行
最後 只能上傳,不能查看
1) --網站是以www用戶的身份運行
網站權限的控制 2)--file 644 dir 755 root root
3)upload file 644 www www
代碼程序控制 1)--上傳上來的文件無法運行
2)--上傳上來沒有執行權限
第2章 umask --反掩碼 是什麽 怎麽計算 如何修改
2.1 Linux中默認的最大權限
file 666
dir 777
2.2 umask
2.2.1 作用:控制系統默認的權限
2.2.2 查看 [root@oldboy ~]# umask
0022
2.2.3 通過umask計算 系統默認的權限
file 666
-022
=644
dir 777
-022
=755
2.2.4 umask
臨時
[root@oldboy ~]# umask 032
[root@oldboy ~]# umask
0032
新創建文件
file 666
-032
=634
+010
=644
文件:奇數位加一
新創建目錄
dir 777
-032
=745
目錄正常
永久(了解,千萬不要改)
/etc/profile 千萬不能改
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
如果 [ 當前用戶uid > 199 ] 並且 [ "用戶組名字" = "用戶的名字" ]; 然後
umask 002
那麽
umask 022
果如
第3章 文件系統屬性(文件的隱藏屬性)
3.1 與文件系統屬性相關命令 查看隱藏權限lsattr
查看文件系統屬性lsattr = == ==ls attribute
[root@oldboy ~]# lsattr
-------------e- ./install.log.syslog
-------------e- ./oldboy.txt
修改文件系統屬性chattr = = == = change attr + 加某種屬性 - 去除某種屬性
a ==只能追加 (不能刪除或修改原文件內容,只能在最後追加)
i ==無敵了(不能刪除,修改或追加)
例1: a屬性
[root@oldboy ~]# lsattr oldboy.txt 查看文件系統屬性
-------------e- oldboy.txt
[root@oldboy ~]# chattr +a oldboy.txt 為文件加上a屬性
[root@oldboy ~]# lsattr oldboy.txt
-----a-------e- oldboy.txt
[root@oldboy ~]# echo "I love you">>oldboy.txt 可以為文件追加內容
[root@oldboy ~]# echo "I love you">oldboy.txt 不可以清空原文件增加內容
-bash: oldboy.txt: Operation not permitted
[root@oldboy ~]# rm -f oldboy.txt 不可以刪除原文件
rm: cannot remove `oldboy.txt': Operation not permitted
[root@oldboy ~]# chattr -a oldboy.txt 最後實驗完記得把文集系統屬性改回來
[root@oldboy ~]# lsattr oldboy.txt
-------------e- oldboy.txt
例2: i屬性
[root@oldboy ~]# lsattr oldboy.txt 查看文件屬性
-------------e- oldboy.txt
[root@oldboy ~]# chattr +i oldboy.txt 為文件加上i屬性
[root@oldboy ~]# lsattr oldboy.txt
----i--------e- oldboy.txt
[root@oldboy ~]# echo "I love you">>oldboy.txt 不可往文件中追加內容
-bash: oldboy.txt: Permission denied
[root@oldboy ~]# echo "I love you">oldboy.txt 不可清空文件
-bash: oldboy.txt: Permission denied
[root@oldboy ~]# \rm -f oldboy.txt 不可刪除文件
rm: cannot remove `oldboy.txt': Operation not permitted
[root@oldboy ~]# chattr -i oldboy.txt 實驗完記得把文件系統屬性改回來
[root@oldboy ~]# lsattr oldboy.txt
-------------e- oldboy.txt
3.2 重要用法:
主要命令文件 +i
重要配置文件 +a
第4章 查看系統負載系列
w 查看系統負載
top 動態查看負載 (顯示不全)
作業:yum安裝 --(為什麽安不上 怎麽及解決)
htop升級版的top
iotop 查詢系統磁盤讀寫
iftop 查看網絡信息 流量
第5章 特殊權限
5.1 情景引入: 查看特殊權限 ls -l s
[root@oldboy ~]# ls -ld /usr/bin/passwd /tmp/ /usr/bin/locate
drwxrwxrwt. 5 root root 4096 Jan 2 03:42 /tmp/ 特殊權限,顏色的不同
-rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate t權限和s權限
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
5.1.1 -s 用戶在運行這個命令時相當於root用戶 ===4 ==suid setuid
[root@oldboy ~]# ls -l /usr/bin/passwd 查看文件隱藏權限
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
[root@oldboy ~]# chmod u-s /usr/bin/passwd 為文件去除s隱藏權限
[root@oldboy ~]# ls -l /usr/bin/passwd
-rwxr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
[root@oldboy ~]# chmod u+s /usr/bin/passwd 也可以 chmod 4755 為文件添加s隱藏權限
[root@oldboy ~]# ls -l /etc/shadow 用戶密碼文件默認都沒有任何權限
----------. 1 root root 1094 Jan 2 01:20 /etc/shadow
[root@oldboy ~]# su - oldboy
[oldboy@oldboy ~]$ passwd oldboy用戶可以設置自己的密碼
Changing password for user oldboy.
Changing password for oldboy.
(current) UNIX password:
New password:
BAD PASSWORD: it is too simplistic/systematic 密碼太簡單,復雜一點就OK
1. 用戶運行passwd命令
2. 用戶相當於是root用戶
3. root用戶可以修改/etc/passwd文件
5.1.2 -s(小寫)和-S(大寫)的區別
你添加 -s(小寫)的選項,查看時有時候會發現變成S(大寫)
如果文件沒有x權限,會變成S;反之,是s(小寫)
S(大寫)=s(小寫)+x s權限必須和x權限搭配
[root@oldboy oldboy]# chmod 4755 gao.txt 為文件加上s權限
[root@oldboy oldboy]# ls -l gao.txt
-rwsr-xr-x. 1 root root 28 Jan 2 06:26 gao.txt 顯示權限為s(小寫)
[root@oldboy oldboy]# chmod u-x gao.txt 去掉文件x權限
[root@oldboy oldboy]# ls -l gao.txt
-rwSr-xr-x. 1 root root 28 Jan 2 06:26 gao.txt 顯示為S(大寫
5.2 -t 粘滯位 /tmp 目錄 (777必須記住) ---1 ===sticky
5.2.1 作用 (相當之重要)
任何人都可以在這個目錄裏創建文件(原來的權限是777)
每個人只能管理自己的文件,其他人的處理不了
5.3 sgid localte 用戶在運行一個命令的時候,相當於屬於這個命令所在的家庭(用戶組root) 不重要-了解
ls -l “which local”
5.4 特殊權限總結:
1. -s --suid setuid
作用:運行某一個命令命令的時候相當於這個命令的所有者(root)
設置方法:chmod u+s /bin/rm 或 chmod 4775 /bin/rm
危險:所有用戶運行命令的時候都相當於是root
例:/usr/bin/passwd
2. -t --sticky 沾滯位(1777 /tmp目錄)
任何人都可以在這個目錄中從創建文件(原來權限是777)
-t 權限 --- 每個人只能管理自己的文件,其他人的處理不了
3 sgid localte 運行某一個命令命令的時候相當於這個命令的用戶組(root)
5.5 特殊權限和隱藏屬性查看及修改的區別:
隱藏屬性:
查看:lsattr +文件名
修改:chattr +a/+i +文件名
特殊權限:
查看:ls -l +文件名 / stat +文件名
修改:chmod 1777 /u+s /+t +文件名
5.6 總結:
1.linux權限查看 計算 修改
2.文件和目錄rwx含義
3.各種權限拒絕錯誤排查
4.如何讓網站通過權限控制 盡量安全
5.通過umask計算默認的權限
6.文件系統的屬性(隱藏屬性)
7.linux特殊權限 suid , 粘滯位(/tmp)
題目:
1.安裝並使用
#htop 升級版top命令
#iotop 查詢系統磁盤讀寫
#iftop 查看網絡信息 流量
2.如何找出系統中帶有特殊權限的文件或目錄
18.1.2-linux目錄文件隱藏屬性和特殊權限