第1章 权限相关错误

1.1 普通用户 ls /root/

/root 属于root 普通用户没有任何权限,所以无法查看

  1. [clsn@znix ~]$ ls /root/
  2. ls: cannot open directory /root/: Permission denied
  3. [clsn@znix ~]$ ls -ld /root/
  4. dr-xr-x---. 5 root root 4096 Sep 5 12:05 /root/

1.2 普通用户touch /root/clsn.txt

创建文件,要看文件所在目录的权限,/root 属于root 普通用户没有任何权限,所以无法再里面创建文件,创建文件需要有所在目录的wx权限。

  1. [clsn@znix ~]$ touch /root/clsn.txt
  2. touch: cannot touch `/root/clsn.txt': Permission denied
  3. [clsn@znix ~]$ ls -ld /root/
  4. dr-xr-x---. 5 root root 4096 Sep 5 12:05 /root/

1.3 普通用户\rm -f /etc/passwd

删除文件需要有文件所在目录的wx权限,普通用户只有r-x权限,所以无法删除。

  1. [clsn@znix ~]$ \rm -f /etc/passwd
  2. rm: cannot remove `/etc/passwd': Permission denied
  3. [clsn@znix ~]$ ls -ld /etc
  4. drwxr-xr-x. 78 root root 4096 Sep 5 11:27 /etc
  5. [clsn@znix ~]$ ll /etc/passwd
  6. -rw-r--r-- 1 root root 1177 Sep 5 11:27 /etc/passwd

1.4 普通用户cat /etc/shadow

查看文件的内容的时候,需要看文件的权限,在这里普通用户对这个文件没有任何权限,所以无法查看文件的内容。
查看文件的内容要用于文件的r权限。

  1. [clsn@znix ~]$ cat /etc/shadow
  2. cat: /etc/shadow: Permission denied
  3. [clsn@znix ~]$ ll /etc/shadow
  4. ---------- 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 文件默认权限

  1. 文件最大权限-rw-rw-rw- clsn.txt 666
  2. 一般会给文件644权限 rw-r--r--

3.1.2 目录默认权限

  1. 目录默认最大权限-rwxrwxrwx 777
  2. 一般会给目录 755 权限rwxr-xr-x root root clsndir

3.2 如何规划网站权限,让网站更加安全

3.2.1 让网站以www身份运行

  1. [root@znix /]# useradd www

3.2.2 让主要的文件归root用户所有

  1. [root@znix /]# mkdir -p /app/blog
  2. [root@znix /]# mkdir -p /app/blog/upload
  3. [root@znix /]# ll -d /app/blog/ /app/blog/upload/
  4. drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/
  5. drwxr-xr-x 2 root root 4096 Sep 6 10:09 /app/blog/upload/
  6. [root@znix /]# su - www
  7. [www@znix ~]$ cd /app
  8. app/ application/
  9. [www@znix ~]$ cd /app/blog/upload/
  10. [www@znix upload]$

3.2.3 对于用户上传的文件处理

让用户上传的文件放在属于www用户的文件夹中;
限制文件的后缀;
上传之后不能查看……

  1. [root@znix /]# chown www.www /app/blog/upload/
  2. [root@znix /]# ll -d /app/blog/ /app/blog/upload/
  3. drwxr-xr-x 3 root root 4096 Sep 6 10:09 /app/blog/
  4. drwxr-xr-x 2 www www 4096 Sep 6 10:09 /app/blog/upload/
  5. [root@znix /]# cd /app/blog/upload/
  6. [root@znix upload]# touch aaa.png
  7. [root@znix upload]#

第4章 umask - 默认权限控制

控制着linux里面默认的权限

4.1 系统中文件和目录默认权限

  1. file---666 -rw-rw-rw
  2. dir ---777 drwxrwxrwx

4.2 umask 反掩码计算

默认的最大权限减去 umask

4.2.1 当umask为偶数

实例4-1 umask为0022
文件:

  1. file- 666-022=644

目录:

  1. dir- 777-022=755

4.2.2 当umask为奇数

  1. 实例4-2 umask0032

4.3 当umask为奇数时,计算文件的默认权限的时候,要在奇数位加1

  1. file- 666-032=634
  2. +010=644

目录的不变

4.4 示例umask=035

  1. [root@znix ~]# umask 035
  2. [root@znix ~]# touch file035
  3. [root@znix ~]# mkdir dir035
  4. [root@znix ~]# ll file035 && ll -d dir035
  5. -rw-r---w- 1 root root 0 Sep 6 10:42 file035
  6. drwxr---w- 2 root root 4096 Sep 6 10:42 dir035
  7. file=642 dir=742

4.5 永久修改umask的方法

  1. [root@znix ~]# vim /etc/profile
  2. if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
  3. umask 002
  4. else
  5. umask 022
  6. fi

解释:

  1. 如果 [ 用户UID>=199 ] 并且 [ 用户的名字 == 用户组名字 ];然后
  2. umask 002
  3. 那么
  4. umask 022
  5. 如果

第5章 文件系统的权限

5.1 chattr 设置文件系统的权限(change attr)

chattr +a 只能追加 (append)
chattr +i 无敌 不能进行任何操作(immutable)

5.2 测试 +a

只能向文件中追加内容,不能删除

  1. [root@znix ~]# chattr +a clsn.txt
  2. [root@znix ~]# lsattr clsn.txt
  3. -----a-------e- clsn.txt
  4. [root@znix ~]# echo 123 >> clsn.txt
  5. [root@znix ~]# > clsn.txt
  6. -bash: clsn.txt: Operation not permitted

5.2.1 取掉权限 -a

  1. [root@znix ~]# chattr -a clsn.txt
  2. [root@znix ~]# lsattr clsn.txt
  3. -------------e- clsn.txt

5.3 测试 +i

不能对文件进行任何操作,root用户也不能操作。

  1. [root@znix ~]# chattr +i clsn.txt
  2. [root@znix ~]# lsattr clsn.txt
  3. ----i--------e- clsn.txt

5.4 lsattr

list attr 显示文件系统的权限

  1. [root@znix ~]# lsattr -d /etc/
  2. -------------e- /etc/

第6章 linux的特殊权限

  1. -rw-r--r-- 1 root root 252 Sep 6 11:04 clsn.txt

这个是9位基础权限。
linux共12位权限,还有3个特殊权限。

6.1 三种特殊的权限

  1. [root@znix ~]# ls -ld /tmp/ /usr/bin/passwd /usr/bin/locate /bin/ls
  2. -rwxr-xr-x. 1 root root 117048 Mar 23 02:52 /bin/ls
  3. drwxrwxrwt. 11 root root 4096 Sep 6 11:29 /tmp/
  4. -rwx--s--x. 1 root slocate 38464 Mar 12 2015 /usr/bin/locate
  5. -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权限

  1. [root@znix ~]# chmod u+s /bin/rm
  2. [root@znix ~]# ll /bin/rm
  3. -rwsr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm
  4. [clsn@znix ~]$ \rm -f /root/clsn.txt
  5. [root@znix ~]# chmod u-s /bin/rm
  6. [root@znix ~]# ll /bin/rm
  7. -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

  1. [root@znix ~]# ll test.txt
  2. -rw-r--r--. 2 root root 22 Sep 4 12:28 test.txt
  3. [root@znix ~]# chmod u+s test.txt
  4. [root@znix ~]# ll test.txt
  5. -rwSr--r--. 2 root root 22 Sep 4 12:28 test.txt
  6. [root@znix ~]# chmod u+x test.txt
  7. [root@znix ~]# ll test.txt
  8. -rwsr--r--. 2 root root 22 Sep 4 12:28 test.txt

6.3 drwxrwxrwt 粘滞位

  1. [root@znix ~]# ll -d /tmp/
  2. drwxrwxrwt. 11 root root 4096 Sep 6 11:29 /tmp/

设置了粘滞位的目录在目录下面创建的文件只能自己管理自己的

6.4 rwx—s—x sgid

  1. 用户运行locate的时候是slocate组的。很少使用!
  1. 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 结束进程的方法

  1. [root@znix ~]# kill 进程号码

7.3 top命令

  1. PID pid process id 进程的号码 系统中是唯一的
  2. CMD 进程的名字(命令)
  1. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  2. 14011 clsn 20 0 102m 672 568 R 19.2 0.1 0:09.45 dd