1.文件权限的查看
ls -l file #查看文件的属性以及权限
ls -l -d dir =ls -ld dir #查看目录的属性以及权限
ll file#查看文件属性和权限
ll -d dir#查看目录的属性和权限
ls -LR dir#递归显示目录、文件以及目录下的文件
2.文件类型
类型 | 释义 |
---|---|
- | 空文件或文本文件(普通文件) |
d | 目录文件 |
l | 软链接文件(相当于快捷方式) |
s | socket套接字文件(特殊设备文件)(一个程序对外开放的门) |
b | block块设备文件(特殊设备文件) |
c | 字符设备文件(特殊设备文件) |
p | 管道符文件 |
3,文件的权限
u:文件的所有者能够做什么操作(所有者)
g:文件的所有组能够做什么操作(所有组)
o:其他人能够对文件做什么操作(其他人)
4 改变文件的所有者和所有组
改变文件所有者:chown
chown username file|dir #更改文件或目录的所有者
chown username.groupname file|dir#更改文件或目录的所有人所有组
改变文件所有组:chgrp
chgrp groupname file|dir#更改文件或目录的所有组
chgrp -R groupname dir#更改目录本身以及目录里所有文件的所有组
**改变文件的权限
r
对文件:是否可以查看文件的内容 ->cat file
对目录:是否可以查看目录中有什么子目录或子文件 ->ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或子文件的元数据进行更改
x
对文件:是否可以通过文件名称调用文件内记录的程序
2.更改方式:
更改文件权限需要chmod指令。具体指令如下:
chmod <u|g|o><+|-|=><r|w|x> file|dir 对文件进行u|g|o的打开|关闭|复制其r|w|x权限
eg:
chmod u+x file1
chmod g-r file1
chmod ug-r file1
chmod u-r,g+x file1
权限可以用0-7数字表示
- - - | 000 |
---|---|
- - x | 001 |
- w - | 010 |
- wx | 011 |
r - - | 100 |
r -x | 101 |
rw- | 110 |
rwx | 111 |
**
Umask
**
- 考虑一个系统是通过两方面:1、安全性 2、功能性。
这两者是矛盾的-----权限开放的越多,功能越多,但是安全性就会越低,反之,权限开放的少,功能就越少,但是安全性就越高。 - umask默认权限是Linux权限的一种,主要是让Linux的新建文件和目录拥有默认权限,Linux中默认所有文件都是不可执行的,而Windows是通过继承上级目录的权限给文件和目录赋予初始权限。
修改Umask
我们可以在shell中修改umask,但是他是在内存中的该bash进程中修改的,是临时的。如果想要永修修改,则需要更改**/etc/profile和/etc/bashrc**里面的内容。
临时修改
umask 077---------表示临时设定系统预留权限为077
**永久修改**
修改/etc/profile
vim /etc/profile
系统默认值为022,将其修改为077
-
修改 /etc/bashrc
vim /etc/bashrc
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190721202124373.png
系统默认值为022,同样将其修改为077注意:
全部修改完成后,查看umask,发现他仍然是022,是因为修改完成后,它不能立即在当前shell中生效,关闭shell并重新打开一个shell,输入umask,便能看到umask值改成了077。如果想要立即生效,就输入命令source /etc/profile和source /etc/bashrc让修改立即生效
**
特殊位
**
sticky—粘制位
chmod o+t或chmod 1XXX
针对目录生效,当目录有sticky权限时,在这个目录中的文件只能被文件所有者删除
chmod o+t dir
-
mkdir /public /建立目录
-
chmod 777 /public /设置目录public为公共目录
-
useradd westos
-
useradd lee
-
watch -n 1 ‘ls -ld /deng;ls -l /deng’ /监控deng目录和该目录下的文件
-
重新打开一个shell,输入命令:
-
su - westos
-
切换为westos用户
-
touch /tian/westosfile /建立westosfile文件
-
切换为 lee用户
-
touch /tian/leefile /建立leelife文件
现在,用户westos不仅可以删除自己建立的文件,也可以删除用户lee建议的文件。当用户删除自己创建的文件的时候是合理的,但是用户可以删除其他用户创建的文件的时候就不合理了,所以我们要设置权限 -
chmod o+t /deng/ /在root用户下设置权限,使其他用户无法删除别人建立的文件 su - westos
-
切换成用户westos
-
rm -fr /deng/leefile /这个时候就不可以删除文件了,因为文件的建立者不是westos
sgid /强制位
作用:
对文件:只针对于二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录:当目录上只有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
eg:
chmod g+s file|dir
chmod 2xxx file|dir
suid /冒险位
注意:
只针对于二进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
ps ax /查看所有进程
ps ax -o user,group,comm /扫描所有进程中的所有人,所有组和命令
grep /过滤,只看
- watch -n 1’ps ax -o user,group,comm | grep cat’
- chmod u+s /bin/cat /任何人在运行/bin/cat进程时都以文件所有者root的身份
facl权限
getfacl ------查看facl权限
setfacl—设置facl权限
-m设定facl权限
表示在file1文件中添加用户deng的rwx权限
-
setfacl -m g:buford:rw- file1 ###
表示在file1文件中添加用户组buford的rw权限
-
setfacl -m d:u:tian:r-x /dhr ###
只对新建目录或文件权限生效,原有目录或文件权限不变
-x删除用户
- setfacl -x u:tian file1
-k关闭defult模式
- setfacl -k file1