1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
什么是权限 系统对用户所能执行的功能的限制 为什么要有权限 为了保护每个用户的自己的工作环境和隐私 权限跟用户有什么关系 属主 User u 属组 Group g 其他人 others o a 所有 对应了三个基础权限 r 可读 readable 4 w 可写 writable 2 x 可执行 executable 1 - 没有权限 权限位占位符 0 [root@qls ~]# ls -l total 61152 -rw-r--r--. 1 root root 39 Jul 17 19:16 123.txt -rw-r--r--. 1 root root 9272936 Jul 17 12:01 access.log - rw- r-- r-- 644 文件的类型 属主 属组 匿名 每三个为一组 第一个对应 可读 r 第二个对应 可写 w 第三个对应 可执行 x 没有此权限则用-代替 为什么要设置权限,如何设置权限 设置某个用户对于系统的某个资源拥有什么样管理权力 chmod #设置权限的命令 选项: -R #针对目录设置权限 赋予目录及目录以下所有文件的权限 只有root管理员才可以修改任何人的权限 普通用户只能修改自己的权限 |
权限的设置案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
-rwxrw-r-- test01 dev file.txt test01 user01属于dev组 qls01属于qls01组 三个用户分别对这个文件拥有什么权限 test01是文件的所有者 可读 可写 可执行权限 user01属于dev组,dev组所拥有的权限,user01同样拥有 可读 可写 权限 qls01不属于dev组,对于此文件来说,就是一个陌生人 拥有匿名用户的权限 可读 判断一个用户对一个文件拥有什么权限 1. 系统会判断该用户是否为所有者,如果是,则按照属主的权限进行访问 2. 如果不是所有者,则判断该用户是否为所属组,如果是,则按照所属组的权限进行访问 3. 如果此用户不是所有者,也不是所属组,则按照匿名用户进行访问 修改权限的两种方法: 字母进行修改 u 属主 g 属组 o 匿名用户 a 所有用户 权限字母 r 可读 w 可写 x 可执行 - 没有权限 赋予的方式 + #添加权限 - #收回某个权限 = #覆盖之前的权限 #添加权限 [root@qls ~]# ll total 4 -rw-r--r-- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod u+x hosts [root@qls ~]# ll total 4 -rwxr--r-- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod g+wx hosts [root@qls ~]# ll total 4 -rwxrwxr-- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod o+w hosts [root@qls ~]# ll total 4 -rwxrwxrw- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod a+x hosts [root@qls ~]# ll total 4 -rwxrwxrwx 1 root root 158 Jul 23 09:06 hosts #收回权限 #a可以省略 [root@qls ~]# chmod -x hosts [root@qls ~]# ll total 4 -rw-rw-rw- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod u-w hosts [root@qls ~]# ll total 4 -r--rw-rw- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod g-w,o-rw hosts [root@qls ~]# ll total 4 -r--r----- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# #覆盖之前的所有权限 [root@qls ~]# chmod a=rw hosts [root@qls ~]# ll total 4 -rw-rw-rw- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# chmod o=- hosts [root@qls ~]# ll total 4 -rw-rw---- 1 root root 158 Jul 23 09:06 hosts 根据数字进行修改 会把原来的权限全部覆盖掉 -R #给目录的权限及目录以下的所有文件或者子目录都设置统一权限 [root@qls ~]# chmod 644 hosts [root@qls ~]# ll total 4 -rw-r--r-- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# mkdir data [root@qls ~]# ll total 4 drwxr-xr-x 2 root root 6 Jul 23 09:35 data -rw-r--r-- 1 root root 158 Jul 23 09:06 hosts [root@qls ~]# cp /etc/hosts data/ [root@qls ~]# ll data/ total 4 -rw-r--r-- 1 root root 158 Jul 23 09:35 hosts [root@qls ~]# ll -d data/ drwxr-xr-x 2 root root 19 Jul 23 09:35 data/ [root@qls ~]# chmod 700 data/ [root@qls ~]# ll -d data/ drwx------ 2 root root 19 Jul 23 09:35 data/ [root@qls ~]# ll data/ total 4 -rw-r--r-- 1 root root 158 Jul 23 09:35 hosts [root@qls ~]# chmod -R 755 data/ [root@qls ~]# ll -d data/ drwxr-xr-x 2 root root 19 Jul 23 09:35 data/ [root@qls ~]# ll data/ total 4 -rwxr-xr-x 1 root root 158 Jul 23 09:35 hosts #权限设置案例 /opt/test 针对于此目录 属主为root 属组为dev dev01 dev02 属主拥有所有权限 属组拥有可读 可写权限 其他人没有任何权限 [root@qls ~]# mkdir /opt/test [root@qls ~]# ll /opt/ total 0 drwxr-xr-x 2 root root 6 Jul 23 09:40 test [root@qls ~]# groupadd dev [root@qls ~]# chgrp dev /opt/test/ [root@qls ~]# ll /opt/ total 0 drwxr-xr-x 2 root dev 6 Jul 23 09:40 test [root@qls ~]# chmod 760 /opt/test/ [root@qls ~]# ll /opt/ total 0 drwxrw---- 2 root dev 6 Jul 23 09:40 test |
权限对文件或者目录的影响
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
权限对文件或者目录的影响 权限 文件 目录 r 可以查看文件内容 cat head tail 浏览目录及子目录的列表 ls tree w 可以新增,修改文件内容的权利 vim echo > >> 可以新建或者删除,移动目录中的文件的权利 x 可以执行文件的权利 脚本 可以进入目录 cd |
总结文件权限设置
1 2 |
文件只有r权限时,是可以正常查看文件内容的,不可以修改或者执行文件的权限,只有w权限时, 无法查看和执行文件的权限 使用vim编辑文件文件时,无法查看里面的内容,可以进行编辑,但是需要强制保存,但是保存之后,原来的内容被覆盖了 可以使用echo命令进行追加或者重定向内容进去,文件只有x权限 什么都干不了,经过测试,文件w权限需要r权限的配合,才能正常的修改文件内容,经过测试,文件的x权限需要r权限的配合 |
总结目录权限设置
1 2 |
目录只有r权限,使用ls -l命令查看目录下的列表,会出现一堆的权限不足,但是文件名和文件类型显示出来了,其他的属性信息都是问号,不能对此目录下的文件进行新建或者删除及其移动的操作,也不能切换到这个目录。只有w权限时,目录什么都做不了。目录只有x权限时,可以切换到目录中,无法查看目录列表信息,也无法进行删除、新建、移动等操作,可以进行复制操作。rw权限 跟只有r权限作用是一样的。目录拥有rx权限时,可以正常的查看目录列表信息,属性信息,也可以进入目录,可以复制文件到其他目录,但是不能执行新建、删除、移动等操作。目录拥有wx权限时,可以进入目录,可以新建,删除、移动文件的权利,但是查看不了目录的列表及属性信息 |
属主属组设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
chown #设置属主属组 只有root管理员才可以进行设置 选项: -R #递归设置 设置目录及其目录以下的所有文件 [root@qls ~]# ll /opt/ total 4 -rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt drwxrw--wx 5 root root 84 Jul 23 11:17 test [root@qls ~]# chown qls01 /opt/file.txt #默认设置的是属主 [root@qls ~]# ll /opt/ total 4 -rw-r--r-x 1 qls01 root 13 Jul 23 10:14 file.txt drwxrw--wx 5 root root 84 Jul 23 11:17 test [root@qls ~]# chown .qls01 /opt/file.txt #设置属组 [root@qls ~]# ll /opt/ total 4 -rw-r--r-x 1 qls01 qls01 13 Jul 23 10:14 file.txt drwxrw--wx 5 root root 84 Jul 23 11:17 test [root@qls ~]# chown root.root /opt/file.txt #同时设置属主属组 [root@qls ~]# ll /opt/ total 4 -rw-r--r-x 1 root root 13 Jul 23 10:14 file.txt drwxrw--wx 5 root root 84 Jul 23 11:17 test [root@qls ~]# chown qls01.qls01 /opt/test/ #只设置目录 [root@qls ~]# ll -d /opt/test/ drwxrw--wx 5 qls01 qls01 84 Jul 23 11:17 /opt/test/ [root@qls ~]# ll /opt/test/ total 0 -rw-rw-r-- 1 qls01 qls01 0 Jul 23 11:17 123.txt -rw-r--r-- 1 root root 0 Jul 23 10:51 data.sh drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy01 drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy02 drwxr-xr-x 2 root root 6 Jul 23 10:51 oldboy03 [root@qls ~]# chown -R qls01.qls01 /opt/test/ #递归设置 [root@qls ~]# ll /opt/test/ total 0 -rw-rw-r-- 1 qls01 qls01 0 Jul 23 11:17 123.txt -rw-r--r-- 1 qls01 qls01 0 Jul 23 10:51 data.sh drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy01 drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy02 drwxr-xr-x 2 qls01 qls01 6 Jul 23 10:51 oldboy03 chgrp #设置属组 [root@qls ~]# chgrp root /opt/test/ [root@qls ~]# ll -d /opt/test/ drwxrw--wx 5 qls01 root 84 Jul 23 11:17 /opt/test/ |
Umask控制权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
[root@qls ~]# ll total 4 drwxr-xr-x 2 root root 6 Jul 23 11:21 123 -rw-r--r-- 1 root root 0 Jul 23 11:21 123.txt 系统中为什么新创建的目录的权限为755,文件的权限为644 都是由系统的控制权限所控制的 umask #控制权限的命令 [root@qls ~]# umask 0022 系统中是如何计算权限 系统新创建的目录的权限由最大权限777减去umask控制权限022得到的就是755,所以说新创建的目录的权限为755,新创建文件的权限由文件最大权限666减去umask控制权限022,得到644权限,所以说新创建的文件的权限为644,当文件权限遇到奇数时,在奇数为加一 [root@qls ~]# umask 0022 [root@qls ~]# umask 033 [root@qls ~]# umask 0033 [root@qls ~]# mkdir oldboy [root@qls ~]# ll total 4 drwxr-xr-x 2 root root 6 Jul 23 11:21 123 -rw-r--r-- 1 root root 0 Jul 23 11:21 123.txt drwxr--r-- 2 root root 6 Jul 23 12:02 oldboy [root@qls ~]# touch oldboy.txt [root@qls ~]# ll total 4 drwxr-xr-x 2 root root 6 Jul 23 11:21 123 -rw-r--r-- 1 root root 0 Jul 23 11:21 123.txt drwxr--r-- 2 root root 6 Jul 23 12:02 oldboy -rw-r--r-- 1 root root 0 Jul 23 12:02 oldboy.txt |