第1章 許可權相關錯誤 1.1 普通用戶 ls /root/ /root 屬於root 普通用戶沒有任何許可權,所以無法查看 [oldboy@znix ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [oldboy@zn ...
第1章 許可權相關錯誤
1.1 普通用戶 ls /root/
/root 屬於root 普通用戶沒有任何許可權,所以無法查看
[oldboy@znix ~]$ ls /root/
ls: cannot open directory /root/: Permission denied
[oldboy@znix ~]$ ls -ld /root/
dr-xr-x---. 5 root root 4096 Sep 5 12:05 /root/
1.2 普通用戶touch /root/oldboy.txt
創建文件,要看文件所在目錄的許可權,/root 屬於root 普通用戶沒有任何許可權,所以無法再裡面創建文件,創建文件需要有所在目錄的wx許可權。
[oldboy@znix ~]$ touch /root/oldboy.txt
touch: cannot touch `/root/oldboy.txt': Permission denied
[oldboy@znix ~]$ ls -ld /root/
dr-xr-x---. 5 root root 4096 Sep 5 12:05 /root/
1.3 普通用戶\rm -f /etc/passwd
刪除文件需要有文件所在目錄的wx許可權,普通用戶只有r-x許可權,所以無法刪除。
[oldboy@znix ~]$ \rm -f /etc/passwd
rm: cannot remove `/etc/passwd': Permission denied
[oldboy@znix ~]$ ls -ld /etc
drwxr-xr-x. 78 root root 4096 Sep 5 11:27 /etc
[oldboy@znix ~]$ ll /etc/passwd
-rw-r--r-- 1 root root 1177 Sep 5 11:27 /etc/passwd
1.4 普通用戶cat /etc/shadow
查看文件的內容的時候,需要看文件的許可權,在這裡普通用戶對這個文件沒有任何許可權,所以無法查看文件的內容。
查看文件的內容要用於文件的r許可權。
[oldboy@znix ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[oldboy@znix ~]$ ll /etc/shadow
---------- 1 root root 881 Sep 5 11:27 /etc/shadow
1.5 出現錯誤的解決辦法
1、先確定要操作的是文件還是目錄
2、確當你和操作對象的關係
3、文件先看文件的許可權
4、目錄先看目錄的許可權
5、查看文件內容、修改文件內容、運行文件(腳本),要看文件的許可權
6、查看目錄里的內容、刪除文件、創建文件、重命名(文件改名),要看目錄許可權
第2章 文件的訪問過程
2.1 過程
2.1.1
inode 文件的許可權 block的位置
|
block 文件的實際內容 |
文件 |
2.1.2 據對路徑訪問
/目錄 |
目錄的block,找對應的文件 |
/etc目錄的inode |
inode 文件的許可權 block的位置
|
block 文件的實際內容 |
文件 |
2.2 關係
1.文件的名字是存放在所在目錄的block裡面
2.文件名與inode的對應關係放在目錄的block中
第3章 網站許可權-讓網站根安全
3.1 linux系統預設許可權
3.1.1 文件預設許可權
文件最大許可權-rw-rw-rw- oldboy.txt 666
一般會給文件644許可權 rw-r--r--
3.1.2 目錄預設許可權
目錄預設最大許可權-rwxrwxrwx 777
一般會給目錄 755 許可權rwxr-xr-x root root oldboydir
3.2 如何規劃網站許可權,讓網站更加安全
3.2.1 讓網站以www身份運行
[root@znix /]# useradd www
3.2.2 讓主要的文件歸root用戶所有
[root@znix /]# mkdir -p /app/blog
[root@znix /]# mkdir -p /app/blog/upload
[root@znix /]# ll -d /app/blog/ /app/blog/upload/
drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/
drwxr-xr-x 2 root root 4096 Sep 6 10:09 /app/blog/upload/
[root@znix /]# su - www
[www@znix ~]$ cd /app
app/ application/
[www@znix ~]$ cd /app/blog/upload/
[www@znix upload]$
3.2.3 對於用戶上傳的文件處理
讓用戶上傳的文件放在屬於www用戶的文件夾中;
限制文件的尾碼;
上傳之後不能查看……
[root@znix /]# chown www.www /app/blog/upload/
[root@znix /]# ll -d /app/blog/ /app/blog/upload/
drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/
drwxr-xr-x 2 www www 4096 Sep 6 10:09 /app/blog/upload/
[root@znix /]# cd /app/blog/upload/
[root@znix upload]# touch aaa.png
[root@znix upload]#
第4章 umask - 預設許可權控制
控制著linux裡面預設的許可權
4.1 系統中文件和目錄預設許可權
file---666 -rw-rw-rw
dir ---777 drwxrwxrwx
4.2 umask 反掩碼計算
預設的最大許可權減去 umask
4.2.1 當umask為偶數
實例4-1 umask為0022
文件:
file- 666-022=644
目錄:
dir- 777-022=755
4.2.2 當umask為奇數
實例4-2 umask為0032
4.3 當umask為奇數時,計算文件的預設許可權的時候,要在奇數位加1
file- 666-032=634
+010=644
目錄的不變
4.4 示例umask=035
[root@znix ~]# umask 035
[root@znix ~]# touch file035
[root@znix ~]# mkdir dir035
[root@znix ~]# ll file035 && ll -d dir035
-rw-r---w- 1 root root 0 Sep 6 10:42 file035
drwxr---w- 2 root root 4096 Sep 6 10:42 dir035
file=642 dir=742
4.5 永久修改umask的方法
[root@znix ~]# vim /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
果如
第5章 文件系統的許可權
5.1 chattr 設置文件系統的許可權(change attr)
chattr +a 只能追加 (append)
chattr +i 無敵 不能進行任何操作(immutable)
5.2 測試 +a
只能向文件中追加內容,不能刪除
[root@znix ~]# chattr +a oldboy.txt
[root@znix ~]# lsattr oldboy.txt
-----a-------e- oldboy.txt
[root@znix ~]# echo 123 >> oldboy.txt
[root@znix ~]# > oldboy.txt
-bash: oldboy.txt: Operation not permitted
5.2.1 取掉許可權 -a
[root@znix ~]# chattr -a oldboy.txt
[root@znix ~]# lsattr oldboy.txt
-------------e- oldboy.txt
5.3 測試 +i
不能對文件進行任何操作,root用戶也不能操作。
[root@znix ~]# chattr +i oldboy.txt
[root@znix ~]# lsattr oldboy.txt
----i--------e- oldboy.txt
5.4 lsattr
list attr 顯示文件系統的許可權
[root@znix ~]# lsattr -d /etc/
-------------e- /etc/
第6章 linux的特殊許可權
-rw-r--r-- 1 root root 252 Sep 6 11:04 oldboy.txt
這個是9位基礎許可權。
linux共12位許可權,還有3個特殊許可權。
6.1 三種特殊的許可權
[root@znix ~]# ls -ld /tmp/ /usr/bin/passwd /usr/bin/locate /bin/ls
-rwxr-xr-x. 1 root root 117048 Mar 23 02:52 /bin/ls
drwxrwxrwt. 11 root root 4096 Sep 6 11:29 /tmp/
-rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate
-rwsr-xr-x. 1 root root 30768 Nov 24 2015 /usr/bin/passwd
6.2 rwsr-xr-x
放在主人的位置上 suid ,運行包含suid許可權的 命令的時候,相當於這個命令的所有者。
比如:/usr/bin/passwd修改用戶密碼
6.2.1 給rm目錄suid許可權
[root@znix ~]# chmod u+s /bin/rm
[root@znix ~]# ll /bin/rm
-rwsr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm
[oldboy@znix ~]$ \rm -f /root/oldboy.txt
[root@znix ~]# chmod u-s /bin/rm
[root@znix ~]# ll /bin/rm
-rwxr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm
6.2.2 suid 之 大S與小s
文件的許可權,有x許可權時+s為小s,沒有x時+s為大S
[root@znix ~]# ll test.txt
-rw-r--r--. 2 root root 22 Sep 4 12:28 test.txt
[root@znix ~]# chmod u+s test.txt
[root@znix ~]# ll test.txt
-rwSr--r--. 2 root root 22 Sep 4 12:28 test.txt
[root@znix ~]# chmod u+x test.txt
[root@znix ~]# ll test.txt
-rwsr--r--. 2 root root 22 Sep 4 12:28 test.txt
6.3 drwxrwxrwt 粘滯位
[root@znix ~]# ll -d /tmp/
drwxrwxrwt. 11 root root 4096 Sep 6 11:29 /tmp/
設置了粘滯位的目錄在目錄下麵創建的文件只能自己管理自己的
6.4 rwx--s--x sgid
用戶運行locate的時候是slocate組的。很少使用!
rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate
第7章 系統中病毒怎麼辦
7.1 解絕辦法
1、使用top 命令看誰用的cpu最多
2、找出占用cpu 或記憶體大的進程的pid號碼
3、根據進程的pid 殺掉進程
7.2 結束進程的方法
[root@znix ~]# kill 進程號碼
7.3 top命令
PID pid process id 進程的號碼 系統中是唯一的
CMD 進程的名字(命令)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14011 oldboy 20 0 102m 672 568 R 19.2 0.1 0:09.45 dd