此篇文档将讲解关于linux中文件权限常用命令chmod。为了达到一个比较好的效果,我会在需要的地方实际上机验证测试,并截图给朋友们看。我的linux机器装的是(opensuse-11.3),并且以文本界面(类似于dos那种黑黑的界面)。
上一篇中我们讲到 linux shell_输出总结(一)之chmod命令,在工作中如何利用chmod命令给一个文件赋予一定的权限,以指定谁可以读、写和执行它。这一篇将讲述如何在工作中使用chmod命令对目录赋予一定的权限以指定谁可以读、写和执行该目录。
对目录执行读、写和执行,与文件还不大一样。读一个目录的意思是我可以使用诸如ls、l等命令(后续文档将会讲到)列出该目录下有哪些文档和子目录;写目录权限意思是我可以使用诸如touch等命令在该目录下创建文件或者是子目录、写文件、删除文件等;执行目录的意思是我可以使用诸如cd(后续文档将会讲到)等命令进入目录。为了有个比较感性的说明,请看图一:
图一.wx目录只有读权限
可以看到,此时wx目录对于sxp用户只有读权限,我想通过cat命令输出wx目录下的file文件内容,可是系统报权限拒绝错误。如果我使用chmod u+x wx,结果请看下图:
图二.wx目录具有读与执行权限
此时可以输出wx目录下的file文件内容,当时它是空的。为什么加了x执行权限就可以了呢?x意味着用户具有进入目录的权限。当我想查看wx目录下的file文件时,第一步肯定是要进入到wx目录下的,因此必须要有x执行权限;我使用chmod u+w wx,结果再看图三:
图三.wx目录具有读、写和执行权限
此时赋予sxp用户w写权限,因此sxp用户可以在wx目录下创建一个新文件file2而不会报错。
读者也可以试下使用chmod对users组用户或者是不相干的其他用户分别赋予读、写和执行权限会是什么效果。
看完这一篇和上一篇,有的朋友可能会问,为什么我刚用touch script的时候,script的权限是”rw-r- -r- -”呢?为什么不是比如”rwxr-x-wx”等任意一种组合呢?这个就涉及到umask命令了。这个命令在工作一般较少使用,但是如果我需要启动一个crontab(后续文档会讲到)定时任务来运行一个脚本时,可能会出一些问题,原因就是和umask有关,所以还是说下为好。