Linux中文档和目录的权限
众所周知 , Linux中文档的权限包括所有者权限(User)、同组权限(Group)和其他权限(Other)。使用rwx来作为表示,分别为read、write和execute。
这里使用一个小案例来对Linux中目录和文件权限进行一些解释说明
在linux系统中创建两个组
bash>groupadd god
bash>groupadd monster
同时创建三个用户,放入不同的两个组中
bash>useradd wukong -g monster
bash>useradd bajie -g monster
bash>useradd shaseng -g god
这样就会在/home文件下生成不同的user文件bajie、wukong、shaseng
将用户切换到悟空,在wukong/下创建monkey.java文件,并给予同组读写权限
bash>touch monkey.java
bash>chmod 660 monkey.java
这样monster组中就有了该文件的读写权限
将用户切换到八戒,尝试对该文件进行修改,发现并不能进入wukong/,所以需要悟空对目录权限进行修改
bash>chmod 770 wukong/
这样八戒就有了wukong/的访问和修改权限,就能对monkey.java进行修改了
下面重点
使用悟空将monkey.java文件修改为同组只读权限
bash>chmod 640 monkey.java
按理来说这样八戒只有对该文件的读取权限 ,没有修改权限了。
但是当我们使用vim时,会发现:wq!指令依然能够生效。并且在修改完成后会修改该文件的所有者为八戒
这是因为八戒拥有对wukong/目录的修改权限,因此对悟空目录下的所有文件都有修改权限。
因此即使该文件表面上无法修改,但是八戒可以通过直接修改该文件的所有者来获得该文件的修改权
因此只要悟空将wukong/目录的写权限收回,即可防止该问题发生
bash>chmod 750 wukong/
但是需要注意的是,悟空不能通过以下命令来修改文件的所有者权限
bash>chown wukong monkey.java
这样当八戒需要修改文件时,就会发现没有该文件的权限了。
当然这里还有一个小问题,为什么用户不能通过chown来修改文件的所有者,而vim可以呢?
大概是因为vi会在编辑文件时用swap文件做暂存,当发现对该文件的修改权限不够时,会将原文件删除,而将swap文件作为新文件保存。
详细的解释在鸟哥的私房菜里有提到哈,需要的可以查看一下鸟哥的LINUX私房菜