您的位置:首页 > 其它

文件和目录权限chmod、更改所有者和所属组chown、umask、隐藏权限lsattr、chattr2.14-2.17

2017-12-20 19:08 771 查看
2.14、改变用户对文件的读写执行权限 chmod 

目录权限管理

ls -l查看权限出来的9位rwxr--r--,9位分成了三段是三个权限位,每三位字符分别表示所有者u(user)所属组g(group)及其他用户o(other)的权限,

rwx读写可执行,r--可读不可写不可执行,r--可读不可写不可执行,也可用数字来表示,

比如,若规定r=4 w=2 x=1,那么所有者的权限为rwx,则数字表示通常用相加的方式,rwx=7,rw-=6,--x=1;那么rwxr--r--=744

chmod的用法(change mode更改权限)

例:如果我想把2.txt的权限改成所有者u权限读写可执行,所属组g和其他用户o权限为无,那么正常表示应该是rwx------数字表示是700,命令为

chmod 700 2.txt

ls -l 2.txt

-rwx------.1 root root 1090 5月 7 09:31 2.txt

这时可以看出2.txt权限已经改成了所有者u权限读写可执行,所属组g和其他用户o权限为无。

例:把/root/.ssh的权限改成所属组和其他用户权限为无,则命令为

chmod 700 /root/.ssh,或写成chmod u=rwx

chmod -R批量级联更改目录及子目录文件权限

例如:

chmod -R 770 aming2#把aming2及其子目录权限全部改成770

chmod rwxr--r-- a

chmod a+x aming2表示把aming2的所有者u,所属组g及其他用户o的权限全部(all)加上可执行权限x,rwxr-xr-x;当然也可以单独加或减,比如只为aming2的所有者u权限加x,则表示为chmod u+x aming2

2.15 chown的用法

chown的用法(change owner更改所有者所属组)

例:把/temp/yum.log的所有者权限改为aming,则可以用命令

chown aming /tmp/yum.log

例:把/temp/yum.log的所有者权限改为user1,所属组改为aming,则可以用命令

chown user1:aming /tmp/yum.log

例:只把/temp/yum.log的所属组改为root,则可以用命令chown :root /tmp/yum.log,在这个例子里,chown与下个例子里的chgrp是一样的作用

chgrp的用法(change group更改所属组)

例:想把/temp/yum.log的所属组权限改为user1,则可以用命令chgrp user1 /tmp/yum.log

chown -R的用法,批量更改目录及子目录文件的所有者所属组

chown -R username:group filename批量更改所有者及所属组

chown -R username filename批量更改所有者

chown -R :group filename批量更改所属组

所有者与所属组之间用“:”隔开,如果只更改所有者则把冒号和另一个参数都省略掉,如果只更改所属组,则参数前要的冒号不能省略。

例:把/tmp/aming目录里文件所有者改为user1所属组改为aming则可以用chown -R user1:aming /tmp/aming2

2.16.umask命令

umask是用来决定默认目录和文件的权限

umask回车

0022

当系统的默认umsk值是0022,文件默认值是644,目录默认值是755

我们把umsk值改在0002时(第一个0可以省略),用命令umask 002回车,发现文件默认值变成664,目录默认值是775

我们可以发现,其中目录用777-022=755,文件用666-022=644,当我们把umsk值改成002时,目录权限就变成777-002=775,文件权限就变成666-002=664,

上面这种计算方法有时也不太对,比如当umask=003的时候,应该这么计算:

666-003=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664

777-003=(rwxrwxrwx)-(-------wx)=rwxrwxr--=774

测试一下:

mkdir 111#创建一个111文件夹

ls -ld 111#查看他的权限

drwxrwxr--. 2 root root 6 5月 7 13:03 111#可以看出权限是774

在计算过程中遵守,0减任何值都为0

注:目录一定会有x权限,无论什么用户还是什么组

2.17.设置目录和文件的隐藏权限

一、chattr的用法

<+i和-i>

将1.txt设为隐藏权限chattr +i 1.txt,设置之后此文件为只读,不能写不能删不能改名不能更改它的时间信息

例:chattr +i 1.txt

head -n2 /etc/passwd > 1.txt #尝试将passwd的前两行写入到1.txt

-bash:1.txt:权限不够#权限已修改试着用lsattr查看目录下的一层子目录和子文件权限,

lsattr 1.txt

----i-------1.txt#会发现1.txt文件多了个“i"的显示

如果想取消掉这个权限,就要用"-i"

chattr -i 1.txt

lsattr -d查看目录本身权限,比如lsattr -d 111查看111目录的权限

lsattr -R查看目录下的多层子目录及每层目录下的子文件

若想去掉隐藏权限,用chattr -i 1.txt即可。

<+a和-a>

文件只能追加,可以更改它的时间信息,但是不能删不能改名不能重命名

chattr +a 1.txt只能加内容,不能删不能改名不能重命名,比如LOG日志可以这么用

去掉此权限可以用chattr -a 1.txt

更多用法参考下述描述

1、chattr 、修改文件的特殊属性命令 :

语法: chattr [+-=][ASaci ][文件或者目录名]

‘+-=’ : 分别为增加、减少、设定 

‘A’ : 增加该属性后,文件或目录的atime将不可被修改 

‘S’ : 增加该属性后,会将数据同步写入磁盘中 

‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性 

‘c’ : 自动压缩该文件,读取时会自动解压 

‘i’ : 增加后,使文件不能被删除、重命名、设定链接、写入、新增数据

2、 lsattr 读取文件或者目录的特殊权限

该命令用来读取文件或者目录的特殊权限,语法为 lsattr [-adR] [文件/目录名]

‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出

'-d' :查看目录本身

‘-R’ : 连同子目录的数据一同列出 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐