zoukankan      html  css  js  c++  java
  • Linux文件与目录普通权限

    在Linux下可以使用ls -l命令查看文件的权限:

      

    可以看到,第一列就是文件或者目录的权限。总共有十个字符,意义如下:

    1. 第一个字符是类型,表明是文件还是目录等。

    常见的有以下几种:

    文件: -

    目录: d

    字符设备: c

    块设备: b

    链接文件: I

    2. 第2~4三个字符是文件所有者(u, user)的权限,r代表读(read),w代表写(write),x代表执行(execute)。有相应的权限就在相应的位置用rwx代表,没有相应的权限就用-代表。

    用户权限也可以用二进制数字0和1代表,100代表r--,表明有读权限而没有写和执行权限,对应数字6;011代表-wx,有写权限和执行权限,没有读权限,对应数字为2+1=3。这个数字在使用chmod命令来修改文件权限时很有用。

    3. 第5~7三个字符代表的是文件所属的群组(g, group)的权限,字符代表的意义同上。

    4. 第8~10三个字符代表的是非以上两者的其他人或组(o, other)的权限,字符的意义同上。

    ls -l命令查看的文件的信息,第三列就代表文件的拥有者,第四列代表文件所属的群组。示例如下:

    -rwxr-xr--  1 testuser    testgroup    5238 Jun 05 10:00 testfile

     上例中,testuser用户对testfile文件拥有读写执行权限,testgroup组的成员对testfile文件拥有读和执行的权限,而其他的用户就只有读的权限了。当然,对于root用户来说,他拥有机器中所有文件的所有权限,root用户是linux中拥有最高权限用户。

    Linux系统中文件的权限最大的用途是在于安全方面。没有权限的用户就无法访问指定文件,无法查看制定目录,这样在多用户的系统上就可以做到彼此一定程度隔绝,保障每个用户的数据的隐私性和安全性。

    例如/etc/shadow文件使用来存储所有用户的登录密码的。这个文件是不能任意让人读取的,尽管文件内容可能是加密的字符串。因此我们需要只有root或者指定用户可以访问。例如在我的机器中:

    -rw-r----- 1 root shadow 1225  7月 12 20:49 /etc/shadow

     有时我们又需要将文件共享给其他人来访问,譬如在团队协助开发项目或者共享一些数据资源等。那我们应该怎么做呢?方法有很多,譬如将文件权限开放给指定组成员,那么将需要共享的成员加入指定组即可;或者拷贝一份文件到公共目录,然后更改文件权限,将文件拥有者修改为指定成员;... 。

    那么我们怎么来修改文件权限呢?

    1. chgrp:改变文件所属的组

    系统中的所有组都存放在/etc/group文件中,使用chgrp可以在这些组中进行切换。例如:

    $ chgrp grp1 test1.txt

    如果试图切换到不存在的组,会提示错误。需要先创建组,然后再改变文件的组。

    2. chown:改变文件所有者

    系统中的用户帐号存放在/etc/passwd文件中,改变用户也需要首先存在这个用户。示例如下:

    $ chown usr1 test1.txt #改变test1.txt用户为usr1

    $ chown usr1:grp1 test1.txt #同时改变用户和组

    $ chown -R usr1 dir1 #递归改变用户,指定目录下的所有文件及其子目录中的文件都会被改变用户

    $ chown usr1.grp1 test1.txt #同时改变用户及组

    $ chown .grp1 test1.txt #改变组

    3. chmod:改变文件权限

    改变文件的权限可以使用代表权限的数字或者权限字符。如:

    $ chmod  123 test1.txt #使文件有---x-w--wx 权限

    $ chmod 777 test2.txt #赋权限 -rwxrwxrwx

    $ chmod -R 644 dir1 #递归赋权限

    使用权限字符来修改权限的方法如下表:

    chmod u(user)
    g(group)
    o(other)
    a(all)
    +(加入)
    -(除去)
    =(设定)
    r(read)
    w(write)
    x(execute)
    文件或目录

    Tips:

    1. Linux文件的权限:

        r:可读取文件内容

        w:可编辑,新增,修改文件的内容,不具有删除文件权限

        x:可执行文件

    2. Linux的目录的权限:

        r:读取该目录下的文件名数据

        w:有建立新文件与目录权限,有删除已有文件和目录权限,有重命名文件和目录权限,有移动文件和目录的权限

        x:有切换工作目录到当前目录的权限

    3. 用户拥有文件的w权限不意味着用户可以删除该文件;只有当用户拥有某个目录的w权限,才能删除该目录下的文件,且可删除任意权限的文件,包括root用户的文件。

    4. Linux下文件的扩展名其实意义不大,譬如文件具有x属性就可以执行,而与扩展名无关。当然也有一些惯用的扩展名,譬如:sh, py等。

    5. Linux下的文件和目录名称最后不要包含一些特殊符号,譬如:* ? > < ; & ! [ ] | ' " ` ( ) { } 

    6. Linux下的文件名前后都可以包含空格,这个是一个小陷阱。你可能无意间输入文件名前面有空格,Linux并不会像windows一样自动去掉空格。这样你后面操作文件可能就会发现,你明明看到了这个文件,输入命令却找不到。

    参考:

    http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission_2.php

    http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_4.php

  • 相关阅读:
    2014下半年软考总结
    Java学习之Filter
    java学习之PreparedStatement
    java学习之dom4j 对 xml的读取
    Windows查看端口占用及杀掉进程
    CentOS压力测试工具Tsung安装和图形报表生成Tsung安装配置
    Tsung压力测试:Openfire
    CentOS Mysql安装配置
    nodejs、webpack
    IOS操作系统上执行monkey测试
  • 原文地址:https://www.cnblogs.com/daemon369/p/3247304.html
Copyright © 2011-2022 走看看