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

    一、用户身份与群组记录

    ​ Linux系统当中,默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。 此外,Linux所有的组名都纪录在/etc/group内。

    二、Linux文件属性

    [root@www ~]# ls -al
    total 156
    drwxr-x---   4    root   root     4096   Sep  8 14:06 .
    drwxr-xr-x  23    root   root     4096   Sep  8 14:21 ..
    -rw-------   1    root   root     1474   Sep  4 18:27 anaconda-ks.cfg
    -rw-------   1    root   root      199   Sep  8 17:14 .bash_history
    -rw-r--r--   1    root   root       24   Jan  6  2007 .bash_logout
    -rw-r--r--   1    root   root      191   Jan  6  2007 .bash_profile
    -rw-r--r--   1    root   root      176   Jan  6  2007 .bashrc
    -rw-r--r--   1    root   root      100   Jan  6  2007 .cshrc
    drwx------   3    root   root     4096   Sep  5 10:37 .gconf      <=范例说明处
    drwx------   2    root   root     4096   Sep  5 14:09 .gconfd
    -rw-r--r--   1    root   root    42304   Sep  4 18:26 install.log <=范例说明处
    -rw-r--r--   1    root   root     5661   Sep  4 18:25 install.log.syslog
    [    1   ][  2 ][   3  ][  4 ][    5   ][     6     ][       7          ]
    [  权限  ][连结][拥有者][群组][文件容量][  修改日期 ][      檔名        ]
    

    1. 第一栏代表这个文件的类型与权限(permission)

    pic

    • 第一个字符代表这个文件是『目录、文件或链接文件等等』:

      • 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
      • 当为[ - ]则是文件,例如上表档名为『install.log』那一行;
      • 若是[ l ]则表示为连结档(link file);
      • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
      • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    • 接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

      • 第一组为『文件拥有者的权限』,以『install.log』那个文件为例, 该文件的拥有者可以读写,但不可执行;
      • 第二组为『同群组的权限』;
      • 第三组为『其他非本群组的权限』。

    2. 第二栏表示有多少档名连结到此节点(i-node)

    ​ 每个文件都会将他的权限与属性记录到文件系统的i-node中,这个属性记录的,就是有多少不同的档名连结到相同的一个i-node号码去就是了

    3. 第五栏为这个文件的容量大小,默认单位为bytes

    4. 第七栏为这个文件的档名

    ​ 如果档名之前多一个『 . 』,则代表这个文件为『隐藏档』;可以使用『ls』及『ls -a』

    三、改变文件属性与权限

    1. chgrp(改变所属群组)

    [root@www ~]# chgrp [-R] dirname/filename ...
    选项与参数:
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
         都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
    范例:
    [root@www ~]# chgrp users install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
    [root@www ~]# chgrp testing install.log
    chgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~
    

    2. chown(改变文件拥有者)

    [root@www ~]# chown [-R] 账号名称 文件或目录
    [root@www ~]# chown [-R] 账号名称:组名 文件或目录
    选项与参数:
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
    
    范例:将install.log的拥有者改为bin这个账号:
    [root@www ~]# chown bin install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log
    
    范例:将install.log的拥有者与群组改回为root:
    [root@www ~]# chown root:root install.log
    [root@www ~]# ls -l
    -rw-r--r--  1 root root 68495 Jun 25 08:53 install.log
    

    3. chmod(改变权限)

    (1) 数字类型改变文件权限

    ​ r:4 w:2 x:1

    ​ 每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

    ​ owner = rwx = 4+2+1 = 7
    ​ group = rwx = 4+2+1 = 7
    ​ others= --- = 0+0+0 = 0

    [root@www ~]# chmod [-R] xyz 文件或目录
    选项与参数:
    xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
    -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
    
    [root@www ~]# ls -al .bashrc
    -rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod 777 .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
    
    (2) 符号类型改变文件权限

    ​ user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!

    chmod u g o a + - = r w x file/directory
    [root@www ~]# chmod  u=rwx,go=rx  .bashrc
    # 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
    [root@www ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod  a+w  .bashrc
    [root@www ~]# ls -al .bashrc
    -rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
    [root@www ~]# chmod  a-x  .bashrc
    [root@www ~]# ls -al .bashrc
    -rw-rw-rw-  1 root root 395 Jul  4 11:45 .bashrc
    

    四、权限对文件/目录重要性

    1. 权限对文件的重要性

    ​ 文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。 因此,权限对于文件来说,他的意义是这样的:

    • r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
    • w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
    • x (execute):该文件具有可以被系统执行的权限。

    2. 权限对目录的重要性

    • r (read contents in directory):

      表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!

    • w (modify contents of directory):

      这个可写入的权限对目录来说,是很了不起的!因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:

      • 建立新的文件与目录;
      • 删除已经存在的文件与目录(不论该文件的权限为何!)
      • 将已存在的文件或目录进行更名;
      • 搬移该目录内的文件、目录位置。
    • x (access directory):

      目录不可以被执行,目录的x代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!

  • 相关阅读:
    027、获取后台正在运行的程序
    026、TelephonyManager的应用
    025、WiFi服务
    024、Wallpaper桌面墙纸
    023、在手机上实现打开文件功能
    Git使用ssh协议配置Github远程仓库避免踩坑指南(Windows环境)
    Linxu网络常用命令(CentOS 7)
    插入耳机后,内置麦克风(话筒)输入音量变很轻的解决办法(Windows 10 + Conexant声卡)
    PowerShell Write-Output 支持参数数组传入
    工商银行网银助手无法安装:系统无法打开指定的设备或文件
  • 原文地址:https://www.cnblogs.com/hq82/p/11565176.html
Copyright © 2011-2022 走看看