Linux中文件权限属性、高级权限

Linux中文件或目录权限分为三种,读(r),写(w),执行(x)。一个具体文件权限组成为:所有者权限(u):属组权限(g):其他权限(o),其中所有者权限表示创建文件用户对于文件的权限,属组权限表示和创建该文件在同一个用户组的用户对于文件的执行权限,其他权限表示其他用户对于该文件的执行权限。文件的读权限(r)代表数字4,写权限(w)代表数字2,执行权限(x)代表数字1,因此设置文件或则目录权限既可以用rwx设置,也可以用数字设置,例如6代表读写权限,5代表读执行权限。
查看文件权限命令:ll 文件名字
查看目录权限命令:ll -d 目录名字
修改文件权限命令:chmod 权限数字1权限数字2权限数字3 文件
修改文件权限命令:chmod g+w 文件名 g+w表示属组成员有写权利
修改文件属主属性:chown 用户名 文件
修改文件属组属性:chgrp 组名 文件

[root@localhost tmp]# ls 展示tmp下文件
1  2  3  ks-script-CWsRF_  yum.log
[root@localhost tmp]# ll 1 展示文件1权限
-rw-r--r--. 1 root root 0 Oct 15 19:11 1
[root@localhost tmp]# chmod 770 1 修改文件1权限 属主者有读写执行 属组者有读写执行 其他这没有任何权限
[root@localhost tmp]# ll 1 验证修改权限后文件1权限
-rwxrwx---. 1 root root 0 Oct 15 19:11 1 
[root@localhost tmp]# chmod o+r 1 给文件1修改其他这权限,拥有读权限
[root@localhost tmp]# ll 1 验证修改后权限
-rwxrwxr--. 1 root root 0 Oct 15 19:11 1
[root@localhost tmp]# chown zhangsan 1 更改文件属主
[root@localhost tmp]# ll 1 验证
-rwxrwxr--. 1 zhangsan root 0 Oct 15 19:11 1
[root@localhost tmp]# chgrp hr 1 修改文件1属组
[root@localhost tmp]# ll 1 验证权限修改
-rwxrwxr--. 1 zhangsan hr 0 Oct 15 19:11 1
[root@localhost tmp]#

文件属性和文件权限是相互配合使用,可以限定用户对于文件或者目录的一些操作,其中文件属性限定了文件可否被修改或者移动,文件属性设置后针对所有用户,包括root用户。其中常见文件属性有i,a,u,s等。
查看文件属性命令:lsattr 文件名
查看目录属性命令:lsattr -d 目录
修改文件属性命令:chattr 操作符属性 文件名或者目录名
操作符包括: +给文件或目录添加属性 - 给文件或目录撤销属性 =赋予属性
属性: i 不能对文件做出任何操作
a 只能对文件进行追加内容,不能删除或者修改数据
u 设置此属性文件或目录,在删除时,内容会被保存,保证后期可以被恢复
s设置此属性文件或目录,在删除时,直接从磁盘上删除,用0填充所占用区域
文件属性应用一般针对系统重要文件,在用户修改重要文件时,会有所提示,这样用户修改时候会小心一点,防止随便篡改文件。或者对于重要文件加权限,防止黑客攻击恶意篡改内容

[root@localhost tmp]# ls
1  2  3
[root@localhost tmp]# lsattr  1  展示文件1属性 文件1没有任何属性
---------------- 1
[root@localhost tmp]# chattr  +i 1 给文件1添加i属性 加完之后 文件1不能进行任何修改
[root@localhost tmp]# echo '123' >> 1  给文件1追加内容
-bash: 1: Permission denied   追加内容被拒
[root@localhost tmp]# rm -rf 1 删除文件1
rm: cannot remove ‘1’: Operation not permitted  删除被拒绝
[root@localhost tmp]# chattr  -i 1 取消文件i属性
[root@localhost tmp]# echo '234' >> 1 给文件1追加内容234 
[root@localhost tmp]# cat 1 显示追加内容
234
[root@localhost tmp]# rm -rf 1 删除文件1
[root@localhost tmp]# ls  展示剩余文件
2  3
[root@localhost tmp]# lsattr 2 展示文件2属性
---------------- 2
[root@localhost tmp]# chattr +a 2 给文件2加a属性,加了之后文件只能被追加内容,不能被修改和删除
[root@localhost tmp]# rm -rf 2 删除文件2
rm: cannot remove ‘2’: Operation not permitted 删除文件被拒
[root@localhost tmp]# cat 2 展示文件2内容
123
[root@localhost tmp]# echo '234' > 2 修改文件2内容 追加并覆盖以前文件
-bash: 2: Operation not permitted 修改文件被拒绝
[root@localhost tmp]# vi 2 编辑模式修改文件2  保存会被拒绝 自己尝试
[root@localhost tmp]# echo '234' >> 2 给文件2进行追加内容234
[root@localhost tmp]# cat 2 显示文件2内容
123
234    内容追加成功
[root@localhost tmp]# chattr  -a 2 去掉文件2的a属性
[root@localhost tmp]# lsattr  2  展示文件2属性
---------------- 2
[root@localhost tmp]# rm -rf 2 此时删除文件2即可删除成功
[root@localhost tmp]# ls  展示剩余文件
3

高级权限:suid sgid sticky
suid:普通用户登陆对于有些文件没有查看权限或者某些命令没有执行命令,例如普通用户不能查看root用户家目录下内容,也不能用passwd对其他文件进行修改,使用suid可以针对单个命令对于普通用户提权限。
suid命令格式:chmod u+s 命令 作用:单独提高一个命令权限,针对所有普通用户

[root@localhost /]# cd ~ 回到root根目录
[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# touch 1 在root用户根目录下创建文件1
[root@localhost ~]# ls
1  anaconda-ks.cfg
[root@localhost ~]# echo '123' > 1
[root@localhost ~]# cat 1
123
[root@localhost ~]# sudo su zhangwu 切换到zhangwu用户
[zhangwu@localhost root]$ cat /root/1 查看root用户创建文件1
cat: /1: No such file or directory  没有权限查看
[zhangwu@localhost /]$ exit
exit
[root@localhost ~]# chmod u+s /usr/bin/cat 针对cat命令提权限
[root@localhost ~]# sudo su zhangwu  切换普通用户
[zhangwu@localhost root]$ cat /root/1 此时普通用户可以查看root用户创建的文件
123
[zhangwu@localhost root]$ 

sgid:该命令针对目录,使目录下文件都能集成目录的属组,就是该目录下创建所有文件或者目录都和该目录属组是一个
sgid命令格式:chmod g+s 目录 作用:使目录下所有内容继承该目录的属组

[root@localhost tmp]# ll -d /tmp/ 查看目录tmp权限
drwxrwxrwt. 7 root root 102 Oct 15 19:50 /tmp/ 属组是root
[root@localhost tmp]# chgrp hr1 /tmp/ 更改目录tmp属组为hr1
[root@localhost tmp]# ll -d /tmp/ 查看目录tmp权限
drwxrwxrwt. 7 root hr1 102 Oct 15 19:50 /tmp/ 属组改为hr1
[root@localhost tmp]# touch {a..d} 新建文件a,b,c,d
[root@localhost tmp]# ls
3  a  b  c  d
[root@localhost tmp]# ll {a..d} 查看文件a,b,c,d权限 发现他们属组都是root
-rw-r--r--. 1 root root 0 Oct 15 20:40 a
-rw-r--r--. 1 root root 0 Oct 15 20:40 b
-rw-r--r--. 1 root root 0 Oct 15 20:40 c
-rw-r--r--. 1 root root 0 Oct 15 20:40 d
[root@localhost tmp]# chmod g+s /tmp/ 给目录tmp设置sgid权限,使之后面新创文件都继承他的属组
[root@localhost tmp]# touch {5..8} 创建文件5,6,7,8
[root@localhost tmp]# ll {5..8} 查看文件5,6,7,8属性,发现其属组更改为hr1
-rw-r--r--. 1 root hr1 0 Oct 15 20:41 5
-rw-r--r--. 1 root hr1 0 Oct 15 20:41 6
-rw-r--r--. 1 root hr1 0 Oct 15 20:41 7
-rw-r--r--. 1 root hr1 0 Oct 15 20:41 8

sticky:该权限是用户只能删除自己文件,不能删除其他人文件
使用格式:chmod o+t 目录名称

[root@localhost tmp]# mkdir /home/dir1 root用户在根目录创建dir1目录
[root@localhost tmp]# chmod 777 /home/dir1 给dir1目录赋权限,所有人都有读写执行
[root@localhost tmp]# cd /home/dir1/ root在dir1中创建文件1.2.3
[root@localhost dir1]# touch {1..3}
[root@localhost dir1]# sudo su zhangwu 切换普通用户zhangwu
[zhangwu@localhost dir1]$ rm -rf *删除dir1 文件 删除成功
[zhangwu@localhost dir1]$ ls
[zhangwu@localhost dir1]$ exit 退出普通用
exit
[root@localhost dir1]# chmod o+t /home/dir1/ 给目录dir1赋予sticky权限
[root@localhost dir1]# touch {1..3} root用户创建文件1,2,3
[root@localhost dir1]# sudo su zhangwu 切换普通用户
[zhangwu@localhost dir1]$ ls 展示目录下dir1文件
1  2  3
[zhangwu@localhost dir1]$ rm -rf 1 移除文件1
rm: cannot remove ‘1’: Operation not permitted 没有权限移除文件1
[zhangwu@localhost dir1]$ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值