zoukankan      html  css  js  c++  java
  • linux文件权限和群组

    linux文件权限和几种表示方法

    文件长度大约最大为255bytes或128个汉字字符

    linux文件权限有几种表示方法:

    使用ls -al 即可查询到目录的权限内容:

    文件权限说明:

    格式为: drwxr-xr-x 

    o 第一组为『文件拥有者可具备的权限』,以『initial-setup-ks.cfg』那个文件为例, 该文件的拥有者
    可以读写,但不可执行;
    o 第二组为『加入此群组之账号的权限』;
    o 第三组为『非本人且没有加入本群组之其他账号的权限』。
     
    当为[ d ]则是目录
    o 当为[ - ]则是文件
    o 若是[ l ]则表示为连结档(link file);
    o 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    o 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
    o 若是[ P]则表示为数据输送文件(FIFO)
    o 若是[ s]则表示为socket文件

    文件权限分为:

    普通权限:

    read(r): 拥有目录和文件的权限:

    write:(w): 拥有在目录下建立和删除文件的权限或者修改文件的权限

    excute(x): 拥有执行文件的权限和进入此目录的权限

    特殊权限:SUID:SGID:SBIT

    如drwxrwsrwt

    修改文件,目录权限和群组

    1. chgrp: 改变文件或目录所属群组
    2. chown:改变文件拥有者
    3. chmod:改变文件权限

    例子:

    改变文件所属群组
    chgrp guan 1.txt
    改变文件拥有者:
    chown root 1.txt
    同时改变目录和目录下文件要加上-R
    chwon -R test 快捷改变方式:
    chown alex:guan 1.txt

    修改文件权限有几种方式:

    1:根据4 + 2 + 1的方式, 如加上特殊权限,则有隐藏权限,则 SUID(4) SGID(2) SBIT(1):

     2: 根据加减法加减文件权限: u:拥有者 g群组权限 o其他人权限  a:所有人

    例子:

    所有人的权限:
    chmod 2777 1.txt
    加减权限:
    chmod u+x 1.txt
    文件对所有人都有可以执行的权限:
    chmod a+x 1.txt

     3: 文件umask

    通常建立文件之时我们的umask默认为0022

    linux文件系统建立之时预设文件权限为:

    1. 目录权限:drwxrwxrwx
    2. 文件权限:drwxrw-rx-
    3. 新建目录权限为默认权限减去设定的对应umask值, 即为目录drwxrwxrwx - 0022(d----w--w-) 即为去除群组和其他人的w权限,则目录权限为drwxr-xr-x: 文件则为drwxr--r--

    如何设定umask和查看

    1. umask数字显示
    2. umask -S 分类显示文件权限
    3. umask 0022设定文件权限

    文件隐藏属性:

    在linuxEXT2,EXT3,EXT4和部分文件系统可以用chattr设定文件隐藏属性:

    chattr [+-=][ASacdistu] 文件或目录名称
     
    A :当设定了 A 这个属性时,若你有存取此文件(或目录)时,他的访问时间 atime 将不会被修改,
    可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)
    S :一般文件是异步写入磁盘的(原理请参考前一章 sync 的说明),如果加上 S 这个属性时,
    当你进行任何文件的修改,该更动会『同步』写入磁盘中。
    a :当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有 root 才能设定这属性
    c :这个属性设定之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,
    但是在储存的时候,将会先进行压缩后再储存(看来对于大文件似乎蛮有用的!)
    d :当 dump 程序被执行的时候,设定 d 属性将可使该文件(或目录)不会被 dump 备份
    i :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、设定连结也无法写入或新增数据!』
    对于系统安全性有相当大的帮助!只有 root 能设定此属性
    s :当文件设定了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘空间,
    所以如果误删了,完全无法救回来了喔!
    u :与 s 相反的,当使用 u 来配置文件案时,如果该文件被删除了,则数据内容其实还存在磁盘中,
    可以使用来救援该文件
     
    注意 1:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定
    注意 2:xfs 文件系统仅支援 AadiS 而已
    例子:
    chattr +i attrtest <==给予 i 的属性
    
    lsattr attrtest

    关于特殊权限SUID,SGID,SBIT的说明:

    SUID

    说明:只要用户拥有对程序具有X的权限  SUID可以让普通用户暂时获得拥有者的权限从而执行此二进制程序

     SUID 权限仅对二进制程序(binary program)有效;
     执行者对于该程序需要具有 x 的可执行权限;
     本权限仅在执行该程序的过程中有效 (run-time);
     执行者将具有该程序拥有者 (owner) 的权限。
    注意:只能用于二进制文件,不能用于shell scripts
     

    SGID

    说明:SGID可以用于目录或者文件,当用户具有X的权限, SGID可以给与用户所在群组的权限

     SGID 对二进制程序有用;
     程序执行者对于该程序来说,需具备 x 的权限;
     执行者在执行的过程中将会获得该程序群组的支持!
     
    建立目录时:
     用户若对于此目录具有 r 与 x 的权限时,该用户能够进入此目录;
     用户在此目录下的有效群组(effective group)将会变成该目录的群组;
     用途:若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此
    目录的群组相同。
     

    SBIT

    说明:具有此权限的用户只能够删除自己建立的文件和目录, 不能够删除其他用户的
    注意:此权限只对目录有用
     
    当用户对于此目录具有 w, x 权限,亦即具有写入的权限时; 当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件
     
    例子:
    当甲这个用户于 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权限, 这表
    示『甲用户对该目录内任何人建立的目录或文件均可进行 "删除/更名/搬移" 等动作。』 不过,如果
    将 A 目录加上了 SBIT 的权限项目时,则甲只能够针对自己建立的文件或目录进行删除/更名/移动
    等动作,而无法删除他人的文件。
     
     
     
  • 相关阅读:
    fatal: unable to auto-detect email address (got 'tim@newton.(none)')的解决方法
    使用git命令提示“不是内部或外部命令
    Windows系统下安装 CMake
    php与mysql的连接
    array_merge和加号的区别
    可重入锁的实现
    redis scan
    redis主丛,哨兵和集群的区别
    高并发架构系列:Redis并发竞争key的解决方案详解
    laravel上传图片
  • 原文地址:https://www.cnblogs.com/guantao/p/13034669.html
Copyright © 2011-2022 走看看