文件和目录权限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(查看目录本身)