day08-linux权限(chmod chown umask chattr)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day08-linux权限(chmod chown umask chattr)相关的知识,希望对你有一定的参考价值。
上次学习整理了linux的文档的基本操作,今天我们学习linux下的权限:
1、文件或目录的权限chmod:
chmod主要用于修改文件和目录的权限,主要参数:-R(级联修改下级目录)。
1、那我们如何来查看这个目录或文件的权限呢:
[[email protected] ~]# ls -l
总用量 136
drwxr-xr-x 2 root root 64 10月 24 15:28 1 #rwx为所属主:r-x为所属组:r-x为其他:
-rw-r--r-- 1 root root 841 10月 24 17:31 1.txt
drwxr-xr-x 2 root root 6 10月 25 17:36 2
-rw-r--r-- 1 root root 0 10月 24 15:28 22
如上所述:第一部分的第二位到第十位分别以三位一组:第十一位(.)是selinux(只有selinux打开时才会添加.)
所属主(user) #文件的拥有者:创建文件/目录的那个人:
所属组(group) #文件的所属组:创建文件/目录的那个用户所在的组:
其他(other) #其他外来人员:
1.2 那我们如何给目录和文件添加权限呢:一般有两种方式(操作的结果都相同)
上图中的rwx的权限用数字表示如下:
r===4 #表示可读的权限: 查看这个文件:则表示对这个文件可以读:
w===2 #表示可写的权限: 可以往文件里写入内容:则表示对这个文件可写:
x===1 #表示可执行的权限: 可以打开这个目录,则表示对这个目录可执行:
1、chmod 777 filename/dir 通过数字的方式来添加:如下:
1 2 3 4 5 | [[email protected] ~] # chmod 777 1.txt #给文件添加777(可读可写可执行)的权限: [[email protected] ~] # chmod 777 1 #给目录也添加777权限: [[email protected] ~] # ls -l drwxrwxrwx 2 root root 64 10月 24 15:28 1 #此文件对主(组)其他:可读可写可执行: -rwxrwxrwx 1 root root 841 10月 24 17:31 1.txt |
2、chmod u=rwx,g=rw,o=rx filename/dir #u表示主,g表示组,o表示其他:a=所有:
1 2 3 4 5 | [[email protected] ~] # chmod u=rwx,g=rw,o=rx 1.txt [[email protected] ~] # chmod u=rwx,g=rw,o=rx 1 [[email protected] ~] # ls -l drwxrw-r-x 2 root root 64 10月 24 15:28 1 -rwxrw-r-x 1 root root 841 10月 24 17:31 1.txt |
当然:还可以通过+ - =对分别对权限进行增减:#加号表示增加权限,减号表示减少权限,等号表示等于权限: chmod u-r 1
1 2 3 4 5 | [[email protected] ~] # chmod u-r,g+w,o-x 1.txt #分别减去u权限和加上g的权限: [[email protected] ~] # chmod u-r 1 [[email protected] ~] # ls -l d-wxrwwr-x 2 root root 64 10月 24 15:28 1 --wxr--r-- 1 root root 841 10月 24 17:31 1.txt |
1.3 chmod还有一个参数: -R:表示级联选项:会把此目录下所有文件/目录的权限都改变:
chmod -R filename/dir
1 2 3 4 | [[email protected] ~] # chmod -R 777 1 #权限级联下面文件 [[email protected] ~] # ls -l 1 -rwxrwxrwx 1 root root 0 10月 24 15:28 11 #目录下文件的权限已改变: -rwxrwxrwx 1 root root 0 10月 25 18:08 1.txt #目录下目录的权限已改变: |
1.4 既然权限可以用数字来表示,那么权限是如何定义的呢:umask值:
[[email protected] ~]# umask #查看umask的值:
0022
我们会发现普通文件或目录的权限不一样:这是因为umask值定义的:并且umask值是可以修改的:
1 2 3 | [[email protected] yuan] # ls -la -rw-r--r-- 1 root root 0 10月 25 18:53 1.txt #文件的权限为644. drwxr-xr-x 2 root root 6 10月 25 18:53 dir #目录的权限为755. |
这是因为文件不需要执行权限:而目录需要:进入一个目录==执行这个目录:
所以文件的权限计算:
666 - 022 644 #文本不需要执行权限
(rw-rw-rw-) - (----w--w-) = (rw-r--r--)
目录的权限计算:
777 - 022 755 #目录需要执行权限
(rwxrwxrwx) - (----w--w-) = (rwxrw-rw-)
不过以数字相减的方式容易出现错错误:
如:我们把umask值设置成003,那么文件的权限应该是664,则减下来是603,所以此方法不建议使用:
2、更改文件的所有者和所属组:chown
chown主要用于修改文件的所属主和所属组:主要参数: -R
2.1 那我们如何来查看文件/目录的所属主和所属组:
[[email protected] ~]# ls -l
总用量 136
drw-r--r-- 2 root root 90 10月 25 18:08 1
-rw-r--r-- 1 root root 841 10月 24 17:31 1.txt
如上所述:第三部分root表示所属主,第四部分表示所属组:
所属主(root) #文件的创建者及拥有者:
所属组(root) #文件的拥有者所在那个组:
2.2 那我们如何给文件/目录修改所属主和所属组呢:
chown username:group filename/dir
1 2 3 4 5 6 | [[email protected] ~] # chown yuanhh 1 #表示修改目录1的所属主为yuanhh. [[email protected] ~] # chown :yuanhh 1 #表示修改目录1的所属组为yuanhh. [[email protected] ~] # chown yuanhh:yuanhh 1.txt #表示同时修改1.txt的所属主和所属组: [[email protected] ~] # ls -l drw-r--r-- 2 yuanhh yuanhh 90 10月 25 18:08 1 #查看目录1. -rw-r--r-- 1 yuanhh yuanhh 841 10月 24 17:31 1.txt #查看文件1.txt. |
2.3 此时chown还有一个参数:-R:表示级联选项:会把此目录下所有文件/目录的权限都改变(主要针对目录):
chown -R username:group 1 #修改1目录的主和组(同时也会修改其下的目录和文件).
1 2 3 4 | [[email protected] ~] # chown -R yuanhh:root 1 #同时修改目录1的所属主和所属组: [[email protected] ~] # ls -l 1 -rwxrwxrwx 1 yuanhh root 0 10月 24 15:28 11 #其下面的目录也发生变化: -rwxrwxrwx 1 yuanhh root 0 10月 25 18:08 1.txt #其下面的文件也发生变化: |
3、chgrp: 此命令用于修改文件的所属组(与chown的所属组一样).
chgrp group filename/dir #应用格式
1 2 3 | [[email protected] ~] # chgrp yuanhh 2.txt #修改其所属组为yuanhh: [[email protected] ~] # ls -l 2.txt -rw------- 1 root yuanhh 4904 10月 24 17:48 2.txt #已修改: |
3.1 同时,chagr也有级联参数,可直接修改目录下面的文件或目录:
chgrp -R group 1 #修改目录1,用级联的方式:
1 2 3 4 | [[email protected] ~] # chgrp -R yuanhh 1 #修改目录1,用级联的方式: [[email protected] ~] # ls -l 1 -rwxrwxrwx 1 yuanhh yuanhh 0 10月 24 15:28 11 # -rwxrwxrwx 1 yuanhh yuanhh 0 10月 25 18:08 1.txt # |
4、隐藏权限lsattr/chattr: 参数如下;
-i :增加了此选项后,文件或目录不能删除、修改、写入等全部操作(连BOSS的root也不可以)
-a :增加了此选项后:只能追加,不能删除、修改,并且非root用户不能操作(只增不减)
-s :增加了该选项后:会将数据同步写入到磁盘:#不常用
-c :自动解压缩:读取文件时自动解压缩: #不常用
-A :增加了后,文件的atime不能修改: #不常用
-d :只查看当前目录本身: #相当于ls的-d选项:
-a :查看隐藏文件: #用法:lsattr -a
-R :查看当前目录下的文件或者目录:
4.1隐藏权限可以保护文件的安全性,一旦设置后,文件连root用户也是不能修改的:
用法1: chattr +i filename/dir #给文件或目录增加i权限:
1 2 3 4 5 6 7 | [[email protected] ~] # chattr +i 1.txt #给1.txt增加i权限: [[email protected] ~] # rm -fr 1.txt #无法删除文件: rm : 无法删除 "1.txt" : 不允许的操作 [[email protected] ~] # echo 1 > 1.txt #无法追加文件内容: - bash : 1.txt: 权限不够 [[email protected] ~] # chmod 777 1.txt chmod : 更改 "1.txt" 的权限: 不允许的操作 #无法修改文件权限: |
用法2: chattr +a filename/dir #给文件或目录增加a权限:
1 2 3 4 5 6 7 8 | [[email protected] ~] # chattr +a 1.txt #给1.txt增加a权限 [[email protected] ~] # rm -fr 1.txt #无法删除文件: rm : 无法删除 "1.txt" : 不允许的操作 [[email protected] ~] # chmod 777 1.txt #无法修改文件权限。 chmod : 更改 "1.txt" 的权限: 不允许的操作 [[email protected] ~] # echo 1111 >> 1.txt #可以追加文件内容 [[email protected] ~] # tail -n1 1.txt 1111 |
4.2 那我们如何取消文件权限呢:
chattr -a filename/dir #给文件或目录取消a权限:
chattr -i filename/dir #给文件或目录取消i权限:
同时也支持lsattr -R(也是级联选项):用法如下:
lsattr -R +i dir #主要只针对于目录:
查看命令lsattr: 参数: -d(目录本身) -a(隐藏文件) -R(级联下文件或目录)
1 2 3 4 5 | [[email protected] ~] # lsattr -d 1 #只查看目录1的权限: ----i----------- 1 [[email protected] ~] # lsattr -R 1 #查看目录下面的文件选项: ----i----------- 1 /2 ----i----------- 1 /yuan |
隐藏文件:
1 2 3 | [[email protected] ~] # lsattr -a /root/ #查看隐藏文件: ---------------- /root/ .bash_logout ---------------- /root/ .bash_profile |
今天现学习到这里。
以上是关于day08-linux权限(chmod chown umask chattr)的主要内容,如果未能解决你的问题,请参考以下文章
26期20180606 chmod chown umask 隐藏权限
26期20180606 chmod chown umask 隐藏权限