Linux(RadHat)基础学习—文件权限
2018-07-27 00:19
447 查看
文件权限的意义:系统最底层安全设定方法之一,保证文件可以被可用的用户作相应操作
1.文件属性的查看
ls -l filename 等同于 ll filename (文件属性) ls -ld dir 等同于 ll -d dir (目录属性) -|rw-r--r--.|1| root| root| 46 |Oct 1 05:03 |filename 1 2 3 4 5 6 7 8
1. "-"部分:文件类型
- ##空文件,普通文本文件 d ##目录w c ##字符设备:显示字符设备,接收字符属出。 s ##套接字 socket:“接口/门”,程序提供对外交互的一个"门"文件,后缀sock p ##管道 b ##快设备 block: l ##软连接:”快捷方式“ (ln file11 file2 把文件file1链接到file2)
2."rw-r--r--"部分:文件读写权限
rw-|r--|r-- (1) (2) (3) (1)【user】文件所有者的权限,对文件所能做的那些操作 (2)【group】文件所有组的权限 (3)【other】其他人的权限
3."1"部分:
文件硬连接个数 对文件:文件内容被系统记录的次数() 同一个文件通过链接产生另一个文件,虽然文件名字不同,但这两个文件其实是同一个文件,可以看到其文件id一样。这样文件的硬链接个数变成了2。 对目录:目录中文件属性的字节数(目录中子文件的元数据【文件属性】大小):7+文件名字字符数
4."root"部分:
文件所有人
5."root"部分:
文件所有组
6."46"部分:
文件内容的大小
7."Oct 1 05:03"部分:
文件的内容最后一次被修改的时间,不包括其文件权限的修改
8."filename"部分:
文件名字
2.文件所有人所有组的管理
chown:更改文件/目录所有者 chown username file|dir ##更改文件的所有人 chown username.groupname file|dir ##更改所有人所有组(把.换成:也可以) chown -R username dir ##更改目录本身及里面所有内容的所有人 chgrp:更改文件/目录所有组 chgrp groupname dir ##更改目录/文件的所有组 chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组
监控命令
watch -n 刷新时间 命令 watch -n 1 ls -lR /mnt 在监控页面每间隔1s重新执行 ls -lR /mnt
3.文件普通权限
rw-|r--|r-- u g o r :有读取权限 w:有写入权限 x:有执行权限 u部分(user):文件所有人对文件可以读写 g部分(group):文件组成员对文件可读 o部分(other):其他人对文件可读
权限详解
1.r(读)对文件:可以查看文件中的字符 对目录:可以查看目录中文件的信息
2.w(写)
对文件:可以更改文件内记录的字符。 对目录:可以在目录中子目录或子文件的元数据(子目录、子文件)进行更改,对子目录、子文件的写即是对目录、文件的重命名,删除等操作
3.x(执行权限)
对文件:可以运行文件内记录的程序动作。执行、运行文件 对目录:可以进入目录中
4.修改该文件权限
1.字符方式修改权限格式:chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir chmod u-x file1 文件file1拥有者去掉x权限 chmod g+w file1 文件 file1拥有组添加w权限 chmod u-x,g+w file1 文件 file1拥有者去掉x权,file1拥有组添加w权限 chmod u+rwx 文件 file1拥有着加读写执行权限 chmod ugo-r file2 文件 file2的用户组其他人去掉r权限 chmod ug+x,o-r file3 文件 file3用户和组添加x权限,其他人去掉r权限 chmod +r file1 文件file1对所有的用户增加读权限 chmod g=rx file1 不管之前文件所有组的权限如何,使file1所有组权限变成读、执行
2.数字方式修改该文件权限
文件权限数字表示方式 小科普:在linux文件权限表示中 r=4 (2的2次方) w=2 (2的1次方) x=1 (2的0次方) -=0(-表示没有对应权限,故为0)
举个栗子:
rw-|r--|r-- u g o u=rw-=4+2+0=6 g=r--=4+0+0=4 o=r--=4+0+0=4 所以文件权限表示为644
命令:chmod 修改后权限值 file
chmod 777 file --------> 该文件权限全部开放 7=rwx 6=rw- 5=r-x 4=r-- 3=-wx 2=-w- 1=--x 0=---
5.系统默认权限的设定(umask)
从系统存在角度来说,开放权力越大,系统存在意义越高 从系统安全角度来说,开放权力越少,系统安全性越高 所以系统设定新建文件或目录会去掉一些权限
设定方式:
umask 查看系统保留权限默认为022 umask 077 修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
永久设定方式:
编辑文件:vim /etc/bashrc 70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then 71 umask 002 -----------> 普通用户umask 72 else 73 umask 077 -----------> 超级用户umask 74 fi 编辑文件:vim /etc/profile 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then 60 umask 002 ------------> 普通用户umask 61 else 62 umask 077 ------------> 超级用户umask 63 fi
以上两个文件umask设定值必须保持一致!
让设定立即生效:
source /etc/bashrc source /etc/profile
6.特殊权限
1.sticky 粘制位只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被其所有者删除。 设定方式: chmod o+t 目录 t = 1,故又可以: chmod 1xxx 目录
2.sgid 强制位(只针对二进制可执行文件)
对文件:只针对二进制可执行文件, 当文件有sgid权限时,任何人执行此文件产生的进程都属于该文件的文件所有组,和程序发起人组的身份无关 对目录: 当目录有sgid权限后,目录中新建的所有文件的所有组,都自动归属到目录的所有组之中,和文件建立者所在的组无关 设定方式: chmod g+s file/dir s = 2,故还可以: chmod 2xxx file/dir(xxx代表文件的普通权限数值) 进程查看:ps ax -o comm,user,group | grep watch
3.suid 冒险位置
只针对与二进制的可执行文件,当文件上有suid时,任何人执行这个文件,程序产生的进程都属于该文件所有人,即以文件所有者的身份运行该文件。用于程序执行中权力的提升或者下降。 设定方式: chmod u+s file s = 4,故还可以 chmod 4xxx file (xxx代表文件的普通权限数值)
7.acl列表
1.acl定义acl = access control (访问控制) 指定特殊用户对特殊文件有特殊权限 drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/ ^ 这个'+'表示/westos目录时设置有访问控制列表,如果对应位置上是'.'则表示没有acl或者acl是关闭的 查看文件是否有acl列表: getfacl /westos/
file: westos/ ##文件名称 owner: root ##文件所有人 group: root ##文件所有组 user::rwx ##拥有者权限 user:student:rwx ##特殊用户权限 group::r-x ##文件所有组权限 mask::rwx ##权限掩码(能赋予用户的最大权力伐值) other::r-x ##其他人权限
注意:当文件上有权限列表时,ls -l 能看到的权限是不真实的
2.设定acl列表
setfacl -m <u|g>:<username|groupname>:权限 文件|目录 -m #设定 u #用户 g #组 举2个栗子: a.设定student用户拥有westos的全部权限 setfacl -m u:student:rwx ./westos b.设定student用户对watch没有任何权限。0表示没有任何权限 setfacl -m u:student:0 /bin/watch
3.删除acl列表中的用户或者组
setfacl -x <u|g>:<username|groupname> 文件|目录 -x #删除(从acl列表中删除某个用户/用户组)
4.关闭acl列表
setfacl -b 文件|目录 -b #暂时关闭文件上的acl列表
5.acl mask
mask:权限掩码(表示能生效的权力值) mask用来标实能够赋予用户最大权限阀值 当存在acl列表时,用chmod减小acl的文件权限时mask值可能会发生改变
修复文件mask值:
setfacl -m m:rwx 文件名称
6.acl 默认权限设定
当我们需求某个目录对于student可写,并且目录中新建的子目录对student也可写,此时就要设定默认默认权限
注意: acl权限只针对目录设定,无法对文件进行设定。默认权限只对目录中新建立的文件或者目录生效,对已经建立的文件无效,对于目录本身也无效
设定方式:
setfacl -m d:u:student:rwx /westos
8.限制超级用户权限
查看完整详细权限:lsattr filename ( ls -l无法查看到的权限)
chattr +i filename 限制超级用户对文件进行操作
解除限制:chattr -i filename
相关文章推荐
- linux学习入门 基础部分(6)【文件属性,目录属性,更改组,权限识别,默认权限,特殊权限,权限列表】
- Linux(RadHat)基础学习—vim编辑器及文件的输入输出
- Linux 基础学习 用户及文件权限管理
- Linux基础学习(二)-用户及文件权限管理
- (大数据工程师学习路径)第一步 Linux 基础入门----用户及文件权限管理
- Linux基础知识学习笔记(一)--文件系统的权限管理
- linux基础命令学习(五)目录或文件权限
- Linux基础学习笔记-第五课:文件权限
- Linux基础学习3,Linux用户及文件权限管理,转载自实验楼
- linux 学习(四)文件的权限
- linux 基础学习之二:ext2文件系统研究
- cabbage linux 学习之路基础篇之文件权限
- linux 基础学习之一:文件管理
- 【Linux入门学习之】Linux文件权限与目录配置
- linux的文件属性和权限学习——分析ls命令结果
- 鸟哥的Linux基础-第六章-权限,文件,目录,FSH目录结构
- Linux用户、用户组和文件权限控制的学习
- Linux基础知识总结(1): 用户组与文件权限
- [linux基础学习]文件和目录属性
- Linux基础知识整理[2]——Linux文件权限与目录配置