Linux初学者学习笔记

20170724 文件权限

2017-07-25  本文已影响15人  哈喽别样

概要

linux文件权限
linux文件特殊权限
ACL 访问控制列表

一、linux文件权限

(一)linux文件属性

ls -l 命令可以看到文件相关属性,每个字段的意义如下:


1. chown 设置文件所有者

chown hellopeiyang a.txt            <!--改变a.txt文件所有者为hellopeiyang-->
chown hellopeiyang:natasha b.txt    <!--改变b.txt文件所有者为hellopeiyang,所属组为natasha-->
chown :natasha c.txt                <!--改变c.txt文件所属组为natasha-->
chown hellopeiyang: d.txt
<!--改变d.txt文件所有者为hellopeiyang,所属组为所有者的主组hellopeiyang-->
chown -R hellopeiyang test1 
<!--递归改变test目录和以下所有文件目录的所有者为hellopeiyang-->

2. chgrp 设置文件所属组

(二)linux文件权限

linux定义了以下三类用户:

linux文件为每类用户规定了三种权限

1. 三种权限在文件与目录中的不同效果

2. 文件权限描述方法

u+w:所有者增加写权限
g-x:所属组减少可执行权限
a=rw:所有用户的权限赋值为读、写权限
rwx 7=4+2+1   rw- 6=4+2+0   r-- 4=4+0+0
-wx 3=0+2+1   -w- 2=0+2+0   
--x 1=0+0+1
--- 0=0+0+0

用三位数字描述文件三类用户的权限修改情况如下:

764 rwxrw-r--     <!--所有者权限:全部,所属组权限:读写,其他人权限:读-->
620 rw--w----     <!--所有者权限:读写,所属组权限:写,其他人权限:无-->

3. chmod 修改文件权限

chmod [OPTION]... MODE[,MODE]... FILE...      <!--模式法-->
chmod [OPTION]... OCTAL-MODE FILE...          <!--数值法-->
chmod 740 abc
chmod u-x,g+w,o= def

(三)umask值:新建文件和目录的默认权限

二、linux文件特殊权限

一般来说,用户是否能够访问文件取决于被访问文件的权限设置。但是,linux文件的特殊权限(SUID,SGID)表现在:用户继承了访问文件使用的可执行程序文件的权限设置。

(一) SUID

chmod u+s FILE...     <!--先前位置的x会被s代替-->
chmod u-s FILE...     <!--s会恢复成x-->
chmod 4720 FILE...    <!--用数值法描述时,在原三位数字前添加数字4-->

(二)SGID

1. 可执行文件上的SGID权限

chmod g+s FILE...     <!--先前位置的x会被s代替-->
chmod g-s FILE...     <!--s会恢复成x-->
chmod 2770 FILE...    <!--用数值法描述时,在原三位数字前添加数字2-->

2. 目录上的SGID权限

chmod g+s DIR...     <!--先前位置的x会被s代替-->
chmod g-s DIR...     <!--s会恢复成x-->
chmod 2770 DIR...    <!--用数值法描述时,在原三位数字前添加数字2-->

(三)Sticky 粘滞位

chmod o+t DIR...     <!--先前位置的x会被t代替-->
chmod o-t DIR...     <!--t会恢复成x-->
chmod 1647 DIR...    <!--用数值法描述时,在原三位数字前添加数字1-->

特殊权限的大小写区别

(四)设定文件特定属性

chattr +i     <!--不能删除,改名,更改-->
chattr +a     <!--只能追加内容-->
lsattr        <!--显示特定属性-->

三、ACL访问控制列表

// 手动开启ACL功能
tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
-m 修改 -x 删除 
option:-R 递归 -b 清空 -k 删除默认acl权限
u:hellopeiyang:rwx     <!--设定用户hellopeiyang的所有者权限为rwx-->
g:natasha:rw     <!--设定组natasha的所属组权限为rw-->
m::rw    <!--设定mask值为rw-->
setfacl -m u:hellopeiyang:rw hello     <!--设置文件hello的ACL权限为自定义用户拥有读写权限-->
setfacl -b hello     <!--清空hello文件的ACL权限-->
上一篇下一篇

猜你喜欢

热点阅读