权限管理chmod(重要)
事例1:
1root@atomy-virtual-machine:/tmp# ls -l linuxstudy.list
2-rw-r--r-- 1 root root 0 5月 10 18:53 linuxstudy.list
3root@atomy-virtual-machine:/tmp# chmod u+x linuxstudy.list
4root@atomy-virtual-machine:/tmp# ls -l linuxstudy.list
5-rwxr--r-- 1 root root 0 5月 10 18:53 linuxstudy.list
上述事例中我们用chmodu+xlinuxstudy.list句子更改了linuxstudy.list文件的权限,其涵义是赋于该文件的拥有者执行权限。
事例2:
1root@atomy-virtual-machine:/tmp# chmod g+w,o-r linuxstudy.list
2root@atomy-virtual-machine:/tmp# ls -l linuxstudy.list
3-rwxrw---- 1 root root 0 5月 10 18:53 linuxstudy.list
可以同时更改多个权限,用冒号分隔即可。上述句子令用户组拥有写的权限,去不仅其他人读的权限。
事例3:
1root@atomy-virtual-machine:/tmp# chmod g=rwx linuxstudy.list
2root@atomy-virtual-machine:/tmp# ls -l linuxstudy.list
3-rwxrwx--- 1 root root 0 5月 10 18:53 linuxstudy.list
我们也可以直接用=来赋于权限!
不过,我们在实际操作中用的最多的并不是这些方法,而是用数字来表示。
事例4:
1root@atomy-virtual-machine:/tmp# chmod 640 linuxstudy.list
2root@atomy-virtual-machine:/tmp# ls -l linuxstudy.list
3-rw-r----- 1 root root 0 5月 10 18:53 linuxstudy.list
640代表要将权限更改为rw-r-----
事例5:关于-R,递归更改权限的操作
创建一个递归的文件夹,两个文件夹a和b的权限如下:
1root@atomy-virtual-machine:/tmp# mkdir -p /tmp/a/b
2root@atomy-virtual-machine:/tmp# ls -ld /tmp/a
3drwxr-xr-x 3 root root 4096 5月 10 19:12 /tmp/a
4root@atomy-virtual-machine:/tmp# ls -ld /tmp/a/b
5drwxr-xr-x 2 root root 4096 5月 10 19:12 /tmp/a/b
更改文件夹a的权限,之后查看二者的权限:
1root@atomy-virtual-machine:/tmp# chmod 777 /tmp/a
2root@atomy-virtual-machine:/tmp# ls -ld /tmp/a
3drwxrwxrwx 3 root root 4096 5月 10 19:12 /tmp/a
4root@atomy-virtual-machine:/tmp# ls -ld /tmp/a/b
5drwxr-xr-x 2 root root 4096 5月 10 19:12 /tmp/a/b
可以发觉我们只改变了文件夹a的权限,文件夹b的权限没有变化。假如我们有一个须要,改版一个目录权限时,该目录下的文件也随着改变。我们将其权限改为766试试:
1root@atomy-virtual-machine:/tmp# chmod -R 766 /tmp/a
2root@atomy-virtual-machine:/tmp# ls -ld /tmp/a
3drwxrw-rw- 3 root root 4096 5月 10 19:12 /tmp/a
4root@atomy-virtual-machine:/tmp# ls -ld /tmp/a/b
5drwxrw-rw- 2 root root 4096 5月 10 19:12 /tmp/a/b
关于rwx权限的补充权限对于文件对于目录
r——读权限
可以查看文件内容
可以列举目录中的内容
w——写权限
可以更改文件内容
可以在目录中创建、删除文件
x——执行权限
可以执行文件·
可以步入目录
非常注意w权限,举个反例:
一个目录的权限是777,该目录下一个文件的权限是700,这么创建了一个同组用户,能够删掉这个文件?
答案是可以的!
由于对于文件来说linux内核,w权限只是针对更改文件内容,而删掉文件的权限在目录中!
所以,题目提及目录权限是777,不管文件是哪些权限,都可以被删掉。
chown
以下实例来自新手教程
把/var/run/httpd.pid的所有者设置root:
#e:0:f:3:0:0:f:c:1:5:e:d:d:3:5:0:3:2:5:f:a:5:9:6:0:6:4:f:e:8:d:b#
将文件file1.txt的拥有者设为runoob,群体的使用者runoobgroup:
#2:5:7:a:5:6:0:9:c:d:d:f:c:a:2:c:e:9:1:2:6:e:4:e:0:6:9:d:4:4:7:1#
将当前前目录下的所有文件与子目录的拥有者皆设为runoob,群体的使用者runoobgroup:
#6:4:d:b:d:b:4:e:7:c:4:1:5:7:0:0:6:f:8:f:f:a:6:5:0:8:0:9:0:b:0:0#
把/home/runoob的关联组设置为512(关联组ID),不改变所有者:
#6:3:7:2:4:e:d:e:3:7:1:3:4:d:2:a:7:c:2:d:5:4:c:2:e:6:3:3:f:5:5:a#
chgrp
与chown不同linux权限,chgrp容许普通用户改变文件所属的组,只要该用户是该组的一员。
实例1:改变文件的群组属性
命令:
chgrp-vbinlog2012.log
输出:
#a:2:8:d:8:3:3:f:5:9:e:b:5:3:0:0:4:2:1:f:0:9:c:b:6:5:b:5:d:7:1:0#
说明:
将log2012.log文件由root群组改为bin群组
实例2:按照指定文件改变文件的群组属性
命令:
chgrp--reference=log2012.loglog2013.log
输出:
#1:a:9:8:8:b:5:4:f:6:b:5:e:7:7:9:1:f:a:6:4:7:0:5:4:2:9:3:b:d:b:9#
说明:
改变文件log2013.log的群组属性,致使文件log2013.log的群组属性和参考文件log2012.log的群组属性相同
实例3:改变指定目录以及其子目录下的所有文件的群组属性
命令:
输出:
#c:d:2:0:3:d:7:2:d:7:5:8:2:0:9:5:a:f:f:a:f:6:0:5:d:4:0:6:e:0:0:2#
说明:
改变指定目录以及其子目录下的所有文件的群组属性
实例4:通过群组辨识码改变文件群组属性
命令:
chgrp-R100test6
输出:
#d:c:5:f:a:d:6:1:7:7:e:9:e:9:8:6:7:0:a:0:e:9:0:6:1:f:f:1:5:e:6:2#
说明:
通过群组辨识码改变文件群组属性,100为users群组的辨识码,具体群组和群组辨识码可以去/etc/group文件中查看
umask默认权限概述
当我们新建一个文件或则文件夹时LINUX 删除目录,就会默认设置权限,默认情况下的umask值是022(可以用umask命令查看),此时你完善的文件默认权限是644,完善的目录的默认权限是755,可以通过构建一个文件和文件夹通过ls-l验证。
当我们登入系统以后创建一个文件是会有一个默认权限的,这么这个权限是如何来的呢?这就是umask干的事情。umask可拿来设定[权限网段]。[权限网段]是由3个八补码的数字所组成,将现有的存取权限减掉权限网段后,即可形成构建文件时预设的权限。
句型
#9:d:3:a:f:b:e:c:a:8:e:4:0:a:a:1:a:7:c:e:8:a:5:3:6:1:9:b:d:7:d:1#
使用指令"umask"查看当前权限网段,则输入下边的命令:
#4:6:7:b:a:8:9:4:a:3:3:0:8:3:2:f:d:7:b:1:0:3:9:e:5:a:1:d:b:8:c:a#
执行前面的指令后,输出信息如下:
#f:1:c:7:3:7:6:3:c:a:1:1:8:c:5:6:f:6:f:6:d:5:c:a:7:8:7:0:7:d:3:1#
接出来,使用指令"mkdir"创建一个目录,并使用指令"ls"获取该目录的详尽信息,输入命令如下:
#f:3:7:9:9:4:a:9:4:a:d:1:8:a:4:e:0:0:e:b:6:3:e:8:6:0:1:a:6:0:4:5#
得到结果显示,该文件夹的权限为drwxr-xr-x。即755。
umask估算权限
对于文件和目录来说,最大的权限虽然都是777,并且执行权限对于文件来说是很危险的,而对目录来说执行权限是个基本权限。所以默认目录的最大权限是777,而文件的默认最大权限就是666。
对于root用户的umask=022这个来说,777权限二补码码就是(111)(111)(111),022权限二补码码为(000)(010)(010)。
umask为022的目录默认权限估算方式
所有者r所有者w所有者x所在组r所在组w所在组x其他r其他w其他x
所有权限777
umask网段022
估算后的值
umask为022的文件默认权限估算方式
所有者r所有者w所有者x所在组r所在组w所在组x其他r其他w其他x
所有权限666
umask网段022
估算后的值
umask为023的目录默认权限估算方式
所有者r所有者w所有者x所在组r所在组w所在组x其他r其他w其他x
所有权限777
umask网段023
估算后的值
umask为023的文件默认权限估算方式
所有者r所有者w所有者x所在组r所在组w所在组x其他r其他w其他x
所有权限666
umask网段023
估算后的值
里面就是一个umask的正常估算过程,并且这样实在是太麻烦了。我们使用如下的简单的方式快速估算。
里面的这个方式估算是十分便捷的,为什么得到偶数要+1呢。
文件的最大权限是666,都是奇数,你得到偶数,说明umask有偶数linux权限命令,读为4,写为2,都是奇数,说明你有执行权限的。
就根据前面的umask=023为例,在估算其他用户权限的时侯6-3=3,6是读写,3是写和执行,虽然应当是读写权限除以读权限的得到写权限的,相当于我们多除以了一个执行权限。所以结果加1。
本文原创地址://lrxjmw.cn/qxglmlczyqxx.html编辑:刘遄,审核员:暂无