您的位置:首页 > 运维架构 > Linux

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

2017-10-25 20:19 736 查看
文件和目录权限chmod
更改所有者和所属组chown,
umask,
隐藏权限lsattr/chattr
文件和目录权限chmod



rw-r--r--
rw-: 文件所有者,是否可写w,是否可读r,是否可执行x
r--:所属组
r--其他用户
可以用数字表示
r=4 w=2 x=1
rwx=7
rw-=6
--x=1
rw-r--r--=644
rw-r-xr-x=655
chmod= change mode






. 是什么意思?



. 意味着这个文件受制于selinux



( permisive 表示也开启着,但不会去限制你,disable 才是真正关闭)
如何彻底关闭?改配置文件 vi /etc/selinux/config 。 重启
chmod -R
chmod 操作生效的仅仅是目录本身
(1.txt的权限并没有变化)




如果想把目录下的子目录或子文件批量的更改权限,可以加-R



chmod rwxr--r-- server2 (这样写是不对的) ,可以写成:
chmod u=rwx, g=r,o=r server2




所有都加上x 权限 所有的都减x




chown = change owner
看看系统用户都有哪些:



把yum.log的所有者改成server





chgrp 更改所属组




chown 不仅可以改用户,也可以改组



chown只更改组也可以 = chgrp




chown-R
eg: server2下面的文件所有者和所属组也会被改



umask

创建文件就是 644
创建目录就是755



0022 root用户的umask 值



更改这个值,再创建文件和目录
原来11.txt 644
现在3.txt 664
原来目录123:755
现在目录234:775




原来:022 644 755
现在:002 664 775
目录为什么一定要有x 权限? 进入目录浏览,就是执行目录,所以必须有x 权限
目录= 777-umask(022)=755
文件=666-umask(022)=644
但是也不一定对:




怎么样就对呢:
666=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664
目录权限:
777-003=rwxrwxrwx-(-------wx)=rwxrwxr--=774



所以不能用数字减,应该用9位的权限位去减

隐藏权限lsattr_chattr
man chattr



编辑>默认是空的,编辑不了






删除不了,改不了名字,也删除不了,touch也不行
这个时候应该想到,是不是有隐藏的特殊权限:
用lsattr查看这个文件权限:




chattr -i 减掉这个权限

chattr +a 只能追加,就像log日志一样




touch 可以



chattr -a 把这个权限去掉

当更改目录时:
lsattr 查看的是目录和目录底下的子目录和和子文件




如何去查看目录本身呢?
lsattr -d 111
给目录加i权限和给文件加i权限是一样的效果



chattr -i 去掉
chattr +a




更改111/12.txt的内容







可以更改目录文件里的内容



因为写的是文件本身,跟它所在的目录权限关系不大。

lsattr -R 可以查看文件下的子目录,和子目录下的文件
不加-R,仅仅查看一层



总结:
chattr +i +a -i -a

lsattr -R -a(隐藏的文件也能看出来) -d(查看目录本身)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux
相关文章推荐