红联Linux门户
Linux帮助

文件与文件夹权限问题

发布时间:2011-02-06 08:26:34来源:红联作者:situyuntian
小弟是初学者, 今天在做实验时突然遇到问题,可能钻到死胡同,不知道错误在哪,请各位高手帮忙。
一文件夹权限为 drwxr-xr-x
在此文件夹下有一个文件权限为-rw-rw-rw-
我认为如果我以others登录的话,虽然对这个文件有写的权限,但是文件夹却没赋予我这个写的权限,应该是不能写入的。
但是结果却是可以写入,并且子啊这个文件夹也可以建立新文件。
小弟不知道错在哪里,请帮忙~
文章评论

共有 9 条评论

  1. aifly 于 2011-02-08 12:21:13发表:

    受教了,我顶啊!

  2. situyuntian 于 2011-02-07 03:16:18发表:

    感谢,这下搞清楚了

  3. weatny 于 2011-02-06 18:36:08发表:

    相思版主说的很好 呵呵
    向版主学习

  4. 相思爱文 于 2011-02-06 18:24:35发表:

    回帖后刷新一下,帖子就应该出现了。

    文件(目录)一般只有三种权限:读、写、执行(目录则为进入)
    用户只有三种:主、组、其他
    这些属性组合,可以完成多种权限分配

    只要文件去除相应的w权限,就不能改变内容了。
    chmod a-w filename 所有用户都不能修改
    chmod o-w filename 其他用户不能修改

    文件还有一种特殊属性,用chattr修改,可以让文件只读,就连root也没办法修改和删除。

    可以进,只能读,目录属性5
    可以读,不能改,文件属性4

    “想实现的是文件的权限不变,在两个不同的文件夹,访问文件的权限发生了改变。”
    这句话没明白,访问文件具体是指什么,阅读、修改、还是执行。
    文件的权限,用ls -l查看,不管在什么地方,不修改,文件的权限都一样。

  5. 相思爱文 于 2011-02-06 18:01:20发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-6 18:12 编辑 [/i]

    引用:
    situyuntian

    这个明白了一些,不过如果我想实现可以进,只能读,而且不想改变文件的权限,有可能实现么?
    下面是我整个文件夹的图示


    coord1创建的文件,如果是在coordinator1\final文件夹下的话, chair(在这个文件夹下被定义为others) 用户只可以读。
    但是 coord1创建的文件,如果是在chair\submitted中,应该是可以被chair(在这个文件夹中为owner)用户读写,而coord1用户为group用户
    tree
    ./project
    |-- [drwx-wx--- chair group1 ] chair
    | |-- [drwx------ chair group1 ] approved
    | | `-- [-rw-rw-rw- coord1 group2 ] co1-2.txt
    | `-- [drwx-wx--- chair group1 ] submitted
    | |-- [-rw-rw-rw- coord1 group2 ] co1-1.txt <-- 只可被chair 或者coord1修改。本文件由coord1创建
    | |-- [-rw-rw-rw- coord2 group2 ] co2-1.txt
    | `-- [-rw-rw-rw- coord2 group2 ] co2-2.txt
    |-- [drwxr-xr-x coord1 group2 ] coord1
    | |-- [drwxr-xr-x coord1 group2 ] cur
    | | |-- [-rw-rw-rw- coord1 group2 ] co1-1.txt <--chair 如何实现只能看,不能写(问题所在)。
    | | `-- [-rw-rw-rw- coord1 group2 ] co1-2.txt
    | |-- [drwx---r-x coord1 group2 ] final
    | | |-- [-rw-rw-rw- coord1 group2 ] co1-1.txt
    | | `-- [-rw-rw-rw- coord1 group2 ] co1-2.txt
    | `-- [drwxrwx--- coord1 group2 ] rev
    | |-- [-rw-rw-rw- coord1 group2 ] co1-1.txt
    | `-- [-rw-rw-rw- coord1 group2 ] co1-2.txt
    `-- [drwxr-x--T root project ] share

  6. situyuntian 于 2011-02-06 15:30:54发表:

    小补充一下。。想实现的是文件的权限不变,在两个不同的文件夹,访问文件的权限发生了改变。

  7. pallana 于 2011-02-06 14:09:04发表:

    可以修改文件,但不能新建文件(不能修改目录)。
    目录是一种记录目录名和位置的文件。
    只要有x权限,可以进入,对文件的操作就与目录无关了。修改文件内容,目录不会改变。


    学习了,顶楼上的

  8. 相思爱文 于 2011-02-06 13:31:40发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-6 13:37 编辑 [/i]

    实际测试一下
    hcc@debian:/tmp$ cd /tmp #进入临时目录
    hcc@debian:/tmp$ mkdir test #建立测试目录
    hcc@debian:/tmp$ chmod 755 test/ #修改权限
    hcc@debian:/tmp$ ls -ld test/ #查看目录权限
    drwxr-xr-x 2 hcc hcc 4096 02-06 13:18 test/
    hcc@debian:/tmp$ touch test/text.txt #建立测试文件
    hcc@debian:/tmp$ cd test/
    hcc@debian:/tmp/test$ ls -l
    总计 0
    -rw-r--r-- 1 hcc hcc 0 02-06 13:19 text.txt
    hcc@debian:/tmp/test$ chmod 666 text.txt #修改权限
    hcc@debian:/tmp/test$ ls -l
    总计 0
    -rw-rw-rw- 1 hcc hcc 0 02-06 13:19 text.txt
    hcc@debian:/tmp/test$
    这就符合贴中条件了,
    目录test的权限是drwxr-xr-x
    文件text.txt的权限是-rw-rw-rw-
    下面换另一用户操作
    hcc@debian:/tmp/test$ su sun #切换用户(属others)
    密码:
    sun@debian:/tmp/test$ ls -l
    总计 0
    -rw-rw-rw- 1 hcc hcc 0 02-06 13:19 text.txt
    sun@debian:/tmp/test$ echo aaaaaaaaaaaaaaaaaaaaa>text.txt #修改文件内容
    sun@debian:/tmp/test$ ls -l #查看文件大小已经改变
    总计 4
    -rw-rw-rw- 1 hcc hcc 22 02-06 13:23 text.txt
    sun@debian:/tmp/test$ cat text.txt #查文件内容已经改变
    aaaaaaaaaaaaaaaaaaaaa
    sun@debian:/tmp/test$ touch file #无法建立新文件
    touch: 无法触碰 “file”: 权限不够
    sun@debian:/tmp/test$ mv text.txt newtext.txt #无法修改文件名
    mv: 无法将 “text.txt” 移动至 “newtext.txt”: 权限不够


    ----------------------------------------------------------------------------
    可以修改文件,但不能新建文件(不能修改目录)。
    目录是一种记录目录名和位置的文件。
    只要有x权限,可以进入,对文件的操作就与目录无关了。修改文件内容,目录不会改变。

  9. 相思爱文 于 2011-02-06 13:19:46发表:

    请给出
    ls -l
    echo $USER
    的输出结果
    和建立(修改)文件的详细过程

    对目录无写权限,只有进入权限,是可以修改文件内容的,但不能修改文件名,也不能新建文件。
    修改文件,并不改变目录。目录也是一个文件,可以理解为记录着“其下所有文件名和位置”的一种文件。
    对目录有写权限,就可以把目录下的任何文件删除,包括其他用户(包括root)身份建立的文件也可以删除。