1、文件权限的读取
命令 | 功能 |
---|---|
ls -l filename | 查看文件的属性 |
ll filename | 查看文件的属性 |
ls -ld dirname | 查看目录的属性 |
ll -d dirname | 查看目录的属性 |
ls -lR | 查询目录下的文件和子目录下的文件 |
ls -li filename | 查看文件的属性和进程号 |
2、文件权限的获取
我们执行ls -l filename 命令后能够读取filename文件的权限信息,总共有八个权限,不同权限有不同的意义。
- 【1】、文件类型
符号 | 代表的含义 |
---|---|
- | 空文件或者文本 |
l | 软链接等同于快捷方式 |
d | 目录 |
s | 套接字 |
b | 块设备 |
c | 字符设备 |
注意:套接字可以理解为一个接口,其作用就是作为进入其他软件的接口
- 【2】、文件权限
在【2】中表示的部分,三个符号为一组,第一组表示 拥有者(u)的权限,第二组表示组成员(g)的权限 ,第三组表示其他用户(o)的权限 ,这三者都有四种权限分别为 - r w x
权限 | 作用 |
---|---|
- | 表示无任何操作权限(对文件和目录都一样) |
r | 读取权限:1)对于文件来说即能否查看文件的内容;2)对于目录来说即能否查看目录中有什么子文件 |
w | 书写权限;1)对于文件来说即能否对文件内容进行更改;2)对于目录来说即能否在此目录中创建或删除文件 |
x | 执行权限:1)对于文件来说即能否用文件的绝对路径的名称来调用文件内记录的命令;2)对于目录来说即能否进入该目录中 |
注意:当一个other用户对于一个文件开通写的权限后,不可以删除,原因是:未开通该文件目录的写权限。文件的权限也叫原数据,属于所在目录的本身
- 【3】、文件的硬链接数:也即文件被系统记录的次数
- 【4】、文件的拥有者(uid)
- 【5】、文件的组拥有者(gid)
- 【6】、文件的大小
- 【7】、文件最后一次被修改的时间
- 【8】、文件名
注意:**以上八个权限中可更改的权限为【2】、【4】、【5】、【8】
3、更改文件和目录的所有人和所有组
chgrp groupname file/dir ##更改文件或目录的所有组##
chown username file/dir ##更改文件或目录的所有人##
chown username.groupname file/dir ##同时修改文件或目录的所有人和所有组##
chown -R username.groupname dir ##递归修改文件夹以及文件夹中包含的文件的所有人和所有组##
4、更改文件和文件夹的读、写、执行权限
-
首先按照八进制的技术方法,我们可以记:
---
:000r--
:4-w-
:2--x
:1
例如:r---w---x
:421
rwxrwxrwx:777
chmod 数字 file/dir ##修改用户、用户组、其他用户的文件权限##
-
命令如下:
- chmod 【u|g|o】【+、-、=】【r、w、x】
- chmod u+x file ##增加文件用户执行的权限##
- chmod g+w file ##增加文件用户组的书写权限##
- chmod o+x file ##增加其他用户的执行权限##
chmod a+rwx file/dir就等于chmod 777 file/dir ##同时开通用户和用户组以及其他用户的读取、书写、执行三个权限##
chmod -R u+r dir ##表示递归更改权限,给目录增加其用户读写的权限,而目录下的子文件也会增加其用户读写的权限##
chmod --reference file1 file2 ##将文件file1的权限复制到file2文件上##
5、umask
系统建立文件时默认保留的权力
umask ##查看当前的umask值##
系统默认回收 : umask 满权限是777
注意:这种修改只是在当前打开的shell中修改了,当关闭了当前shell则umask的值会变为系统默认值0022
若想永久修改系统默认的umask值,则需要进入/etc/bashrc文件和/etc/profile文件中修改关于umask的参数,这样才能永久修改。
注意:修改完后需要执行 source /etc/profile和source /etc/bashrc 这两个命令后,修改的umask值才能生效
** /etc/bashrc :shell配置文件 /etc/profile :系统配置文件 **
6、特殊权限
-
(1)、作用:让特定用户对特定文件有特定权限
-
(2)、sticky :粘制位
只针对目录起作用,功能即当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除。
设定方式: chmod o+t dir 或者 chmod 1XXX dir
-
(3)、sgid :强制位
- 针对目录:当目录上有sigd权限时任何人在此目录中建立的文件都属于目录的所有组
- 设定方法:chmod g+s dir 或者 chmod 2XXX dir
针对文件:只对二进制可执行文件起作用,当文件上有sgid权限时,任何人执行此文件产生的进程都属于文件组
设定方法: chmod g+s file 或者 chmod 2XXX file
-
(4)、suid :冒险位
只针对二进制可执行文件起作用,当文件上有suid权限时,任何人执行执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式: chmod u+s file 或者 chmod 4XXX file
7、acl权限
- (1)、标志:当查看文件属性时,有"+"出现,标志着acl列表已经开启
- (2)、acl列表的查看以及各部分的所代表的意义
getfacl file ##查看acl开启的文件的权限##
执行了如上的命令会出现下列信息
file:file ##文件名称##
owner:root ##文件拥有者##
group:root ##文件拥有组##
user::rw-- ##文件拥有人的权限##
group::r-- ##文件拥有组的权力##
other::r-- ##其他人的权限##
8、acl列表的设定
getfacl file
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限##
setfacl -m g:group;rwx file ##设定group组成员对file拥有rwx权限##
setfacl -x u:username file ##从acl列表中删除username##
setfacl -b file ##关闭file上的acl列表##
在权限列表中mask标示能生效的权力值,当用chmod减小开启acl的文件权限时mask值会发生改变
setfacl -m m:r file ##恢复mask值 ##
注意:不是所有的权限更改都是增大权限,也可以缩小权限
i权限:只能看,不能建立不能删除
a权限:用于系统审计,只能建立,不能删除
chatter ##设定权限##
lsatter ##查看权限##
如上图所示,用chatter命令设定了文件夹只有读的权限,故就算是超级用户也无权限在此文件夹下删除或者创建文件