linux隐藏权限、set_uid/set_git/stick_bit、软链接硬链接
- lsattr:查看文件或者目录的隐藏权限
-a:查看所有包括隐藏文件
-d:查看当前目录的隐藏权限
-R:查看目下所有文件的隐藏权限
*隐藏权限e:代表ext4文件系统
成都创新互联主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、响应式网站、程序开发、网站优化、微网站、重庆小程序开发公司等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的网站建设、网站设计、网站设计、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体。
- chattr:更改文件或目录的隐藏文件
i:完全拒绝对文件或目录的任何操作
a:对于文件:可以追加重定向,无法vi cp mv chmod rm touch等等,对于目录:可以touch更改时间,对于目录中的文件可以touch、>、>>等
*需要减去权限将+改为-即可
重定向符号:> (将内容写入到文件中并覆盖之前文件中的内容)
追加重定向符号:>>(将内容写入到文件中并保留之前文件中的内容)
- set_uid:让执行文件的用户临时拥有文件所有者的权限
*必须是可执行的二进制文件才能设置set_uid,例如:passwd、ls等命令
下图中可以看到passwd命令的所有者是root,但所有者权限不是rwx,而是rws,此处s就代表set_uid权限,再来看密码配置文件shadow的权限000,所以设置set_uid,普通用户在修改自己的密码时,可以临时拥有passwd文件所有者root的权限,完成密码的修改。
下图用ls命令测试,使用user1用户查看root用户的目录提示没有权限,给ls命令添加set_uid权限之后,user1用户即可查看/root目录
1.添加set_uid权限:chmod u+s /路径/文件名
2.第二种方式添加set_uid权限:
*下图中通过chmod u=rws 的方式添加set_uid,但添加完查看时,s变成了大写,这是因为没有x权限,因为用u=rws添加set_uid省略了x执行权限,但此处并不影响user1用户使用ls查看/root目录,因为ls文件权限的第三段:其他用户权限具有x权限,通过chmod u+x 添加上x执行权限后,set_uid的s就变成小写了。
set_gid:
1.作用在文件上时,效果与set_uid类似,让执行文件的其他用户临时拥有文件用户组的权限:
查看用户user1的用户组为user1,查看/root目录的用户组为root,使用user1查看/root用户提示无法打开*
*给/usr/bin/ls命令加上set_gid权限
再次使用user1用户查看/root目录即可显示,set_gid用于让其他用户临时获得文件所属组的权限*
2:作用在目录上时:
将testfile目录用户组由root修改为user1*
*在testfile目录中创建子目录和文件时,文件和子目录的用户组属于当前用户的所属组(使用root用户在testfile目录下面创建文件,和目录,文件和目录属于root用户的所属组)
给testfile目录加上set_gid权限后,root用户在testfile目录下创建的文件和子目录的所属组都属于user1(所以当set_gid作用于目录时,可以使再该目录下创建的子目录和文件的所属组都属于父目录的所属组,而不是根据创建子目录和文件的用户来决定)*
stick_bit:防止其他用户删除你创建的文件和目录(root除外)
*下图中可以看到/tmp目录具有stick_bit权限,使用user1用户创建测试目录testfile、test.txt并加上777权限,使其他用户有足够的权限操作权限设置使用 chmod sxxx filename 中的第一个s 其中:
- 4为SUID
- 2为SGID
- 1为Stick Bit
*切换user2用户去删除user1用户创建的文件和目录,此时user2用户对testfile目录和test.txt文件都具有rwx权限,但提示无法删除,因为/tmp目录具有stick_bit权限,在该目录下创建的目录和文件,其他用户都无法删除(root除外),但如果user1用户在testfile中创建子目录和文件,其他用户就可以删除,因为testfile目录没有stick_bit权限,而其他用户拥有rwx权限,stick_bit权限只作用于当前父目录
- 软链接:相当于Windows系统快捷方式,在linux系统中软链接占用磁盘空间非常少
创建软链接命令:ln -s 源文件路径 软链接文件路径
例如:将/tmp/test.log文件软链接到/root/lntest/test2.log
*软链接添加成功时,向软链接文件中添加数据,就会更新到源文件
(例如当有应用程序不断向/root/lntest/test2.log写入日志时,且数据量较大,/root所在磁盘快被占满时,可以在空间足够的磁盘创建一个日志文件/tmp/test.log,软链接到/root/lntest/test2.log文件,数据就会写入test.log,减轻/root目录所在磁盘的压力,软链接文件只会占到很少的磁盘空间,且不影响应用程序运行中持续写入日志)
*1.软链接对象除了文件还可以是目录,2.软链接可以跨分区,3.软链接尽量使用绝对路径,4.软链接取消:rm -rf 软链接文件硬链接:
创建命令: ln 源文件 硬链接文件
*下图同时创建一个软链接和硬链接,对比可以看出:1.硬链接文件和源文件大小相同,inode号相同,源文件和目标文件互为硬链接,所以硬链接可删除,2.硬链接不能跨分区,可能会导致不同的文件有同一个inode号,3.硬链接不能为目录,只能是文件
网页名称:linux隐藏权限、set_uid/set_git/stick_bit、软链接硬链接
分享路径:http://scyanting.com/article/gjjeie.html