目录
共享文件夹
分析一
在普通用户yyf中创建一个目录test:
普通用户yyf在test目录中创建yyf类的文件,超级用户root在该目录中创建root.txt类的文件(从拥有者和所属组上来看只有root可以对这些文件进行删除和修改)
普通用户yyf作为root1.txt文件的other,只有对该文件的读权限(图中没有展现)没有对该文件的写权限,这是正常的因为该文件对other的权限只有r,但是普通用户却可以删除该文件
这是因为test目录是在普通用户yyf中创建的,yyf拥有对该目录的rwx权限,即yyf对该目录拥有读写权限,也就是可以删除或修改该目录中的文件
root用户对此表示疑惑?你一个普通用户为什么可以删除超级用户创建的文件?
yyf表示,是我删的,你别问为什么,要问就问你为什么要在我的目录中创建文件
结论:一个文件是否可以被删除与它本身的读取(r)、写入(w)和执行(x)权限无关,而与它所在目录的写入权限有关,要删除一个文件,你需要对包含该文件的目录具有写入权限。如果你没有目录的写入权限,即使你对文件本身拥有全部权限也无法删除它(要删除一个文件你得看它的父级目录都给你了的什么权限,当然root用户有时候可以强制删除文件)
补充内容
斜杠(/)是linux文件系统的最顶层目录
Linux中,普通用户的家目录位于/home/<username>,更准确的来说是/目录中的home目录中:
root用户的家目录就是/root,即/目录中的root目录中(可以发现cd root 与 cd的效果一样):
分析二
除了root用户外,普通用户都不会拥有进入其它普通用户目录的权力:
结论: 共享文件不能建立在一个用户自己的目录(家目录)下,只能在系统的非用户目录(既不是普通用户也不是超级用户root)下创建
同时记得为该目录添加other的写权限:
思考:共享文件的other有读、写、执行权限,那么当我与用户yyf在通过共享文件夹传递文件时,wxm可以删除我们俩传递的文件吗?
答案:可以(实际效果不再展示)
粘滞位
为了防止上述问题的发生我们引入了粘滞位的概念
特点:当一个目录被设置为粘滞位,则该目录下的文件只能由
- root删除
- 该目录的所有者删除
- 该文件的所有者删除
添加方式:chmod +t 目录名
为共享文件目录111_shared添加粘滞位后, whb用户创建的log.txt文件在于zpw用户共享使用时,gaobo用户就不能对该文件进行删除操作,只有该文件的所有者zpw可以删除:
~over~