zoukankan      html  css  js  c++  java
  • Linux基础知识之文件的权限(一)

    Linux基础知识之文件权限(一)


    Linux优点之一就是它拥有多用户多任务的环境,在提供文件共享的同时也能保证用户文件的安全性。所以,设置文件的权限管理变得尤为重要。

    权限讲解

    [der@Der ~]$ ls -al            # 列出当前目录下所有文件的详细信息

    以上图的最后一个文件.bash_logout为例,‘.’表示隐藏文件;

    - rw- r– r– 1 der der 18 
    Aug 8 20:06 .bash_logout
    文件类型 属主权限 属组权限 其他人
    权限
    连接数 文件属主 文件属组 文件大小 文件最后修改时间 文件名

    权限的表示方法

    字母法  r:read–>读权限;w:write–>写权限;x:excute–>执行权; 
    数字法  4–>读权限;2–>写权限;1–>执行权限;

    文件.bash_logout的属主为root,有rw权限;属组为root(组内可能有其他用户),有读权限;其他人有r权限;创建新用户时,该用户的属组默认为用户名。

    例题:请问testgroup这个群组的成员与其他人(others)是否可以进入本目录?

    drwxr-xr– 1 test1 testgroup 5238 Jun 19 10:25 groups/

    答:testgroup群组拥有目录的执行权,可进入该目录,没有写的权限;而othes用户没有执行权,不能进入该目录,即使有读的权限。

     权限更改

    命令:chgrp,chown,chmod

    chgrp:改变文件的所属群组

        chgrp [OPTION]… GROUP  FILE…

    [root@Der_Tencent ~]# su -               #切换之root用户,root才有更改文件的属性; 
    [root@Der_Tencent ~]# touch test.txt         #用touch创建测试文件 
    [root@Der_Tencent ~]# ls -al test.txt        #列出该文件的详细属性 
    -rw-r--r-- 1 root root 0 Sep 22 20:27 test.txt    #文件的属组为root 
    [root@Der_Tencent ~]# useradd alice          #添加alice用户,默认属组问alice 
    [root@Der_Tencent ~]# chgrp alice test.txt       #更改文件属组为alice 
    [root@Der_Tencent ~]# ls -l test.txt 
    -rw-r--r-- 1 root alice 0 Sep 22 20:27 test.txt   #文件的属主已改为alice 

    chown :改变文件的的属主和属组

    chown [OPTION]... [OWNER][:[GROUP]] FILE...

    [root@Der_Tencent ~]# chown alice test.txt       #更改文件的属主为alice 
    [root@Der_Tencent ~]# ls -l test.txt 
    -rw-r--r-- 1 alice alice 0 Sep 22 20:27 test.txt #属主已经改为alice 
    [root@Der_Tencent ~]# chown root:root test.txt   #同时更改属主和属组 
    [root@Der_Tencent ~]# ls -l test.txt   
    -rw-r--r-- 1 root root 0 Sep 22 20:27 test.txt 

    chmod :改变文件的权限

    赋权法:u(user)=MODE,g(group)=MODE,o(others)=MODE

    [root@Der_Tencent ~]# chmod u=rwx,o=rw test.txt   #以逗号隔开选项,u的权限改为读写执行,o的权限改为读写
    [root@Der_Tencent ~]# ls -l test.txt 
    -rwxr--rw- 1 root root 0 Sep 22 20:27 test.txt 

    授权法:u+|-MODE;g+|-MODE;o+|-MODE     #  ‘|’表示或

    [root@Der_Tencent ~]# chmod g+w,g-r,o-w test.txt #g的权限加写,o的权限减去读
    [root@Der_Tencent ~]# ls -l test.txt 
    -rwx-w-r-- 1 root root 0 Sep 22 20:27 test.txt


    注意:赋权表示法会覆盖其他属性,而授权法只更改指定的属性

    数字法 r=4,w=2,x=1

    [root@Der_Tencent ~]# chmod 644 test.txt #u=4+2,g=4,o=4 
    [root@Der_Tencent ~]# ls -l test.txt 
    -rw-r--r-- 1 root root 0 Sep 22 20:27 test.txt #u读写权限,g读权限,o读权限 

    权限对文件和目录的意义

    对文件

    r (read):可读取此一文件的实际内容,命令有cat,tail,head等; 
    w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件),命令有vim,nano等; 
    x (eXecute):该文件具有可以被系统执行的权限,例如.sh脚本文件。

    对目录

    r (read contents in directory):可以查看目录下的文件;例如ls命令 
    w (modify contents of directory):在目录下创建文件目录,删除,更名,移动; 
    x (access directory):可以进入目录;

    注意:1、即使有目录的rw,没有x,不能进入目录工作; 
    2、用户对目录拥有w权限,即使没有目录内文件的w权限,也可以将文件删除,即删除整个文件;

  • 相关阅读:
    阿里消息队列中间件 RocketMQ 源码分析 —— Message 拉取与消费(上)
    数据库中间件 ShardingJDBC 源码分析 —— SQL 解析(三)之查询SQL
    数据库分库分表中间件 ShardingJDBC 源码分析 —— SQL 解析(六)之删除SQL
    数据库分库分表中间件 ShardingJDBC 源码分析 —— SQL 解析(五)之更新SQL
    消息队列中间件 RocketMQ 源码分析 —— Message 存储
    源码圈 300 胖友的书单整理
    数据库分库分表中间件 ShardingJDBC 源码分析 —— SQL 路由(一)分库分表配置
    数据库分库分表中间件 ShardingJDBC 源码分析 —— SQL 解析(四)之插入SQL
    数据库分库分表中间件 ShardingJDBC 源码分析 —— SQL 路由(二)之分库分表路由
    C#中Math类的用法
  • 原文地址:https://www.cnblogs.com/der1128/p/11569620.html
Copyright © 2011-2022 走看看