6月6日任务
2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask
2.17 隐藏权限lsattr/chattr
2.14 文件和目录权限chmod
每个文件都会有属性,权限,通过ls -l可以看到。
d 目录 rwx------这9位就是权限位。rwx是所有者权限,---是所属组权限,---是other的权限。后面的3表示和这个目录有关系的文件有几个。第一个root是owner 第二个是所属的组。后面是mtime 以及名字。
rwx分别代表的权限是4 2 1 所以数字来表示权限,比如
7 = 4+2+1 rwx
6 = 4+2 rw-
1 = x
可以通过chmod来更改权限。 chmod = change mode
chmod 权限 文件名/目录 就可以更改权限。
权限可以使用数字来表示。
drwx------.的最后的点是什么意思?
表示这个文件受制于SELINUX。如果selinux开启了,创建的文件都会有点。
说到selinux 它的配置文件地址是 /etc/selinux/config 命令行暂时停止是 setenforce 0。只有从配置文件关闭selinux才可以完全关闭。
如果想递归改变一个目录下的所有文件的属性的话,需要加选项 -R
chmod -R
可以从上图看到,目录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
首先看看都有哪些用户存在。
可以将owner改成Bill或者123试试
同样,有chown就有chgrp改变组。具体就不说是怎么样操作了和上面一摸一样。
还有一个用法是 chown 用户:组 文件/目录 这样就可以同时改变用户和组了
chown :组 这样不写用户名就是只改变组 -R这个选项也生效
overall:
chown username:group filename
chown :group filename
chown -R
umask
创建一个文件是644 创建一个目录是755 是为什么呢?
这就设计到umask了
运行umask显示的是0022
umask就是root的umask的默认值
通过这个就可以确定默认文件和目录的值
如何修改这个值?
umask 0002 这样就把umask的值改成了0002
这个时候创建文件和目录的权限就变成了 文件: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参数对于文件 系统的安全设置有很大帮助。”
可以发现有一个i权限,这个i权限什么都不能做,连名字都改不了。vi是使用的时候,会产生一个临时文件,实际的修改都是在临时文件上,保存退出的时候,临时文件会覆盖原文件。
有了i就什么都动不了了,所以如果想修改的话,使用chattr -i 就是将i移除,这个就可以修改了。
head -n2 file1 >>file2
是把文件1前两行追加到文件2 > 是写进去,替换掉
lsattr可以查看目录本身的 -d 如果不加选项则是查找目录下的子目录以及子文件的权限
chattr 也可以给目录加权限 +i (啥都不可以) 也可以加a(追加)权限,这样就可以在目录下新建文件了
lsattr 还有一个选项 -R 可以查看子目录以及子目录下的文件权限 -R 递归
总结
chattr +i +a -i -a
lsattr -R -a(隐藏可以看出来) -d 查看目录
原文地址:http://blog.51cto.com/13691454/2125551