文件的权限

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
ublee
帖子: 52
注册时间: 2008-12-12 17:10

文件的权限

#1

帖子 ublee » 2009-01-02 23:43

文件权限中的 R-可读 W-可写 X-可执行

可读,可写,可执行。是不是如果某用户(用户组,外人)对该文件没有X权限 就不能对该文件进行W或者R?(我觉得W,R跟X无关)

如果我的理解对,那么X—可执行是指具体是是什么
头像
xc1427
帖子: 276
注册时间: 2008-10-11 4:11
来自: 瑞金无线电学校
联系:

Re: 文件的权限

#2

帖子 xc1427 » 2009-01-03 0:04

比如一个Shell脚本文件(就是一系列Shell命令的罗列,如DOS里的批处理文件),
可读就是可以打开看里面的内容
可写就是你可以修改其中的内容
可执行就是可以执行这个Shell脚本(就是一系列Shell命令的连续执行)
You never know if you don't try
ublee
帖子: 52
注册时间: 2008-12-12 17:10

Re: 文件的权限

#3

帖子 ublee » 2009-01-03 0:18

xc1427 写了:比如一个Shell脚本文件(就是一系列Shell命令的罗列,如DOS里的批处理文件),
可读就是可以打开看里面的内容
可写就是你可以修改其中的内容
可执行就是可以执行这个Shell脚本(就是一系列Shell命令的连续执行)
如果它只是一个普通的文件呢?比如 是记事本 。可执行 是指?
头像
xc1427
帖子: 276
注册时间: 2008-10-11 4:11
来自: 瑞金无线电学校
联系:

Re: 文件的权限

#4

帖子 xc1427 » 2009-01-03 1:06

怎么说呢。如果你在.txt文件中写入规范的ShellScript,它也会执行的。但是随便写入一些不规范的内容,执行会出错。
Linux里文件的扩展名你可以随意。只要选对了应用程序,那么就可以正确地读写或执行。一般可执行的就是ShellScript和二进制文件了。

比如你在自己用户目录下建立了个a.txt:

代码: 全选

$ touch a.txt
用个文本编辑器写入echo "abc"
看一下权限:

代码: 全选

$ ls -l a.txt
如果是不能执行的,那么更改它的权限:

代码: 全选

$ chmod 755 a.txt
执行:

代码: 全选

./a.txt
屏幕就会输出abc。说明shell解释器正确读取了a.txt。
但如果你随便写些东西。就会提示你出错。
You never know if you don't try
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 文件的权限

#5

帖子 aerofox » 2009-01-03 15:20

读和写很好理解
对于普通文件来说,x 表示可执行,如果这个文件是一个 ELF 格式的文件,只要有 x 权限就可执行了,不需要 r 和 w 权限。如果是一个脚本,需要同时有 r 和 x 权限才可执行,但是只有 r 没有 x 权限时仍然可以用类似 sh file 的形式来执行。
任何文本文件加上 x 权限后都会当作一个脚本,所以有些人为了有写权限就用 chmod 777 * 这样的命令其实很不好,它除了赋予了任何写的权限外,还一个问题就是增加了不必要的 x 权限。如果某个文件中包含一条危险命令,执行它可能带来不可预料的损失。例如,如果有一个用 ASCII 码记录的学习笔记中包含下面的内容:

代码: 全选

The follow command is dangerous:
   rm -rf *
恰好这个作笔记之用的文件加上了 x 权限,那么执行它后就会显示:

代码: 全选

bash: The:找不到命令
然后删除当前目录下的所有文件。

目录的 x 权限表示可搜索。简单的说就是你有了目录的 x 权限,你就可以“用”该目录下的内容。例如:

代码: 全选

mkdir dir
echo some text > dir/file
chmod u=x dir
ls dir
ls: 无法打开目录 dir: Permission denied
cat dir/file
some text
回复