####linux里面一切皆文件####
1.查看目录和文件的属性:
文件权限的查看:ls -l file ## 查看文件的权限
目录里面文件权限的查看:ls -l dir ## 查看目录里面文件的权限
目录本身权限的查看:ls -ld dir ## 查看目录本身的权限,注意不是目录里面文件的权限
2.文件权限的说明:
- rw-r--r-- 1 root root 0 Apr 4 09:44 file
[1] [2] [3] [4] [5] [6] [7] [8]
[1] 文件类型:
- ##文本或者空文本
d ##目录
l ##软连接
s ##套接字
b ##块设备
c ##字符设备
[2] 文件权限:(r--读权限 w--写权限 x--执行权限)
rw- r-- r--
[a] [b] [c]
[a] 建文件所有人对文件能做什么操作
[b] 文件所有组对文件能做什么操作
[c] 其他人对文件能做什么操作
[3] 对文件:文件内容被记录的次数
对目录:目录中子目录的个数
[4] 文件所有人
[5] 文件所属组
[6] 对文件:文件的大小
对目录:目录中子文件元数据的大小
[7] 文件的内容被修改的时间
[8] 文件的名称
2.修改目录和文件的权限:
1)对权限的说明:
r--读权限
对文件来说:是否可以查看文件内容
对目录来说:是否可以查看目录里面的子目录或者子文件
w--写权限
对文件来说:是否可以修改文件内容
对目录来说:是否可以对目录里面的子目录或者子文件的元数据(matedate可理解为文件的属性)
进行修改(改名/删除)
x--执行权限
对文件来说:是否可以通过文件名称调用文件内记录的程序
对目录来说:是否可以进入目录
注意:对目录来说,只有用户同时拥有w和x权限,才可以对目录下的子文件或者子目录进行删除
2)权限修改(两种更改方式):
a)chmod <u/g/o> <+/-> <r/w/x> file/dir
示例:
b)chmod 542 file/dir
说明:r=4,w=2,x=1 如542代表 r-x r-- -w-
3)umask:系统对于创建的文件或者目录分配给他的默认的权限,默认的umask参数时0022
更改umask的值: umask 012 ##012为要减去的权值
更改过后我们计算一下权值:文件默认权限(rw- rw- rw-) - (--- --x -w-) = (rw- rw- r--)
注意: a)此处不是简单的减法操作,务必整明白
b)在更改umask值之前建立的文件的权限不会被修改
示例:
4)永久改变umask:上面改变umask值是临时改变的,要想永久改变,要修改配置文件:
vim /etc/profile
注意:002对应普通用户,022对应超级用户
vim /etc/bashrc
source /etc/profile ##更改立即生效
source /etc/bashrc
3.更改目录和文件的归属:
chown user file/dir
chown user.group file/dir
chown -R user.group dir
chgrp group file/dir
chgrp -R group dir
4.acl权限列表:让特定用户对特定文件拥有特定的权限
acl权限列表查看:
1)getfacl file/dir ##查看文件或者目录的权限
2)setfacl -m u:user1:rwx file/dir ##设定user1对file/dir的权限为rwx
3)setfacl -m g:group:rwx file/dir ##设定group组成员对file/dir的权限为rwx
4) setfacl -x u:student file/dir ##从acl列表在删除student用户
5)setfacl -b file/dir ##关闭file/dir上的acl列表
说明:mask::rwx ##能赋予用户的最大权力值
1)当用chmod减小开启acl的文件权限时,mask值会发生改变
2)如果需要恢复mask值: setfacl -m m:rw file
3)acl的默认权限只针对目录完成,而且只会对设定完成之后新建的文目录起作用,对已经存在的目录不会继承默认权限
5.特殊权限:
1)sticky ##粘制位
说明:只针对目录生效,当一个目录上面有sticky权限时,在这个目录中的文件只能被文件的所有者删除
设定方式: chmod o+t dir
chmod 1xxx dir
2) sgid ##强制位
对文件: 只针对二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式: chmod g+s file/dir
chmod 2xxx file/dir
3)suid ## 冒险位
注意:只针对二进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式: chmod u+s file
chmod 4xxx file