zoukankan      html  css  js  c++  java
  • Linux文件权限及其修改

    Unix/Linux 是多用户多任务操作系统,因此对文件权限的了解和管理就显得很有必要。

    1. 查看所有用户及所有的组

    /etc/group 文件是用户组的配置文件,内容包括当前系统所有用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用 户组的用户之间具有相似的特征。可以通过 cat 指令查询文件内容。

    $ cat /etc/group
    
    nobody:*:-2:
    nogroup:*:-1:
    wheel:*:0:root
    daemon:*:1:root
    kmem:*:2:root
    sys:*:3:root
    tty:*:4:root
    operator:*:5:root
    mail:*:6:_teamsserver
    bin:*:7:
    procview:*:8:root
    procmod:*:9:root
    owner:*:10:
    everyone:*:12:
    _taskgated:*:13:_taskgated
    ...
    

    每个用户组一条记录,基本格式为:group_name:passwd:GID:user_list

    每条记录分四个字段:第一个字段是用户组名称。第二字段是用户组密码。第三个字段是用户组ID。第四个字段是用户列表,每个用户之间用 , 号分割,这个字段可以为空,空字段表示用户组为GID的用户名。

    2. 查看用户所在的组

    如果想查看当前用户所属的组,可以使用 groups 指令,加上待查询的用户名即可。

    $ groups root
    
    wheel daemon kmem sys tty operator procview procmod everyone staff certusers 
    localaccounts admin com.apple.sharepoint.group.1 _appstore _lpadmin 
    _lpoperator _developer _analyticsusers com.apple.access_ftp 
    com.apple.access_screensharing com.apple.access_ssh-disabled
    

    3. 设置文件权限

    当我们使用 ls -l 指令时,输出的信息中第一列是一段关于该文件或文件夹的权限的信息。

    其格式为 (0-filetype)(1-3-user-authority)—(4-6-group-authority)—(7-9-other-user-authority)
    分别是文件类型指示符,当前用户权限,当前用户所属用户组的权限,系统其他用户的权限。
    r 表示其拥有读取的权限,w 表示其拥有写入的权限,x 表示其拥有执行的权限(若该文件可执行)。

    $ ls -l ~ | grep Desktop
    drwx------ 32 gcxyb  staff  1024 Mar 29 16:01 Desktop
    

    了解了文件权限的含义,我们就可以根据需要自行设置文件的访问或执行权限,使用 chmod 指令。如果是文件夹且对子文件也有效可以加上参数 -R

    比如

    (a) 为 `test.py` 文件增加可执行权限 `$ chmod u+x test.py`
    
    (b) 删除用户组的 `test.py` 可执行权限 `$ chmod g-x test.py`
    
    (c) 使文件 `test.py` 的所有读写执行权限对所有用户开放 `$ chmod a+wx test.py`
    

    4. 修改文件所属用户及用户组

    有时候当我们从系统中其他用户的目录下拷贝一份数据过来后,文件所属的用户及用户组权限可能包含在内,如果我们想要将其修改为自己当前用户的所有权,可以使用 chown 指令。同样的,如果是文件夹且对子文件也有效可以加上参数 -R

    $ chown -R root:root ./mydir
    

    (全文完)


    本文作者 :phillee
    发表日期 :2021年3月30日
    本文链接https://www.cnblogs.com/phillee/p/14598275.html
    版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!
    限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

    感谢您的支持

    ¥ 打赏

    微信支付

  • 相关阅读:
    Linux文件/proc/net/tcp分析
    为什么系统调用会消耗较多资源
    为什么Linux默认页大小是4KB
    为什么Linux需要虚拟内存
    Make 命令教程
    关于同步的一点思考-下
    关于同步的一点思考-上
    Linux下的进程控制块(PCB)
    汇编语言基础:寄存器和系统调用
    内核栈与thread_info结构详解
  • 原文地址:https://www.cnblogs.com/phillee/p/14598275.html
Copyright © 2011-2022 走看看