zoukankan      html  css  js  c++  java
  • Linux学习之二——档案与目录的属性和权限

    一、属性和权限的基本概念

    Linux一般将档案可存取的身份分为三个类别,分别是 owner/group/others,这三种身份各有 read/write/execute 等权限。

    所有的系统上的账号与一般身份使用者,还有那个root的相关信息, 都是记录在/etc/passwd这个档案内的。个人的密码则是记录在/etc/shadow这个档案下。 此外,Linux所有的组名都纪录在/etc/group内

    用ls -al查看目录下的文件,a表示看所有文件,l表示以列表的形式显示。

    1. 第一栏代表这个档案的类型与权限(permission):

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

    1) 当为[ d ]则是目录;
    2) 当为[ - ]则是档案,包括纯文件档,二进制文件,数据格式文件
    3) 若是[ l ]则表示为连结档(link file);
    4) 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    5) 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    6) 若是[ s ]则表示资料接口文件sockets
    7) 若是[ p ]则表示为数据输送文件。

    接下来的字符中,以三个为一组,均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

    第一组为『档案拥有者的权限』,第二组为『同群组的权限』,第三组为『其他非本群组的权限』。

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

    3. 第三栏表示这个档案(或目录)的『拥有者账号』

    4. 第四栏表示这个档案的所属群组

    5. 第五栏为这个档案的容量大小,默认单位为bytes

    6. 第六栏为这个档案的建档日期或者是最近的修改日期

    7. 第七栏为这个档案的档名
    比较特殊的是:如果档名前多一个『 . 』,则代表这个档案为『隐藏档』,例如上表中的.gconf那一行,该档案就是隐藏档。

    二、权限相关的命令

    我们用下面的命令来设置目录和档案的权限:

    1. chgrp:改变所属群组.

    chgrp 参数 group dirname/filename

    选项与参数

    -R:进行递归变更

    2. chown:改变档案拥有者,可以顺便修改群组

    chown 参数 账号名称 档案或目录

    chown 参数 账号名称:组名 档案或目录

    选项与参数

    -R:进行递归变更

    3. chmod:改变权限

    1) 数字类型改变档案权限:

    chmod [-R] xyz 档案或目录

    选项与参数:

    xyz : 数字类型的权限属性,为 rwx 属性数值的相加。

    -R : 进行递归变更

    2) 符号类型改变档案权限

    u代表user,g代表group,o代表others,a代表所有。

    +加入,-除去,=设定

    r代表读,w代表写,x代表执行

    chmod u=rwx,go+rx .bashrc

    4. umask:档案预设权限

    umask 查看权限

    umask -S 以符号类型的方式来显示出权限

    umask xyz 设置权限

    建立档案时,默认权限为:-rw-rw-rw-
    建立目录时:默认权限为:drwxrwxrwx

    用建立档案和目录时的默认权限来减去umask预设权限就是新建的档案或目录实际的权限。

    四、档案隐藏属性

    1. 档案的一些隐藏属性:

    1) A: 存取此档案(或目录)时,他的访问时间 atime 将不会被修改,可避免I/O较慢癿机器过度的存取磁盘。这对速度较慢的计算机有帮助

    2) S :一般档案是异步写入磁盘的,如果加上 S 这个 属性时,任何更新都会『同步』写入磁盘中。

    3) a :档案将只能增加数据,而不能删除或修改数据,叧有root 才能设定这个属性。

    4) c :自动将此档案『压缩』,在读取的时候将会自动解压缩, 在储存的时候,将会先进行压缩后再储存(对于大档案比较有用!)

    5) d :设定 d 属性将可使该档案(或目录)不会被 dump 备份

    6)i :让一个档案『不能被删除、改名、设定连结也无法写入或新增资料!』对于系统的安全性有很大的帮助!只有 root 能设定此属性

    7) s :如果这个档案被删除,他将会被完全移除出这个硬盘空间,所以如果误删了,就无法救回了喔!

    8) u :如果该档案被删除了,则数据内容其实还存在磁盘中,可以救回该档案!

    2.配置隐藏属性:

    chattr [+-=]属性 档案或目录名称

    选项与参数:

    + :增加某一个特殊参数,其他原本存在属性则不动。

    - :移除某一个特殊参数,其他原本存在属性则不动。

    = :设定属性

    3.查看隐藏属性:

    lsattr [-adR] 档案或目录

    选项与参数:

    -a :显示隐藏文件;

    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;

    -R :连同子目录的数据也一并列出来!

    五、档案与目录的特殊权限

    1. SUID权限,s标记在owner的x位置

    该权限仅对二进制程序有效且需要执行者对程序有执行权限,这样就能使执行者在执行的过程中具有该程序拥有者的权限。

    2. SGID权限,s标记在group的x位置

    该权限仅对二进制程序有效且需要执行者对程序有执行权限,这样就能使执行者在执行的过程中具有该程序群组的权限。

    3. SBIT权限,

    该权限针对目录有效,需要用户对目录有写和执行的权限,当用户在该目录下建立档案或目录时,仅有自己与root才有删除权限。

    4. 特殊权限的修改,用chmod指令。

  • 相关阅读:
    一道编程面试题
    AtCoder Grand Contest 016 B
    AtCoder Regular Contest 076 D
    Codeforces Round #419 (Div. 2) B. Karen and Coffee
    2017 计蒜之道 复赛 Windows画图+百度地图导航
    Codeforces Round #418 (Div. 2) B. An express train to reveries
    棠梨煎雪
    Bits And Pieces
    Let Them Slide
    TeaTree
  • 原文地址:https://www.cnblogs.com/studynote/p/4789364.html
Copyright © 2011-2022 走看看