26期20180606 chmod chown umask 隐藏权限

6月6日任务

2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask
2.17 隐藏权限lsattr/chattr


2.14 文件和目录权限chmod



每个文件都会有属性,权限,通过ls -l可以看到。

image.png

d 目录 rwx------这9位就是权限位。rwx是所有者权限,---是所属组权限,---是other的权限。后面的3表示和这个目录有关系的文件有几个。第一个root是owner 第二个是所属的组。后面是mtime 以及名字。

rwx分别代表的权限是4 2 1 所以数字来表示权限,比如

7 = 4+2+1 rwx

6 = 4+2 rw-

扫描二维码关注公众号,回复: 1493710 查看本文章

1 = x

可以通过chmod来更改权限。 chmod = change mode 

chmod 权限 文件名/目录 就可以更改权限。

权限可以使用数字来表示。


drwx------.的最后的点是什么意思?

表示这个文件受制于SELINUX。如果selinux开启了,创建的文件都会有点。

说到selinux 它的配置文件地址是 /etc/selinux/config  命令行暂时停止是 setenforce 0。只有从配置文件关闭selinux才可以完全关闭。


如果想递归改变一个目录下的所有文件的属性的话,需要加选项 -R


chmod -R 

image.png

可以从上图看到,目录1的属性和其目录下的1.txt的属性是不一致的。在使用了 chmod -R 后 就递归改变了目录中文件的属性


除了数字之外还有一种直观的做法来改变属性 是要用chmod u=rwx,g=r,o=r file 


或者可使用+-来进行表达 比如 chmod a-x file 就是所有的属性去掉x属性



2.15 更改所有者和所属组chown



chown 就是change owner 更改owner

首先看看都有哪些用户存在。

image.png

可以将owner改成Bill或者123试试

image.png


同样,有chown就有chgrp改变组。具体就不说是怎么样操作了和上面一摸一样。


还有一个用法是 chown 用户:组 文件/目录 这样就可以同时改变用户和组了

chown :组 这样不写用户名就是只改变组  -R这个选项也生效


overall:

chown username:group filename 

chown :group  filename

chown -R 



umask

创建一个文件是644 创建一个目录是755 是为什么呢?

这就设计到umask了

运行umask显示的是0022

image.png

umask就是root的umask的默认值

通过这个就可以确定默认文件和目录的值

如何修改这个值?

umask 0002 这样就把umask的值改成了0002 

image.png

这个时候创建文件和目录的权限就变成了 文件:664 目录是775 

文件属性666-umask 

目录属性777-umask


实际上应该用数字对应的值来进行计算。当umask=3的时候这种情况就更明显。

666=(rw-rw-rw-)- 003 =(-------wx) =  rw-rw-r-- 664 如果直接数字相减就错误了。

777  rwxrwxrwx - -------wx = rwxrwxr-- 774


umask就是来设置默认文件目录权限的 减法,-减去任何都是空。




隐藏权限lsattr  chattr


使用场景是可以隐藏权限以及查看隐藏权限。

相对于 ls -l 隐藏权限之后就看不到了 同时会根据权限来决定是否可以更改等,可以在很大程度上保护文件。

使用的场景就是完全保护,不让任何人来碰的时候 就使用 chattr +i

chattr命令是设置隐藏权限。不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

“一些相关的选项权限:


a:即append,设定该参数后,只能向文件中追加/添加数据,而不能删除,不能改名字,不能改内容,可以更改时间信息。多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。

image.png

image.png

可以发现有一个i权限,这个i权限什么都不能做,连名字都改不了。vi是使用的时候,会产生一个临时文件,实际的修改都是在临时文件上,保存退出的时候,临时文件会覆盖原文件。

image.png

有了i就什么都动不了了,所以如果想修改的话,使用chattr -i 就是将i移除,这个就可以修改了。

image.png


head -n2 file1 >>file2

是把文件1前两行追加到文件2 > 是写进去,替换掉


lsattr可以查看目录本身的 -d  如果不加选项则是查找目录下的子目录以及子文件的权限

chattr 也可以给目录加权限 +i (啥都不可以) 也可以加a(追加)权限,这样就可以在目录下新建文件了  



lsattr 还有一个选项 -R 可以查看子目录以及子目录下的文件权限 -R 递归


总结

chattr +i +a -i -a 

lsattr -R -a(隐藏可以看出来) -d 查看目录




猜你喜欢

转载自blog.51cto.com/13691454/2125552