zoukankan      html  css  js  c++  java
  • Linux 文件权限

    文件权限

    Linux 中任何一个文件都具有 「拥有者、所属用户组与其他用户」三种权限,一个用户可属于多个用户组。所有用户的相关信息都记录在 /etc/passwd 文件中,密码记录在 /etc/shaodw 文件,用户组记录在 /etc/group 文件。

    root 用户权限最高,不算做其他用户

    文件属性

    [root@cloudServer ~]# ls -Alih
    total 36K
     67146818 -rw-------. 1 root root 1.3K Jan 14  2019 anaconda-ks.cfg
     67146820 -rw-------  1 root root 2.5K Jul 21 19:18 .bash_history
     67813855 -rw-r--r--. 1 root root   18 Dec 29  2013 .bash_logout
     67852992 -rw-r--r--. 1 root root  176 Dec 29  2013 .bash_profile
     67852993 -rw-r--r--. 1 root root  176 Dec 29  2013 .bashrc
     67852994 -rw-r--r--. 1 root root  100 Dec 29  2013 .cshrc
    102158430 drwxr-xr-x  2 root root   40 Jan 14  2019 .oracle_jre_usage
    102000633 drwxr-----  3 root root   19 Jul 20 22:32 .pki
    102163205 drwx------  2 root root   29 Jul 20 00:01 .ssh
     67852995 -rw-r--r--. 1 root root  129 Dec 29  2013 .tcshrc
     67206596 -rw-------  1 root root 5.2K Jul 21 20:30 .viminfo
     
    [root@cloudServer ~]# ls -ld
    dr-xr-x---. 5 root root 200 Jul 21 20:30 .
    

    -a:显示以 . 开头的隐藏文件
    -A:排除 -a 中的 . 和 ..
    -i:显示文件的索引节点号
    -d:显示目录自身属性

    分为七个部分:

    1. 文件类型与权限
      文件类型:普通文件(-)、目录文件(d)、链接文件(l
      权限:当前用户、同用户组的权限、其他用户权限,rwx 用数字表示就是 421

    2. 有多少文件名链接到此节点(inode)

    3. 文件拥有者

    4. 该文件所属用户组

    5. 文件大小:默认为 Byte

    6. 创建时间
      文件的三个时间:

      [root@cloudServer ~]# stat anaconda-ks.cfg
        File: ‘anaconda-ks.cfg’
        Size: 1279      	Blocks: 8          IO Block: 4096   regular file
       Device: fd00h/64768d	Inode: 67146818    Links: 1
       Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
       Access: 2019-07-21 21:21:00.034333936 +0800
       Modify: 2019-01-14 19:11:11.167986488 +0800
       Change: 2019-01-14 19:11:11.167986488 +0800
        Birth: -
      [root@cloudServer ~]# chmod a+r anaconda-ks.cfg
      [root@cloudServer ~]# stat anaconda-ks.cfg
       File: ‘anaconda-ks.cfg’
       Size: 1279      	Blocks: 8          IO Block: 4096   regular file
      Device: fd00h/64768d	Inode: 67146818    Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2019-07-21 21:21:00.034333936 +0800
      Modify: 2019-01-14 19:11:11.167986488 +0800(内容没变,不修改这个属性)
      Change: 2019-07-21 22:28:09.726788980 +0800(权限改变了,这个属性跟着修改)
       Birth: -  
      

      Access:使用 cat、grep、less 等命令查看文件内容的时间
      Modify:文件 「内容」 改变的时间
      Change:文件的 元数据(属性) 发生改变的时间,如改变所属用户、所属组等信息

    7. 文件名

    为啥文件(或目录)知道所属的用户以及用户组名称呢?其实文件都会有所属者 ID 与所属组 ID,当我们有要显示档案属性的需求时,系统会依据 /etc/passwd/etc/group 的内容, 找到 UID/GID 对应的帐号与群组名称再显示出来!

    rwx 对于文件和目录的意义

    对文件来说,w 意味着可以修改该文件的内容(但不包含删除文件),x 意味着该文件有被执行的权限(真正是否能执行与文件内容有关)。

    目录主要负责记录文件名列表

    • r:意味着可以读取该目录结构
    • w可对该目录下的文件(或目录)进行删除、添加、修改、移动、重命名等,权限极大
    • x:能进入该目录

    如果用户只对某目录拥有 r 权限,只能查看该目录下的文件名称和类型,连文件大小以及各种属性都看不到。如 test1 用户只拥有 /home/test2 目录的读权限,只能看到该目录下的文件名称

    [test2@MyPersonalCentOS ~]$ ls -al
    total 36
    drwxr-xr--  5 test2 test2 4096 Apr 21 14:55 .
    
    [test1@MyPersonalCentOS ~]$ ls -l /home/test2/
    ls: cannot access /home/test2/learn: Permission denied
    total 0
    d????????? ? ? ? ?            ? learn
    

    能完成任务的最小权限

    如果用户对某目录没有 x 权限,无法执行该目录下的任何命令,也不能查询该目录下的文件内容。

    操作动作 /dir1 /dir1/file1 /dir2 解释
    读取 file1 内容 x r - 要能够进入 /dir1 才能读到里面的文件数据!
    修改 file1 内容 x rw - 能进入且能修改
    删除 file1 文件 wx - - 能够进入 /dir1 具有目录修改的权限即可!
    将 file1 复制到 /dir2 x r wx 要能够读 file1 且能够修改 /dir2 内的数据

    修改文件属性与权限

    三个命令,chownchgrpchmod 分别表示修改文件所属用户、修改文件所属用户组、修改文件权限

    chmod 语法分为两种,一种是用数字修改,另一种是用符号修改文件权限。

    使用数字修改,分别是 421 将对应位置上的数字相加,例如:

    # 在 /home/test2 目录下,其他用户都不可进入
    [test2@MyPersonalCentOS ~]$ ls -al
    drwxr-x---  5 test2 test2 4096 Apr 25 20:00 .
    
    [test1@MyPersonalCentOS ~]$ cd /home/test2/
    bash: cd: /home/test2/: Permission denied
    
    # 使用 chmod 修改为其他用户可进入,test1 就能进入这个目录了
    [test2@MyPersonalCentOS ~]$ chmod 705 .
    [test2@MyPersonalCentOS ~]$ ls -al
    drwx---r-x  5 test2 test2 4096 Apr 21 14:55 .
    

    使用符号类型修改文件权限,格式为 [范围][修改][某权限]u 所属用户,g 用户组,o 其他用户,a 全部用户,用于修改的符号有 +-=,权限还是那三个 rwx。现在再把 /home/test2 目录的其他用户权限关闭:

    [test2@MyPersonalCentOS ~]$ chmod o-rx .
    [test2@MyPersonalCentOS ~]$ ls -al
    total 36
    drwx------  5 test2 test2 4096 Apr 21 14:55 .
    
  • 相关阅读:
    IntelliJ Idea 快捷键列表
    mysql索引类型和方式
    基本git指令
    idea中deBug方法
    BeanUtils.copyProperties(A,B)使用注意事项
    MySQL字段类型
    JAVA常识1
    Redis在windows下的安装下载
    Netty
    IDEA工具
  • 原文地址:https://www.cnblogs.com/Zhoust/p/10788342.html
Copyright © 2011-2022 走看看