在某个目录,执行命令ls-l查看文件makefile结果如下:
ls列出文件信息的第一部分后面的9个字符表示文件权限。r、w和x分别表示读、写和执行权限,“-”表示无相应权限。第2个到第4个字符表示文件所有者的权限;第5个到第7个字符表示文件所属组的权限;第8个到第10个字符表示所有其他账户的权限。
例如,rw-r--r--,表示所有者对文件有读写权限,其他账户有读权限;rwxr-x---,表示所有者对文件有读写和执行权限,所属组的成员(以文件makefile为例,所属组成员是指所有属于组prjsrcmn的账户)有读和执行权限,其他账户则没有任何权限。
前面讲的一些命令,执行的时候有时候会因为权限不足而失败。例如,命令cpfile1file2,如果file2已经存在,file1将覆盖file2,但不一定覆盖成功。下面的z.txt为一个只读文件(r--r--r--),将a.txt复制到z.txt时,会遇到权限不足(Permission denied)的提示:
用选项-f或--force就可以强行覆盖,且不会遇到权限不足的提示:
覆盖后,z.txt与a.txt的内容相同,字节数一致,都是15。用选项-i或--interactive,在某文件被覆盖之前会得到提示,如:
这时,输入y或者Y,按回车键,复制动作将继续;直接回车或者按〈Ctrl+C〉键,则取消该复制动作。
执行命令mvfile1file2时,也可能会因为权限不足而遇到与cp命令相同的情况,处理方法及选项-i与-f的使用方法与cp的完全相同。例如,将文件a.c移入目录sourcecode时,如果目录sourcecode中已经有同名文件,使用选项-i,会得到如下提示:
总之,运行命令cp或者mv有一定风险(文件可能会被覆盖,原来的内容有可能丢失),如果事先确定命令没问题,可以使用选项-f或--force;如果不确定,为稳妥起见,希望得到提示的话,使用选项-i或--interactive。
对于一个文件而言,某账户若有了读权限,则意味着该账户可以查看它;有了写权限,就意味着该账户可以修改它,不使用-f选项就可以覆盖或者删除它(见2.17节);有了执行权限意味着该账户可以运行它(见3.5节)。
目录的权限的含义与文件的稍有不同,一个账户有了某目录的读权限时,该账户可以浏览它(如用ls命令查看目录中的文件列表);有了写权限时,该账户可以在该目录中增加新文件,可以删除原有的文件(如果文件自身的权限也允许被删除);有了执行权限时,该账户可以进入该目录。下面举例说明。查看以t_dir开头的几个目录,结果如下:
输出结果中每一行的首字符均为d,表明它们都是目录。账户user对于目录t_dir0没有任何权限,不能进入目录,不能查看目录:(www.xing528.com)
对于目录t_dir1,账户user只有执行权限,可以进入目录,但不能查看目录:
这时,账户好像进入了一间漆黑的屋子,不知道屋子多大,不知道屋里面有什么。很少有人给目录这样设置权限(仅仅设置目录的执行权限)。
对于目录t_dir5,账户user有读和执行权限,可以进入目录,可以查看目录。因为没有写权限,所以不能在该目录增加新文件,也不能删除文件(不能增减文件):
对于目录t_dir7,账户user有完全的掌控权。账户user可以进入目录并查看,也可以在目录中增减文件。
目录的权限设置比较常见的有:
1)rwxrwxr-x,表示某个目录对组内开放权限,对组外只提供查看的权利。
2)rwxr-x---,表示某个目录由其所有者控制,对组内开放查看权限,对组外不开放。
3)rwx------,如果某个目录存放的是所有者的“私密性”的东西,就会如此设置。查看home目录下面的隐藏目录,一般会看到权限为rwx------的目录。运行cd~,再运行ls-ld.*|grep ^drwx-(该命令用到了管道线|和grep命令,后面的章节会讲到),即可查看这样的目录。例如:
如果试着进入其他账户的“私密性”的目录,肯定会吃“闭门羹”。例如,账户user进入并查看账户maggie主目录里面的一个隐藏子目录:
前面说过touch命令可以改变文件的时间,其实,并非百分之百可以,因为有时也会遇到权限不足的问题。实际上,很多命令与文件和目录的权限有关,这里就不一一举例子了。
本节列举了不同权限的文件和目录,权限是如何设置的呢?下一节将给出答案。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。