linux学习lesson8

目录

1 文件或目录权限chmod

2 更改所有者和所属组chown

3 umask命令

4 隐藏权限lsattr/chattr


1 文件或目录权限chmod

chmod:change mode

#ls -l

rw-r--r--    //每三个字符为一段,第一段所属主,第二段所属组,第三段其他用户 r (4) 读 ,w (2) 写 ,x (1) 可执行

#ls -l /tmp/

发现文件属性的最后一位是“.”,跟selinux有关

#chmod 700 test/    //修改文件目录权限为rwx------,就是700

#chmod 700 -R test/    //-R表示级联,该目录下的子文件都是700权限

#chmod u=rwx,g=r,0=r test/

#chmod a+x test/    //ugo都加上x权限

chmod u-x filename

 

2 更改所有者和所属组chown

chown:change owner 更改文件所属主

#chown user /tmp/test

chgrp:change group 更改所属组

#chgrp user /tmp/test

#chown root:root /tmp/test 所有者和所属组同时更改

#chown -R user:user /tmp/test    //更改该目录下的所有者和所属组

 

3 umask命令

用户创建文件的默认权限是由umask设置,而系统规则中

普通文件最大权限是:rw-rw-rw-

目录的最大权限是:rwxrwxrwx

数字对应的值是:r(4),w(2),x(1)

而系统默认权限是需要减掉umask值

目录需要有x权限才能打开进入下一级,所以x作为默认预设值

普通文件权限:(rw-rw-rw-)-(----w-w-)=rw-r--r--(644)

目录权限:(rwxrwxrwx)-(----w-w-)=rwxr-xr-x(755)

默认的umask值,新建的目录权限是755,普通文件权限是644 

[root@worker1 lesson8]# umask
0022
[root@worker1 lesson8]# touch test.txt
[root@worker1 lesson8]# mkdir test
[root@worker1 lesson8]# ls -l
total 0
drwxr-xr-x 2 root root 6 Sep 14 18:09 test
-rw-r--r-- 1 root root 0 Sep 14 18:09 test.txt
[root@worker1 lesson8]#

更改了umask值为002后,新建的目录权限是775,普通文件权限是664

[root@worker1 lesson8]# umask 002
[root@worker1 lesson8]# touch test_mod.txt
[root@worker1 lesson8]# mkdir test_mod
[root@worker1 lesson8]# ls -l
total 0
drwxr-xr-x 2 root root 6 Sep 14 18:09 test
drwxrwxr-x 2 root root 6 Sep 14 18:16 test_mod
-rw-rw-r-- 1 root root 0 Sep 14 18:16 test_mod.txt
-rw-r--r-- 1 root root 0 Sep 14 18:09 test.txt
[root@worker1 lesson8]#

对于文件权限计算,有些人使用数字减

例如:

#umask 003

普通文件权限:666-003 = 663

实际:

普通文件权限:(rw-rw-rw-)-(-------wx)= rw-rw-r--(664)

为了避免这种问题出现,一般使用权限位减

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

 

4 隐藏权限lsattr/chattr

命令chattr

修改文件的特殊权限属性

chattr +i 增加该属性后,文件不能删除、重命令、设定链接、写入及新增数据

chattr -i 减少i属性

chattr +a 增加该属性后,只能追加不能删除

chattr -a 减少a属性

普通文件属性操作

chattr +i  //对文件增加“i”属性操作实验

[root@worker1 lesson8]# touch file.txt
[root@worker1 lesson8]# ls
file.txt
[root@worker1 lesson8]# chattr +i file.txt //增加i属性
[root@worker1 lesson8]# rm file.txt //不能删除
rm: remove regular empty file ‘file.txt’? y
rm: cannot remove ‘file.txt’: Operation not permitted
[root@worker1 lesson8]# mv file.txt file1.txt //不能修改名字
mv: cannot move ‘file.txt’ to ‘file1.txt’: Operation not permitted
[root@worker1 lesson8]# mv file.txt /tmp/ //不能移动到别的目录
mv: cannot move ‘file.txt’ to ‘/tmp/file.txt’: Operation not permitted
[root@worker1 lesson8]# head -n 2 /etc/passwd > file.txt //不能添加内容
-bash: file.txt: Permission denied
[root@worker1 lesson8]# head -n 2 /etc/passwd >> file.txt //不能追加内容
-bash: file.txt: Permission denied
[root@worker1 lesson8]# lsattr //查看文件带有的隐藏属性
----i----------- ./file.txt
[root@worker1 lesson8]# chattr -i file.txt //去掉i属性
[root@worker1 lesson8]# lsattr
---------------- ./file.txt
[root@worker1 lesson8]#

chattr +a  //对文件增加“a”属性操作实验

[root@worker1 lesson8]# chattr +a file.txt //file.txt文件增加a属性
[root@worker1 lesson8]# ls
file.txt
[root@worker1 lesson8]# lsattr //查看file.txt文件隐藏属性
-----a---------- ./file.txt
[root@worker1 lesson8]# rm file.txt //file.txt不能被删除
rm: remove regular empty file ‘file.txt’? y
rm: cannot remove ‘file.txt’: Operation not permitted
[root@worker1 lesson8]# mv file.txt file1.txt //file.txt不能修改文件名字
mv: cannot move ‘file.txt’ to ‘file1.txt’: Operation not permitted
[root@worker1 lesson8]# mv file.txt /tmp/ //file.txt不能移动文件
mv: cannot move ‘file.txt’ to ‘/tmp/file.txt’: Operation not permitted
[root@worker1 lesson8]# head -n 2 /etc/passwd >> file.txt //可以追加内容到文件file.txt中
[root@worker1 lesson8]# cat file.txt //追加到file.txt的内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@worker1 lesson8]# chattr -a file.txt //减少file.txt的a属性
[root@worker1 lesson8]# lsattr //file.txt的a属性已经去除
---------------- ./file.txt
[root@worker1 lesson8]#

 

目录属性操作

chattr +i/a //目录分别增加“i”和“a”属性

[root@worker1 lesson8]# mkdir -p dir1/dir2 //创建目录dir1,dir2
[root@worker1 lesson8]# touch dir1/dir2/file2.txt //创建file2.txt文件
[root@worker1 lesson8]# chattr +i dir1/ //dir1增加i属性
[root@worker1 lesson8]# lsattr //查看隐藏属性
----i----------- ./dir1
[root@worker1 lesson8]# rm -r dir1/ //不能删除dir1,dir2目录,但file2.txt文件删除了
rm: descend into directory ‘dir1/’? y
rm: descend into directory ‘dir1/dir2’? y
rm: remove regular empty file ‘dir1/dir2/file2.txt’? y
rm: remove directory ‘dir1/dir2’? y
rm: cannot remove ‘dir1/dir2’: Permission denied
[root@worker1 lesson8]# tree
.
└── dir1
    └── dir2

2 directories, 0 files
[root@worker1 lesson8]# mv dir1/ dir/ //目录dir1不能修改名字
mv: cannot move ‘dir1/’ to ‘dir/’: Operation not permitted
[root@worker1 lesson8]# mv dir1/ /tmp/ //目录dir1不能移动
mv: cannot move ‘dir1/’ to ‘/tmp/dir1’: Operation not permitted
[root@worker1 lesson8]# touch dir1/file3.txt //dir1目录里不能新建file3.txt文件
touch: cannot touch ‘dir1/file3.txt’: Permission denied
[root@worker1 lesson8]# head -n 2 /etc/passwd > dir1/dir2/file2.txt //可以增加内容到file2.txt,前提是file2.txt存在
[root@worker1 lesson8]# cat dir1/dir2/file2.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@worker1 lesson8]# chattr -i dir1/ //dir1减少i属性
[root@worker1 lesson8]# chattr +a dir1/ //dir1增加a属性
[root@worker1 lesson8]# touch dir1/file3.txt //新建file3.txt
[root@worker1 lesson8]# head -n 2 /etc/passwd  > dir1/file3.txt //增加内容到file3.txt里
[root@worker1 lesson8]# cat dir1/file3.txt //已经增加的内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@worker1 lesson8]#

lsattr 命令

用于读取文件或目录的特殊权限

lsattr //当前不隐藏的文件和目录

lsattr -R //查看目录下所有目录和文

lsattr -d //只查看目录本身

lsattr -a //查看所有文件,包括隐藏文件都显示

[root@worker1 lesson8]# lsattr
---------------- ./dir1
[root@worker1 lesson8]# lsattr -R
---------------- ./dir1

./dir1:
---------------- ./dir1/dir2

./dir1/dir2:
---------------- ./dir1/dir2/file2.txt

---------------- ./dir1/file3.txt

[root@worker1 lesson8]# lsattr -d
---------------- .
[root@worker1 lesson8]# lsattr -a
---------------- ./.
---------------- ./..
---------------- ./dir1
[root@worker1 lesson8]#

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值