如何查看及读取权限信息
文件目录权限信息
- - | rw-r–r-- | . | 1 | root | root | 0 | Oct 15 09:51 | westosfile1
- 1 2 3 4 5 6 7 8 9
1. 文件类型 -表示普通文件,d表示目录,s表示套接字socket,l表示软链接,b表示块设备,c表示字符设备,p表示管道
2. 权限信息,rw- 表示用户权限u,r--表示用户组权限g,最后三位表示其他人权限o
3. . 表示系统的SELinux开启,及安全上下文
4. 1 对于文件来说是系统的硬链接个数,即文件内容被系统记录的个数。对于目录来说,是目录下的子目录个数。
5. root 文件拥有者
6. root 文件拥有组
7. 0 对于文件来说,是文件的大小。对于目录来说,是目录的子文件中元数据大小,即属性个数。
8. 时间戳,代表文件最后一次被修改的时间。
9. 文件或者目录名称
10.软连接相当于是快捷方式,多个节点都指向源文件的路径;硬链接相当于复制,每个文件都是源文件,只有全部删除,硬链接数才为0。
设置文件的拥有者和拥有组信息
##设置文件拥有者
chown zhy /mnt/westosfile1
chown -R zhy /mnt/westosfile3
##设置文件拥有组
chgrp zhy /mnt/westosfile2
chgrp -R zhy /mnt/westosfile3
#同时设置文件拥有者和拥有组
chown -R zhy.zhy /mnt/test
chown -R root:root /mnt/test
普通权限的类型及作用
- 用户对文件的身份
- u 文件所有者
- g 文件所有组
- o 其他成员 - 权限级别
- user>group>other
3.权限类型
- -表示权限未开启
- r 读权限,对于文件,是读取文件内容。对于目录,是查看目录下的文件
- w写权限,对于文件是修改文件内容。对于目录是删除和修改目录下的文件。
- x执行权限,对于文件名可以用名称对文件内部程序进行调用。对于目录,可以进入目录。
设定普通权限的方法
- 通过命令复制权限
chmod --reference=/mnt/test /mnt/westosfile1
- 通过字符方式修改
chmod+ugo+ -=rwx+文件或者目录
chmod+a=-+rwx+文件或者目录
- 通过数字方式修改
r=4 w=2 r=1
chmod 777 /mnt/westosfile1
系统默认权限设定
为了系统的安全,我们需要保留系统的一部分权力,那么如何保留权利?
>umask ##表示系统保留权限
>umask+权限值 ## 可以临时设定权限值
>永久设定权限值
需要修改俩个文件,一个是/etc/bashrc,shell配置文件,另一个是/etc/profile系统配置文件
vim /etc/bashrc
vim /etc/profile
文件权限:777-umask-111
目录权限:777-umask
图中可以看出文件的初始权限=777-umask-111=777-022-111=644 即rw-r–r--
目录的初始权限=777-umask=777-022=755即rwxr-xr-x
系统中的特殊权限
- stickyid ##针对目录,可以在目录下创建删除文件,但是只有root和文件所有者可以删除自己的文件。
- 命令:chmod o+t /mnt/test/
- 或者:chmod 1777 /mnt/test
- suid ##只针对可执行的二进制文件(c程序)
- ##使用suid,不论文件是谁发起,都以文件拥有者身份去执行
- 命令:chmod u+s /bin/cat
- sgid ##设置了sgid权限后,针对二进制文件,该命令发起的程序是以该命令所有组的身份去执行,和谁发起的无关
- ##针对目录,目录中新出现的文件会自动复制上层目录的所有组身份。
- 命令: chmod g+s /bin/cat chmod g+s /mnt/test/
针对二进制文件
针对目录:
facl权限列表
-
传统的权限仅有三种身份(user,group,other),搭配权限有三种(rwx),并没有办法单纯的针对某一个使用者或者某一个群组来设置特定的权限要求,此时就得要使用ACL(文件访问控制列表,Access Control List)这个机制。
-
facl权限列表匹配顺序:文件所有者>指定文件所有者>文件所有组>指定文件组>其他人
-
facl命令:
- getfacl ##查看权限列表 - setfacl ##设置权限列表 - ##参数 -m 设定权限 - -x 删除指定用户 - -b 关闭列表功能
针对文件
指定组和用户并设置权限。
删除指定用户和组。
关闭facl列表
针对目录
setfacl -m u:zhy:rw /mnt/test ##只针对目录,设置目录的特殊所有者
setfacl -Rm u:zhy:rw /mnt/test ##针对目录,同时设置目录下文件的指定所有者,但不指定新出现文件的权限
setfacl -Rm d:zhy:rw /mnt/test ##针对目录中新出现的文件
attr权限
系统中有一些非常重要的文件,我们需要设置为任何用户都不可用,那么我们就需要用到这个权限。
- chattr -+i 文件或者目录 ##针对文件,设置此权限后,文件不可以被添加和删除;
- ##针对目录,设置此权限后,不可以操作目录下的任何文件
- chattr -+a 文件或目录 ##针对文件,不可以删除和修改文件内容
- ##针对目录,可以在目录下添加文件,但是不可以删除文件
- lsattr 文件或者-d 目录 ##查看文件或者目录设置的权限