分页: 1 / 1

文件权限里对于x的理解问题[已解决]

发表于 : 2009-02-17 18:16
Saturn_Sun
一直对于文件的rwx三个权限比较迷茫,在查阅了很多书及网上的一些文章后基本都是说
r是可读文件的实际内容
w是可以编辑新增或者修改内容
x是该文件有被系统执行的权限
(主要对x比较迷茫)
我在自己的电脑上用root建立了test001,具体属性如下
-rwxrwx-w- 1 root root …… test001
然后进入预设的另外一个账号,对于test001来说我的这个账号只有写的权限,可是为什么我能用vi打开这个文件呢?
难道用vi不算是系统用vi去执行这个文件吗?那这个被系统执行该怎么理解呢?还是x仅仅限于可执行文件呢?
先谢谢各位了…… :em06

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:27
BigSnake.NET
难道用vi不算是系统用vi去执行这个文件吗
当然不是, 被执行的是 vi, test001 被 vi 读.

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:30
Saturn_Sun
BigSnake.NET 写了:
难道用vi不算是系统用vi去执行这个文件吗
当然不是, 被执行的是 vi, test001 被 vi 读.
那是不是普通的文件根本不能被执行,只有可执行文件才能执行的吗??

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:40
BigSnake.NET
Saturn_Sun 写了:
BigSnake.NET 写了:
难道用vi不算是系统用vi去执行这个文件吗
当然不是, 被执行的是 vi, test001 被 vi 读.
那是不是普通的文件根本不能被执行,只有可执行文件才能执行的吗??

PS: 这不是废话嘛, 可执行文件才能执行, 非可执行文件不能执行

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:46
poet
Saturn_Sun 写了: 然后进入预设的另外一个账号,对于test001来说我的这个账号只有写的权限,可是为什么我能用vi打开这个文件呢?
难道用vi不算是系统用vi去执行这个文件吗?那这个被系统执行该怎么理解呢?还是x仅仅限于可执行文件呢?
对 root 用户来说,所有的权限限制无效。因此不论如何设置权限,root 都可以正常读写。

至于 x ,对于所有文件来说都是执行权限,对于目录来说是进入权限。

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:46
Saturn_Sun
呵呵,这样就清楚了,非常感谢……!!
:em03

Re: 文件权限里对于x的理解问题

发表于 : 2009-02-17 18:50
poet
Saturn_Sun 写了:
BigSnake.NET 写了:
难道用vi不算是系统用vi去执行这个文件吗
当然不是, 被执行的是 vi, test001 被 vi 读.
那是不是普通的文件根本不能被执行,只有可执行文件才能执行的吗??
Linux 下,所有的文件都可以被执行,具体执行方式如下:

1。根据文件头判断文件的类型,
2。如果是 ELF,PE 等二进制执行文件,则执行其代码。
3。如果是文本文件,则读第一行判断其执行的程序,并用该程序执行该文件。如果第一行不包含执行的程序,则缺省使用 /bin/sh 来执行该文件。
4。如果即不是 ELF 等二进制执行文件,也不是文本文件,则不能执行。

注:执行程序使用格式 #!/bin/bash 之类的格式写。如果你希望你的 某个文本文件被 vi 执行,那么需要在文件的第一行写 #!/bin/vi

这个特性表明:一个脚本并不需要执行权限就可以被执行:例如如果你使用 bash 脚本名,这样执行的是 bash ,脚本被读,只要有读权限。如果你直接执行 ./脚本名,这时就要判断脚本的执行权限。

Re: 文件权限里对于x的理解问题[已解决]

发表于 : 2009-02-17 19:55
Saturn_Sun
非常感谢楼上的,呵呵 :em11

Re: 文件权限里对于x的理解问题[已解决]

发表于 : 2009-02-17 20:51
lerosua
学而时习之 :em11