文件和目录权限chmod

更改所有者和所属组chown,

umask,

隐藏权限lsattr/chattr

文件和目录权限chmod

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

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

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

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

. 是什么意思?

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

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

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

( permisive 表示也开启着,但不会去限制你,disable 才是真正关闭)   

如何彻底关闭?改配置文件 vi /etc/selinux/config 。  重启

chmod -R

chmod 操作生效的仅仅是目录本身

(1.txt的权限并没有变化)

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

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

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

chmod rwxr--r--  server2 (这样写是不对的) ,可以写成:

chmod u=rwx, g=r,o=r server2

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


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

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


chown = change owner

看看系统用户都有哪些:

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

把yum.log的所有者改成server


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


chgrp 更改所属组

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


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

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

chown只更改组也可以 = chgrp

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


chown-R

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

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

umask

创建文件就是 644

创建目录就是755

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

0022  root用户的umask 值

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

更改这个值,再创建文件和目录

原来11.txt  644

现在3.txt  664

原来目录123:755

现在目录234:775

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


原来:022 644 755

现在:002 664 775

目录为什么一定要有x 权限?   进入目录浏览,就是执行目录,所以必须有x 权限

目录= 777-umask(022)=755

文件=666-umask(022)=644

但是也不一定对:

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


怎么样就对呢:

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

目录权限:

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

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

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


隐藏权限lsattr_chattr

man chattr

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

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

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

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

删除不了,改不了名字,也删除不了,touch也不行

这个时候应该想到,是不是有隐藏的特殊权限:

用lsattr查看这个文件权限:

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


chattr -i  减掉这个权限


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

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

touch 可以

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

chattr -a 把这个权限去掉


当更改目录时:

lsattr 查看的是目录和目录底下的子目录和和子文件

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


如何去查看目录本身呢?

lsattr -d 111

给目录加i权限和给文件加i权限是一样的效果

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

chattr -i 去掉

chattr +a

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


更改111/12.txt的内容

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

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


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

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

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


lsattr -R  可以查看文件下的子目录,和子目录下的文件

不加-R,仅仅查看一层

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

总结:

chattr +i +a -i -a

lsattr -R -a(隐藏的文件也能看出来)  -d(查看目录本身)