精华内容
下载资源
问答
  • Linux文件权限管理

    万次阅读 2019-06-22 17:50:25
    文件权限 ls -lh //可以查看目录详情,包括内存占用大小 drwxr-xr-x 2 root root 21 Jun 19 17:51 fileIotServer -rw-r--r-- 1 root root 63M Jun 19 18:48 iotserver-0.0.1.jar -rw-r--r-- 1 r...

     Linux系统是一个多用户环境,所以在同一时间可能有多个用户在使用同一个目录或文件。但对每个用户不一定都有相同的权限,也许有的用户可以查看文件、有的用户可以修改文件等,为了满足这样的要求就必须对目录或文件配置权限。

    1.Linux文件权限

    1.0 权限种类

     在Linux系统中权限分为可读(r)、可写入(w)、可执行(x)三种。对于文件来说,可读权限表示允许对文件进行浏览;可写入权限表示允许修改文件;可执行表示可以将文件作为命令使用。对于目录来说,可读权限表示允许显示目录列表;可写入表示可以在目录中建立、删除、移动文件或子目录;可执行表示可以切换到目录。

    ls -lh #可以查看目录详情,h选项表示显示文件大小
    

    输出:

    drwxr-xr-x 2 root root  21 Jun 19 17:51 fileIotServer
    -rw-r--r-- 1 root root 63M Jun 19 18:48 iotserver-0.0.1.jar
    -rw-r--r-- 1 root root 26K Apr 25 02:29 mysql80--el7-3.noarch.rpm
    |[-][-][-]-  [--] [--]
    | |  |  | |    |    |
    | |  |  | |    |    +----------------> 7. Group
    | |  |  | |    +---------------------> 6. Owner
    | |  |  | +--------------------------> 5. Alternate Access Method
    | |  |  +----------------------------> 4. Others Permissions
    | |  +-------------------------------> 3. Group Permissions
    | +----------------------------------> 2. Owner Permissions
    +------------------------------------> 1. File Type
    

    说明:

    • 第一个字符一般用来区分文件和目录:

      d:表示是一个目录,事实上在Ext2 FS中,目录是一个特殊的文件。
      -:表示这是一个普通的文件。
      l:表示这是一个符号链接文件,实际上它指向另一个文件。
      b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件。
      s、p:这些文件关系到系统的数据结构和管道,通常很少见到。

    • 第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限(Owner Permissions),中间3个字符表示与所有者同一组的用户的权限(Group Permissions),右边3个字符是其他用户的权限(Others Permissions)。

      r(Read):

      对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
      w(Write):

      对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
      x(execute):

      对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

    1.1文件所有者例外

     在Linux即便文件的权限中所有者并没有写权限,但只要当前用户是文件所有者一样可以写入文件。例如用vim编辑后,只需要在保存时,采用"!" 强制保存即可。

    1.2保护子目录

     很多时候用户为了让其他用户可以访问某个目录,如用户家目录。给了用户可执行权限,但如果没有给可读权限时(对于目录没有可读权限就不能显示目录列表),其他用户必须事先知道该目录下子目录或文件才可以访问到。因为其他用户不能使用“ls”命令浏览目录中的内容,这样该目录还是保密的,其他用户只访问用户选择公开的部分。
     虽然给其他用户可读权限在防止其他用户浏览该目录内容上有一定作用,但这不是非常可靠。因为尽管其他用户只有执行权限,但是其他用户可以猜到该目录中的内容。比如用户家目录下通常会有一个名为“.bashrc”的文件,其他用户在不浏览的情况下也可以查看该文件中的内容。所以在给予其他用户执行权限后,要充分考虑该目录中的文件和子目录的权限。

    例如: test用户没有查看权限

    [test@VM_0_13centos tmp]$ ll lost/
    ls: lost/: Permission denied
    

    但是还是可以查看lost目录下有读取权限的文件:

    [test@VM_0_13centos tmp]$ cat lost/jack.txt
    Hello world!!!
    

    2.文件授权

    2.1 chmod命令:

     chmod命令是我们进行权限管理最常用的命令。该命令有两种用法,一种是包含字母和操作符表达方式的文字配置方法;另一种是包含数字的配置方式。

    语法:

    chmod [-cfvR] [--help] [--version] mode file...
    

    参数说明:

    • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

    选项说明:

    • -c : 若该文件权限确实已经更改,才显示其更改动作
    • -f : 若该文件权限无法被更改也不要显示错误讯息
    • -v : 显示权限变更的详细资料
    • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
    • –help : 显示辅助说明
    • –version : 显示版本

    **示例一:**通过操作符表达式的文字配置方式

    将文件 file1.txt 设为所有人皆可读取 :

    chmod a+r file1.txt
    

    将文件 file1.txt 与 file2.txt 设为该文件拥有者,所属群组可写入,但其他以外的人则不可写入 :

    chmod ug+w,o-w file1.txt file2.txt
    

    将目前目录下的所有文件与子目录皆设为任何人可读取 :

    chmod -R a+r *
    

    示例二: 用数字方式授权

    读、写、执行分别用数字表示为:r=4,w=2,x=1 一组权限可以用一组数字表示,比如 777表示 rwx rwx rwx, 640表示rw- r-- --x

    chmod 777 filename  #给User,Group,other分别授权读写和执行权限。
    chmod 444 filename  #授予只读权限
    chmod 777 * #给当前目录所有文件授权
    chmod -R 777 jack/ #给jack目录和下面的所有文件即文件夹,都授予读写和执行权限
    
    2.2 chown命令:

    chown和chmod命令长得很像,但功能和用法不同。

    命令作用
    chmod更改文件或目录的权限(更改的是权限)
    chown更改文件或目录的所有者或拥有组(更改的是属性)

    语法:

    chown [-fhRv] [--reference=<参考文件或目录>] 所有者[:拥有组] 文件|目录...
    

    常用选项:
    ● 文件|目录…:要更改拥有组的文件或目录。
    ● -f:不显示错误信息。
    ● -v:显示命令执行过程。
    ● -h:更改遇到的符号链接的所有者或拥有组,而非符号链接指向的文件或目录的所有者或拥有 组。当遇到符号链接而未指定“-h”选项时,会更改符号链接指向的文件或目录的所有者或拥有组,而非链接本身的所有者或拥有组。
    ● -R:递归处理,将指定目录下的所有文件及子目录一并处理。
    ● --reference=<参考文件或目录>:把指定文件或目录的所有者和拥有组更改成和参考文件或目录的拥有组相同。
    在使用chown命令指定用户或用户组时,可以使用名称或ID。下面看几个chown命令的例子。

    更改目录freeOcean的所有者为jack

    chown jack freeOcean/
    

    更改目录 freeOcean的拥有组为jack

    chown :jack 
    
    2.3 chgrp 命令:

    该命令从字面就可以看出,change group 。作用就是修改文件或目录的拥有组。实际上chown就可以做到。所以该命令不太常用。

    应用举例:修改目录test目录的拥有组为mary

    chgrp mary  test/
    

    4.高级权限管理

    4.1权限掩码

    查看权限掩码:

    [root@VM_0_13_centos zx]# umask
    0022
    

    使用-S用r、w、x显示:

    [root@VM_0_13_centos zx]# umask -S
    u=rwx,g=rx,o=rx
    

     权限掩码umask是一个四位整数(千位的0表示特殊权限,下文解释,可先忽略),其中百位是所有者权限掩码;十位是拥有组权限掩码;个位是其他用户权限掩码。当用户在新建目录或文件时真正的权限会使用Linux内核级别默认权限减去umask值。

    在Linux内核级别新建文件的默认权限是666,在Linux内核级别新建目录的默认权限是777.

    所以实际最终结果的权限 是666-022 = 644 :

    比如我新建一个aa.txt 查看权限 如下:

    -rw-r--r-- 1 root root     0 Dec 29 18:19 aa.txt
    

    所以如果想修改新建文件和目录的权限,则可以通过修改umask来控制。

    umask 011  #修改权限掩码为 011 ,千位不会改变
    
    4.2特殊权限

    SUID属性:

     我们知道passwd命令可以用于更改用户的密码,一般用户可以使用这个命令修改自己的米。但是保存用户密码的/etc/shadow文件的权限是400,也就是说只有文件的所有者root用户可以写入,那为什么其他用户也可以修改自己的密码呢?这就是由于Linux的文件系统中的文件有SUID属性。

    [root@VM_0_13_centos zx]# ll /etc/shadow
    ---------- 1 root root 679 Jul 10 20:37 /etc/shadow
    

     SUID属性只能运用在可执行文件上,当用户执行该执行文件时,会临时拥有该执行文件所有者的权限。passwd命令启用了SUID功能,所以一般用户在使用passwd命令修改密码时,会临时拥有了passwd命令所有者root用户的权限,这样一般用户才可以将自己的密码写入/etc/shadow文件。在使用“ls-l”或“ll”命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的“s”就表明该执行文件拥有SUID属性。

    [root@VM_0_13_centos zx]# ll /usr/bin/passwd 
    -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
    

    Sticky属性:

     Sticky属性只能应用在目录,当目录拥有Sticky属性所有在该目录中的文件或子目录无论是什么权限只有文件或子目录所有者和root用户能删除。比如当用户oliva在“/charles”目录中建立一个文件并将该文件权限配置为777,当/charles目录拥有Sticky属性时,只有root和oliva用户可以将该文件删除。

    SGID属性:

     SGID与SUID不同,SGID属性可以应用在目录或可执行文件上。当SGID属性应用在目录上时,该目录中所有建立的文件或子目录的拥有组都会是该目录的拥有组。如“/charles”目录的拥有组是charles,当“/charles”目录拥有SGID属性时,任何用户在该目录中建立的文件或子目录的拥有组都会是charles;当SGID属性应用在可执行文件上时,其他用户在使用该执行文件时就会临时拥有该执行文件拥有组的权限。如/sbin/apachectl文件的拥有组是httpd,当/sbin/apachectl文件有SGID属性时,任何用户在执行该文件时都会临时拥有用户组httpd的权限。

    配置SUID/SGID/Sticky属性
     配置普通权限时可以使用字符或数字,SUID、SGID、Sticky也是一样。使用字符时s表示SUID和SGID、t表示Sticky;4表示SUID、2表示SGID、1表示Sticky。在配置这些属性时还是使用chmod命令。

    给test目录增加SUID属性:

    [root@VM_0_13_centos zx]# chmod u+s test
    

    给test目录增加SGID属性:

    [root@VM_0_13_centos zx]# chmod g+s test
    

    在使用数字表示时,原来的三位不变,只是增加了一个千位专门用于SUID、SGID、Sticky属性。下面的4就是SUID属性。

    给test目录增加Sticky属性:

    [root@VM_0_13_centos zx]# chmod 1755 test/
    

    结果:会有一个t标识

    [root@VM_0_13_centos zx]# ll
    drwsr-xr-t 2 root root  4096 Dec 29 18:33 test
    
    4.3 ACL(访问控制列表)

     利用Linux文件系统提供的ACL功能为系统中已存在的任何用户或用户组指定其对系统中文件或目录的权限。通过ACL功能配置的权限优先级高于通过chmod命令配置的普通权限。

    通过ACL可以实现更加灵活的权限配置,具体操作目前待整理,完成后,来补充更新。

     上面测试我们频繁用到用户,用户组等相关的信息。在Linux中如何查看用户,用户组等相关信息?所以也在下文补充了。

    5.如何查看用户和用户组

    5.1列出系统所有用户
    cat /etc/passwd 
    

    在这里插入图片描述
    可以看到上面的输出,每行有7个部分,分别用冒号 “:” 分隔,每一部分分别代表:

    • 用户名
    • 加密的密码(x means that the password is stored in the /etc/shadow file)
    • 用户ID (UID)
    • 用户所在组ID (GID)
    • 用户全名(GECOS)
    • 用户家目录
    • 登录shell (defaults to /bin/bash)

    如果只想列出用户名,可以用awk or cut 过滤:

    awk -F: '{ print $1}' /etc/passwd
    
    cut -d: -f1 /etc/passwd
    

    output:

    root
    daemon
    bin
    sys
    sync
    ...
    ...
    sshd
    vagrant
    jack
    anne
    
    5.2 用getent命令查看用户列表

    getent命令展示数据库配置文件 /etc/nsswitch.conf其中配置了passwd我们可以利用这个来列出系统的用户列表.

    getent passwd
    

    在这里插入图片描述

    可以看到和上面查看的是一样的内容。同样如果需要过滤需要的部分,可以采用下面的命令:

    getent passwd | awk -F: '{ print $1}'
    
    getent passwd | cut -d: -f1
    
    5.3检查某个用户是否存在
    getent passwd | grep jack
    

    如果用户存在,则会打印用户的登录信息,否则不会输出。

    5.4 查看当前用户ID
    id  #查看当前用户ID,用户组ID和
    
    5.5创建用户:
    useradd zhangxu -m -d /home/zhangxu //创建用户zhangxu 并指明用户目录
    sudo passwd zhangxu //为用户设置密码
    
    su zhangxu //切换到zhangxu用户
    
    $表示普通用户
    #表示超级用户,也就是root用户
    
    5.6删除用户:
    userdel -r zhagnxu //将用户和目录一并删除
    
    5.7口令管理:
    passwd  //修改当前用户密码
    passwd zhangxu //修改指定用户密码
    
    5.8用户组:
    groups //查看当前用户组
    cat /etc/passwd //查看所有用户的信息
    cat /etc/passwd|grep 用户名 //查看某个用户的信息
    cat /etc/group //查看所有组信息
    

    修改用户组:

    usermod
    参数:-g
    
    usermod -g root xiaomao
    这种情况下会直接修改xiaomao的用户组为root组,覆盖原来的组
    
    参数: -a -G
    usermod -a -G root xiaomao
    这种情况下会追加修改risk的用户组,新增oinstall用为risk的从属用户组,不覆盖原有的risk的用户组。
    
    展开全文
  • windows文件权限管理dos命令

    万次阅读 2019-07-15 13:07:31
    文章目录前言windows dos 文件权限操作命令:Icacls or Cacls。Cacls示例Icacls详细示例1.ICACLS /save & /restore2. ICACLS /setownerwindows sid 简介及相关的whoami dos命令3. ICACLS /findsid4. ICACLS /...

    前言

    你是否不想让别人在你的电脑上打开某个文件夹或者文件?是否有时想允许让别人看某个文件和文件夹下的文件,但是不想让别人更改?或者不想让自己电脑上的某个账户不能访问某个文件夹?如果有过那么可以用以下命令实现,而不需要借助其他加密软件。

    注意要限制别人访问的文件或者文件夹所在盘必须要是NTFS文件系统的,而不能是FAT32格式。这或许是ntfs文件系统安全性能好于fat32的原因之一吧。[比如查看D盘文件系统,只需要打开D盘,在里面空白处点击右键-属性,里面就可以看到了]

    如果是fat32而不是ntfs文件系统可以通过这条命令来转换所在盘为ntfs文件系统[不影响里面的文件的]:

    命令行下操作:

    开始-运行-cmd-回车 打开命令行界面

    输入:convert d: /fs:ntfs

    再回车,按照提示操作就可以了

    [上面命令的意思是:convert表示命令转换文件系统的意思;d: 表示要转换D盘,其他盘你可以相应写,比如f: ; /fs:ntfs 表示文件系统转换为ntfs格式。注意这个命令只能把fat32转换成ntfs格式。将ntfs转换为fat32不能通过简单命令完成,需要借助特别软件。]

    windows dos 文件权限操作命令:Icacls or Cacls。

    请使用Icacls,不推荐使用 Cacls

    权限操作命令需要在管理员模式下运行runas /noprofile /user:administrator cmd输入密码,切换到管理员模式下。

    由于网上和微软官网对cacls 和 icacls命令的实例介绍的不详细,这里对每个命令都有对应的示例进行说明,便于理解学习。

    Cacls

    显示或者修改文件的访问控制列表(ACL)

     CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]
            [/R user [...]] [/P user:perm [...]] [/D user [...]]
        filename      显示 ACL。
        /T            更改当前目录及其所有子目录中指定文件的 ACL。
        /L            对照目标处理符号链接本身
        /M            更改装载到目录的卷的 ACL
        /S            显示 DACL 的 SDDL 字符串。
        /S:SDDL       使用在 SDDL 字符串中指定的 ACL 替换 ACL。
                      (/E、/G、/R、/P 或 /D 无效)。
        /E            编辑 ACL 而不替换。
        /C            在出现拒绝访问错误时继续。
        /G user:perm  赋予指定用户访问权限。
                      Perm 可以是: R  读取
                                   W  写入
                                   C  更改(写入)
                                   F  完全控制
        /R user       撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
        /P user:perm  替换指定用户的访问权限。
                      Perm 可以是: N  无
                                   R  读取
                                   W  写入
                                   C  更改(写入)
                                   F  完全控制
        /D user       拒绝指定用户的访问。
     在命令中可以使用通配符指定多个文件。
     也可以在命令中指定多个用户。
    
    缩写:
        CI - 容器继承。
             ACE 会由目录继承。
        OI - 对象继承。
             ACE 会由文件继承。
        IO - 只继承。
             ACE 不适用于当前文件/目录。
        ID - 已继承。
             ACE 从父目录的 ACL 继承。
    
    eg:
    
    % 将所有d:\documents目录下的文件、子文件夹的NTFS权限修改为仅管理员组(administrators)完全控制(删除原有所有NTFS权限设置):%
    
    $ cacls d:\documents\*.* /T /G administrators:F
    
    % 在原有d:\documents目录下的文件、子文件夹的NTFS权限上添加管理员组(administrators)完全控制权限(并不删除原有所有NTFS权限设置):%
    
    $ cacls d:\documents\*.* /T /E /G administrators:F
    
    % 取消管理员组(administrators)完全控制权限(并不删除原有所有NTFS权限设置):%
    
    $ cacls \\Server\Documents\%username%\我的文档 /t /e /r "mddq\domain admins"
    $ cacls \\Server\Documents\%username%\桌面 /t /e /r "mddq\domain admins"
    
    

    Note:

    1. SDDL(securable Descriptors Define Language安全描述符定义语言.

    示例

    eg1.让所有用户禁止访问D盘test文件夹

    cacls d:\test /t /p everyone:n

    cacls test显示访问控制列表。

    $ cacls test
    D:\test Everyone:(OI)(CI)N
    

    打开D盘test就提示禁止访问。因为上面写的是everyone所有用户。所有你自己也不能访问。自己要访问时只需要运行命令:

    cacls d:\test /t /p everyone:f

    就可以了.

    如果你的电脑有几个账户,你是想不让其他账户访问这个文件夹,那么你可以在写命令的时候把everyone改成相应的账户名字,比如edwin等等〔看你实际的账户名啦〕。

    直接用everyone所有用户设置权限。要打开时再运行命令取消限制,也不是太麻烦。

    eg2.让用户edwin不能打开e:\test\apian.rmvb 这部电影。当然也可以限制图片,程序,word文档的打开哦。

    命令:

    cacls e:\test\apian.rmvb /p edwin:n

    取消限制:

    cacls e:\test\apian.rmvb /p edwin:f

    eg3:把D盘绿色软件文件夹里面的exe文件设置成只读[包括子文件夹里面的]。这样可以防止病毒感染exe文件。

    命令:

    d:
    cd d:\绿色软件
    cacls *.exe /t /p everyone:r
    

    **eg4:把E盘根目录下设置成只读,防止病毒感染E盘根目录。因为很多U盘病毒会感染根目录,在根目录下新生成一个文件夹及文件比如 autorun.inf、setup.exe、a2de3d3.exe、autorun.exe。有些恶性病毒很厉害。弄得你重装系统都无法解决病毒问题。因为这些在非系统目录根目录的病毒存在当你单纯格式化C盘重装系统之后,第一次启动时打开D盘等非系统盘的时候病毒在次感染C盘。如果把非系统盘根目录设置成只读的话就可以防止病毒生成这些文件。当然不影响根目录下文件的删除哦。但是会影响你自己建立文件夹或在根目录下复制进文件。所有建议开始把根目录下的文件夹建立好。文件放到子文件夹里面。或者在你想在比如D盘根目录下建立一个文件夹时,先用命令行取消根目录只读。虽然有点麻烦,但是好处多余坏处 哦。

    命令:
    cacls e:\ /p everyone:r

    解除根目录只读:
    cacls e:\ /p everyone:f

    问题:既然我可以用命令来加密,是不是别人也可以用命令来解密?

    回答:是的。只要有管理员权限的账户都可以运行命令来设置权限。因此需要保护好你管理员账户的密码,否则别人可以获取你电脑管理员账户权限。

    问题:用这些命令的注意点

    回答:
    1、尽量不要对系统文件及文件夹设置权限。因为那样可能会到时系统出现严重错误的。
    2、如果要重装系统,那么之前尽量把加密的解密。如果是用ghost恢复就不需要了。
    3、再次强调,所在盘符必须是ntfs的才行哦。

    Icacls

    Note: Icacls (第一个是大写的i,倒数第二个是小写的L).

    Icacls 是一种命令行工具,它显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。Icacls.exe 替换了 Cacls.exe 工具用于查看和编辑 DACL。ICACLS 是 Windows Server 2003 SP2 中 CACLS 工具的升级版本,可用于从恢复控制台重设文件中的帐户控制列表 (ACL) 以及备份 ACL。与 CACLS 不同的是,ICACLS 可以正确地传送对继承的 ACL 的更改和创建。有关 ICACLS 的使用及命令的更多信息,可以通过在命令提示符下运行icacls /?进行访问。这里的I应该是Improved upgrade of cacls.

    
    icacls <FileName> [/grant[:r] <Sid>:<Perm>[...]] [/deny <Sid>:<Perm>[...]] [/remove[:g|:d]] <Sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<Policy>[...]]
    
    icacls <Directory> [/substitute <SidOld> <SidNew> [...]] [/restore <ACLfile> [/c] [/l] [/q]]
    
    /t          执行当前目录及其子目录中的所有指定文件上的操作。
    /c          继续操作而不考虑文件的任何错误。 仍将显示错误消息。
    /l          执行上一个符号链接,而不是其目标的操作。
    /q          禁止显示成功消息。
    
    
    
    ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
        将匹配名称的文件和文件夹的 DACL 存储到 aclfile 中以便将来与
        /restore 一起使用。请注意,未保存 SACL、所有者或完整性标签。
    
    ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
                     [/C] [/L] [/Q]
        将存储的 DACL 应用于目录中的文件。
    
    ICACLS name /setowner user [/T] [/C] [/L] [/Q]
        更改所有匹配名称的所有者。该选项不会强制更改所有身份;
        使用 takeown.exe 实用程序可实现该目的。
    
    ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
        查找包含显式提及 SID 的 ACL 的所有匹配名称。
    
    ICACLS name /verify [/T] [/C] [/L] [/Q]
        查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件。
    
    ICACLS name /reset [/T] [/C] [/L] [/Q]
        为所有匹配文件使用默认继承的 ACL 替换 ACL。
    
    ICACLS name [/grant[:r] Sid:perm[...]]
           [/deny Sid:perm [...]]
           [/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
           [/setintegritylevel Level:policy[...]]
    
        /grant[:r] Sid:perm 授予指定的用户访问权限。如果使用 :r,
            这些权限将替换以前授予的所有显式权限。
            如果不使用 :r,这些权限将添加到以前授予的所有显式权限。
    
        /deny Sid:perm 显式拒绝指定的用户访问权限。
            将为列出的权限添加显式拒绝 ACE,
            并删除所有显式授予的权限中的相同权限。
    
        /remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
            :g,将删除授予该 SID 的所有权限。使用
            :d,将删除拒绝该 SID 的所有权限。
    
        /setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有
            匹配文件。要指定的级别为以下级别之一:
                L[ow]
                M[edium]
                H[igh]
            完整性 ACE 的继承选项可以优先于级别,但只应用于目录。
    
        /inheritance:e|d|r
            e - 启用继承
            d - 禁用继承并复制 ACE
            r - 删除所有继承的 ACE
    
    
    注意:
        Sid 可以采用数字格式或友好的名称格式。如果给定数字格式,那么请在 SID 的开头添加一个 *。
    
        /T 指示在以该名称指定的目录下的所有匹配文件/目录上
            执行此操作。
    
        /C 指示此操作将在所有文件错误上继续进行。仍将显示错误消息。
    
        /L 指示此操作在符号链接本身而不是其目标上执行。
    
        /Q 指示 icacls 应该禁止显示成功消息。
    
        ICACLS 保留 ACE 项的规范顺序:
                显式拒绝
                显式授予
                继承的拒绝
                继承的授予
    
        perm 是权限掩码,可以两种格式之一指定:
            简单权限序列:
                    N - 无访问权限
                    F - 完全访问权限
                    M - 修改权限
                    RX - 读取和执行权限
                    R - 只读权限
                    W - 只写权限
                    D - 删除权限
            在括号中以逗号分隔的特定权限列表:
                    DE - 删除
                    RC - 读取控制
                    WDAC - 写入 DAC
                    WO - 写入所有者
                    S - 同步
                    AS - 访问系统安全性
                    MA - 允许的最大值
                    GR - 一般性读取
                    GW - 一般性写入
                    GE - 一般性执行
                    GA - 全为一般性
                    RD - 读取数据/列出目录
                    WD - 写入数据/添加文件
                    AD - 附加数据/添加子目录
                    REA - 读取扩展属性
                    WEA - 写入扩展属性
                    X - 执行/遍历
                    DC - 删除子项
                    RA - 读取属性
                    WA - 写入属性
            继承权限可以优先于每种格式,但只应用于
            目录:
                    (OI) - 对象继承
                    (CI) - 容器继承
                    (IO) - 仅继承
                    (NP) - 不传播继承
                    (I) - 从父容器继承的权限
    
    
            icacls file /grant Administrator:(D,WDAC)
            - 将授予用户对文件删除和写入 DAC 的管理员权限。
    
            icacls file /grant *S-1-1-0:(D,WDAC)
            - 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限。
    

    详细示例

    操作的文件夹结构:

    在这里插入图片描述

    1.ICACLS /save & /restore

    d:
    cd d:\macds
    
    ICACLS 1.txt /save aclf /T    % 将macds目录下所有的1.txt文件的ACL信息存储到文件aclf %
    ICACLS 1.txt /restore aclf % 利用文件aclf中的数据还原macds目录下所有的1.txt文件的ACL信息%
    
    cd \
    ICACLS d:\macds\* /save aclf2 /T
    ICACLS d:\macds /restore aclf2
    

    aclf文件内容

    1.txt
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    macds\1.txt
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    

    aclf2文件内容

    1.txt
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    aclf
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    godr.php
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    hy.doc
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    macds
    D:(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)
    test
    D:(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)(A;ID;0x1200a9;;;BU)(A;OICIIOID;GXGR;;;BU)
    macds\1.txt
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    macds\2.so
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    test\ght.xls
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    test\hy.doc
    D:(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1301bf;;;AU)(A;ID;0x1200a9;;;BU)
    

    2. ICACLS /setowner

    $ cd d:\macds
    $ dir /q test % 查看test目录下所有文件的所有者信息%
    
    2019/07/14  23:10    <DIR>          BUILTIN\Administrators .
    2019/07/14  23:10    <DIR>          BUILTIN\Administrators ..
    2019/07/14  23:10                 0 BUILTIN\Administrators ght.xls
    2019/07/14  23:10                 0 BUILTIN\Administrators hy.doc
    
    % 设置test目录下所有文件的所有者为jsword用户(jsword用户必须存在)%
    % 否则,会提示: 帐户名与安全标识间无任何映射完成。%
    $ ICACLS test /setowner jsword /T
    
    $ dir /q test
    
    2019/07/14  23:10    <DIR>          jscompu\jsword         .
    2019/07/14  23:10    <DIR>          BUILTIN\Administrators ..
    2019/07/14  23:10                 0 jscompu\jsword         ght.xls
    2019/07/14  23:10                 0 jscompu\jsword         hy.doc
    
    

    windows sid 简介及相关的whoami dos命令

    refer: Windows中的SID详解

    
    WhoAmI 有三种使用方法:
    
    语法 1: WHOAMI [/UPN | /FQDN | /LOGONID]
    语法 2: WHOAMI { [/USER] [/GROUPS] [/PRIV] } [/FO format] [/NH]
    语法 3: WHOAMI /ALL [/FO format] [/NH]
    
    描述:
        这个工具可以用来获取本地系统上当前用户(访问令牌)的用户名和组信息,
        以及相应的安全标识符(SID)、特权和登录标识符(logon ID)。例如,谁是
        当前登录的用户? 如果没有指定开关,工具用 NTLM 格式(域\用户名)显示
        用户名。
    
    参数列表:
        /UPN         用用户主体 (User Principal) 格式显示用户名名称 (UPN)格式。
        /FQDN        用完全合格的 (Fully Qualified) 格式显示用户名可分辨名称(FQDN) 格式。
        /USER        显示当前用户的信息以及安全标识符 (SID)。
        /GROUPS      显示当前用户的组成员信息、帐户类型和安全标识符 (SID) 和属性。
        /PRIV        显示当前用户的安全特权。
        /LOGONID     显示当前用户的登录 ID。
        /ALL         显示当前用户名、属于的组以及安全标识符(SID) 和当前用户访问令牌的特权。
        /FO  format  指定要显示的输出格式。有效值为 TABLE、LIST、CSV。CSV 格式不显示列标题。默认格式是 TABLE。
        /NH          指定在输出中不显示列标题。只对 TABLE 和 CSV 格式有效。
        /?                      显示此帮助消息。
    
    示例:
        WHOAMI
        WHOAMI /UPN
        WHOAMI /FQDN
        WHOAMI /LOGONID
        WHOAMI /USER
        WHOAMI /USER /FO LIST
        WHOAMI /USER /FO CSV
        WHOAMI /GROUPS
        WHOAMI /GROUPS /FO CSV /NH
        WHOAMI /PRIV
        WHOAMI /PRIV /FO TABLE
        WHOAMI /USER /GROUPS
        WHOAMI /USER /GROUPS /PRIV
        WHOAMI /ALL
        WHOAMI /ALL /FO LIST
        WHOAMI /ALL /FO CSV /NH
        WHOAMI /?
    

    3. ICACLS /findsid

    $ WHOAMI /USER /FO LIST % 显示当前用户的信息以及安全标识符 %
    
    用户信息
    ----------------
    
    用户名: jscompu\jsword
    SID:    S-1-5-21-3817771755-3330119566-3374898986-1000
    
    %  查找包含显式提及 SID(S-1-1-0) 的 ACL 的所有匹配名称。%
    $  ICACLS c:\* /findsid *S-1-1-0
    
    发现 SID: c:\$360Section。
    发现 SID: c:\Documents and Settings。
    发现 SID: c:\ProgramData。
    发现 SID: c:\Users。
    
    

    4. ICACLS /verify

    
    % 在C盘的所有目录及子目录下查找其 ACL 不规范或长度与 ACE 计数不一致的所有文件 %
    $ ICACLS C:\*.txt /verify /T
    
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-1000\$I1DNCWV.txt
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-1000\$IBKXJNZ.txt
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-1000\$R1DNCWV.txt
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-1000\$RBKXJNZ.txt
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-501\$I341E2Y.txt
    已处理的文件: C:\$Recycle.Bin\S-1-5-21-3817771755-3330119566-3374898986-501\$R341E2Y.txt
    C:\Documents and Settings\*.txt: 拒绝访问。
    已成功处理 6 个文件; 处理 1 个文件时失败
    
    

    5. ICACLS /reset

    $ ICACLS d:\macds\1.txt    % 查看d:\macds\1.txt的ACL信息 %
    
    d:\macds\1.txt BUILTIN\Administrators:(I)(F)
                   NT AUTHORITY\SYSTEM:(I)(F)
                   NT AUTHORITY\Authenticated Users:(I)(M)
                   BUILTIN\Users:(I)(RX)
    已成功处理 1 个文件; 处理 0 个文件时失败
    
    % 为所有匹配文件使用默认继承的 ACL 替换 ACL。 %
    $ ICACLS d:\macds\1.txt /reset /T
    
    已处理的文件: d:\macds\1.txt
    已处理的文件: d:\macds\macds\1.txt
    已成功处理 2 个文件; 处理 0 个文件时失败
    
    $ ICACLS d:\macds\1.txt
    
    

    6. ICACLS /grant /deny /remove /setintegritylevel

    
    % 将授予用户对文件删除和写入DAC的管理员权限 %
    icacls d:\macds\1.txt /grant Administrator:(D,WDAC)
    
    % 将授予由 sid S-1-1-0 定义的用户对文件删除和写入 DAC 的权限 %
    icacls d:\macds\1.doc /grant *S-1-1-0:(D,WDAC)
    
    % 拒绝用户jsword对文件d:\macds\test执行删除,读取控制,写入DAC的权限 %
    % 即用户jsword对test不能执行rd...%
    icacls d:\macds\test /deny  jsword:(DE,RC,WDAC)
    
    % 取消jsword对test的所有拒绝访问权限%
    icacls d:\macds\test /remove:d jsword /T
    
    icacls d:\macds\test\* reset /T
    
    % 添加对Authenticated Users 的授权。 %
    $ icacls test\ /grant "Authenticated Users":(M)
    
    % 删除对Authenticated Users 的授权. %
    $ icacls test\ /remove "Authenticated Users"
    
    % 对test目录设置完整性级别. %
    % 注意级别不能放到()中 %
    $ icacls test /setintegritylevel (OI)(NP)(IO)H
    
    
    

    注意事项:

    1、对于继承的声明要放到具体权限之前。例如:(OI)(CI)(IO)(M)是对的,但(M)(OI)(CI)(IO)会提示无效的参数。

    2、简单权限序列中的权限可以放到()里边,也可以不加()。例如授予用户yifan修改权限可以写为icacls <目录|文件> /grant yifan:Micacls <目录|文件> /grant yifan:(M)

    3、若只授予指定用户特定权限,则必须将权限放到()中。例如授予用户yifan读取目录权限icacls <目录> /grant yifan:(AD)是对的,如果是icacls <目录> /grant yifan:AD将提示无效的参数。

    TAKEOWN

    
    TAKEOWN [/S system [/U username [/P [password]]]]
            /F filename [/A] [/R [/D prompt]]
    
    描述:
        该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问的文件访问权。
    
    参数列表:
        /S           system          指定要连接到的远程系统。
        /U           [domain\]user   指定用户上下文,命令在此上下文中执行。
        /P           [password]      指定给定用户上下文的密码。如果省略,提示输入。
        /F           filename        指定文件名或目录名模式。可以用通配符 "*"
                                     指定模式。允许共享名\文件名。
        /A                           将所有权给于管理员组,而不是当前用户。
        /R                           递归: 指示工具运行于指定的目录和子目录里的文件上。
        /D           prompt          当前用户在一个目录里没有“列出文件夹”
                                     权限时,使用默认答案。当在子目录里进行
                                     递归 (/R) 操作时会发生这种情况。用有效
                                     值 "Y" 获取所有权或用 "N" 跳过。
    
        /?                           显示此帮助消息。
    
        注意: 1) 如果指定了 /A,文件所有权会给与当前登录的用户。
              2) 不支持用 "?""*" 混合的模式。
              3) /D 用于抑制确认提示。
    
    示例:
        TAKEOWN /?
        TAKEOWN /F lostfile
        TAKEOWN /F \\system\share\lostfile /A
        TAKEOWN /F directory /R /D N
        TAKEOWN /F directory /R /A
        TAKEOWN /F *
        TAKEOWN /F C:\Windows\System32\acme.exe
        TAKEOWN /F %windir%\*.txt
        TAKEOWN /S system /F MyShare\Acme*.doc
        TAKEOWN /S system /U user /F MyShare\foo.dll
        TAKEOWN /S system /U domain\user /P password /F share\filename
        TAKEOWN /S system /U user /P password /F Doc\Report.doc /A
        TAKEOWN /S system /U user /P password /F Myshare\*
        TAKEOWN /S system /U user /P password /F Home\Logon /R
        TAKEOWN /S system /U user /P password /F Myshare\directory /R /A
    
    % 强制将当前目录下的所有文件及文件夹、子文件夹下的所有者更改为管理员组(administrators)命令 %
    $ takeown /f * /a /r /d y
    
    

    参考文章

    1. cacls命令设置文件及其文件夹权限的方法
    2. windows中使用icacls命令还原文件夹的权限设置
    3. 微软官网icacls:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753525(v=ws.10)
    4. Windows中的SID详解
    5. Cacls和ICacls
    展开全文
  • Linux文件权限笔记

    千次阅读 2018-07-24 20:40:18
    Linux文件权限 1. 使用文件权限符 2. 默认文件权限 3. 改变权限 3.1 options 3.2 八进制模式 3.3 符号模式 4. 改变所属关系 4.1 chown 4.2 chgrp 5. References Linux文件权限 1. 使用文件权限符 ls...

    Linux文件权限

    1. 使用文件权限符

    ls命令可以查看Linux系统上的文件、目录和设备的权限

    $ ls –l
    total 68
    -rw-rw-r-- 1 rich rich 50 2010-09-13 07:49 file1.gz
    -rw-rw-r-- 1 rich rich 23 2010-09-13 07:50 file2
    -rw-rw-r-- 1 rich rich 48 2010-09-13 07:56 file3
    -rw-rw-r-- 1 rich rich 34 2010-09-13 08:59 file4
    -rwxrwxr-x 1 rich rich 4882 2010-09-18 13:58 myprog
    -rw-rw-r-- 1 rich rich 237 2010-09-18 13:58 myprog.c
    drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test1
    drwxrwxr-x 2 rich rich 4096 2010-09-03 15:12 test2
    $
    

    输出结果的第一个字段就是描述文件和目录权限的编码。这个字段的第一个字符代表了对象的类型:

    -代表文件
    d代表目录
    l代表链接
    c代表字符型设备
    b代表块设备
    n代表网络设备
    

    之后有3组三字符的编码,每组定义了3种访问权限:

    r代表对象是可读的
    w代表对象是可写的
    x代表对象是可执行的
    

    若没有某种权限,在该权限位会出现单破折线。这3组权限分别对应对象的3个安全级别:

    • 对象的属主

    • 对象的属组

    • 系统的其他用户

    Linux文件权限

    例子:

    -rwxrwxr-x 1 rich rich 4882 2010-09-18 13:58 myprog
    

    文件myprog有下面3组权限:

    rwx: 文件的属主(设为登录名rich)
    rwx: 文件的属组(设为组名rich)
    r-x: 系统上的其他人
    

    这些权限说明登录名为rich的用户可以读取、写入以及执行这个文件(可以看作有全部权限)。类似地,rich组的成员也可以读取、写入和执行这个文件。然而不属于rich组的其他用户只能读取和执行这个文件:w被单破折线取代了,说明这个安全级别没有写入权限。

    2. 默认文件权限

    umask命令用来设置所创建文件和目录的默认权限。

    $ touch newfile
    $ ls -al newfile
    -rw-r--r-- 1 rich rich 0 Sep 20 19:16 newfile
    $
    

    touch命令用分配给我的用户账户的默认权限创建了这个文件。umask命令可以显示和设置这个默认权限。

    $ umask
    0022
    $
    

    第一位代表了一项特别的安全特性,叫作粘着位(sticky bit),后面的3位表示文件或目录对应的umask八进制值。要理解umask是怎么工作的,得先理解八进制模式的安全性设置。

    八进制模式的安全性设置先获取这3个rwx权限的值,然后将其转换成3位二进制值,用一个八进制值来表示。在这个二进制表示中,每个位置代表一个二进制位。因此,如果读权限是唯一置位的权限,权限值就是r--,转换成二进制值就是100,代表的八进制值是4。下表列出了可
    能会遇到的组合。

    这里写图片描述

    八进制模式先取得权限的八进制值,然后再把这三组安全级别(属主、属组和其他用户)的八进制值顺序列出。因此,八进制模式的值664代表属主和属组成员都有读取和写入的权限,而其他用户都只有读取权限。

    八进制的umask值是0022,而上面所创建的文件的八进制权限却是644。umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限。要把umask值从对象的全权限值中减掉。对文件来说,全权限的值是666(所有用户都有读和写的权限);而对目录来说,则是777(所有用户都有读、写、执行权限)。所以在上例中,文件一开始的权限是666,减去umask值022之后,剩下的文件权限就成了644。

    在大多数Linux发行版中,umask值通常会设置在/etc/profile启动文件中,可以用umask命令为默认umask设置指定一个新值。

    $ umask 026
    $ touch newfile2
    $ ls -l newfile2
    -rw-r----- 1 rich rich 0 Sep 20 19:46 newfile2
    $
    

    在把umask值设成026后,默认的文件权限变成了640,因此新文件现在对组成员来说是只读的,而系统里的其他成员则没有任何权限。umask值同样会作用在创建目录上。

    $ mkdir newdir
    $ ls -l
    drwxr-x--x 2 rich rich 4096 Sep 20 20:11 newdir/
    $
    

    由于目录的默认权限是777,umask作用后生成的目录权限不同于生成的文件权限。umask值026会从777中减去,留下来751作为目录权限设置。

    3. 改变权限

    chmod命令用来改变文件和目录的安全性设置。该命令的格式如下:

    chmod options mode file

    mode参数可以使用 八进制模式符号模式 进行安全性设置。八进制模式设置非常直观,直接用期望赋予文件的标准3位八进制权限码即可。

    3.1 options

    -c或--changes:效果类似“-v”参数,但仅回报更改的部分
    -f或--quiet或--silent:不显示错误信息
    -R或--recursive:递归处理,将指令目录下的所有文件及子目录一并处理
    -v或--verbose:显示指令执行过程
    

    3.2 八进制模式

    $ chmod 760 newfile
    $ ls -l newfile
    -rwxrw---- 1 rich rich 0 Sep 20 19:16 newfile
    $
    

    八进制文件权限会自动应用到指定的文件上。

    3.3 符号模式

    与通常用到的3组三字符权限字符不同,chmod命令采用了另一种方法。下面是在符号模式下指定权限的格式。

    [ugoa…][[+-=][rwxXstugo…]

    • 第一组字符定义了权限作用的对象:

      u代表用户
      g代表组
      o代表其他
      a代表上述所有
      
    • 第二组的符号表示在现有权限基础上增加权限(+),还是在现有权限基础上移除权限(-),或是将权限设置成后面的值(=)。

    • 第三组符合代表作用到设置上的权限

      X:如果对象是目录或者它已有执行权限,赋予执行权限。
      s:运行时重新设置UID或GID。
      t:保留文件或目录。
      u:将权限设置为跟属主一样。
      g:将权限设置为跟属组一样。
      o:将权限设置为跟其他用户一样。
      

      例子:

      $ chmod o+r newfile
      $ ls -lF newfile
      -rwxrw-r-- 1 rich rich 0 Sep 20 19:16 newfile*
      $
      

      不管其他用户在这一安全级别之前都有什么权限,o+r都给这一级别添加读取权限。

      $ chmod u-x newfile
      $ ls -lF newfile
      -rw-rw-r-- 1 rich rich 0 Sep 20 19:16 newfile
      $
      

      u-x移除了属主已有的执行权限。注意ls命令的-F选项,它能够在具有执行权限的文件名后加一个星号。

    options为chmod命令提供了另外一些功能。-R选项可以让权限的改变递归地作用到文件和子目录。你可以使用通配符指定多个文件,然后利用一条命令将权限更改应用到这些文件上。

    4. 改变所属关系

    4.1 chown

    chown命令用来改变文件的属主,格式如下:

    chown options owner[.group] file

    可用登录名或UID来指定文件的新属主。

    # chown dan newfile
    # ls -l newfile
    -rw-rw-r-- 1 dan rich 0 Sep 20 19:16 newfile
    #
    

    chown命令也支持同时改变文件的属主和属组。

    # chown dan.shared newfile
    # ls -l newfile
    -rw-rw-r-- 1 dan shared 0 Sep 20 19:16 newfile
    #
    

    可以只改变一个目录的默认属组。

    # chown .rich newfile
    # ls -l newfile
    -rw-rw-r-- 1 dan rich 0 Sep 20 19:16 newfile
    #
    

    如果Linux系统采用和用户登录名匹配的组名,可以只用一个条目就改变二者。

    # chown test. newfile
    # ls -l newfile
    -rw-rw-r-- 1 test test 0 Sep 20 19:16 newfile
    #
    

    chown命令采用一些不同的选项参数。-R选项配合通配符可以递归地改变子目录和文件的所属关系。-h选项可以改变该文件的所有符号链接文件的所属关系。

    只有root用户能够改变文件的属主。任何属主都可以改变文件的属组,但前提是属主必须是原属组和目标属组的成员。

    4.2 chgrp

    chgrp命令用来改变文件的默认属组。

    $ chgrp shared newfile
    $ ls -l newfile
    -rw-rw-r-- 1 rich shared 0 Sep 20 19:16 newfile
    $
    

    用户账户必须是这个文件的属主,除了能够更换属组之外,还得是新组的成员。现在shared组的任意一个成员都可以写这个文件了。这是Linux系统共享文件的一个途径。

    5. References

    《Linux命令行与shell脚本编程大全》Richard Blum Christine Bresnahan
    http://man.linuxde.net/chmod

    展开全文
  • Linux 十四 修改文件操作权限 用户文件权限详解

    千次阅读 多人点赞 2019-06-01 22:54:22
    文章目录Linux 权限ls -l 中显示的内容如下:0-9位说明rwx权限详解 Linux 权限 ls -l 中显示的内容如下: ...ls -l 文件目录权限解析案例 Linux 权限管理 chmod 改变权限 chown 改变所有者 chgrp 改变所属组

    Linux 权限

    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

    1. 从左到右的10个字符表示,如图1-154所示:
      在这里插入图片描述
      如果没有权限,就会出现减号[- ]而已。从左至右用0-9这些数字来表示:
      在这里插入图片描述
    ls -l 中显示的内容如下:
    -rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt
    
    0-9位说明
    1. 0位确定文件类型(说明: -:普通文件, d:目录,l : 连接文件, c: 字符设备文件[键盘,鼠标] b:块设备文件[硬盘] )
    2. 1-3位确定所有者(该文件的所有者)拥有该文件的权限。R: 读 , w : 写权限 x: 执行权限
    3. 4-6位确定所属组(同用户组的)拥有该文件的权限
    4. 7-9位确定其他用户拥有该文件的权限
    5. 1: 如果是文件,表示硬链接的数目, 如果是目录,则表示有多少个子目录
    6. 1213: 表示文件大小,如果是目录,则统一为 4096
    rwx权限详解

    rwx作用到文件(重要)

    1. [ r ]代表可读(read): 可以读取,查看
    2. [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
    3. [ x ]代表可执行(execute):可以被执行

    rwx作用到目录(重要)

    1. [ r ]代表可读(read): 可以读取,ls查看目录内容
    2. [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
    3. [ x ]代表可执行(execute):可以进入该目录
    ls -l 文件目录权限解析案例
    -rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
    
    1. 10个字符确定不同用户能对文件干什么
      第一个字符代表文件类型: 文件 (-),目录(d),链接(l)
      其余字符每3个一组(rwx) 读(r) 写(w) 执行(x)
      第一组rwx : 文件拥有者的权限是读、写和执行
      第二组rw- : 与文件所在组的用户的权限是读、写但不能执行
      第三组r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
    2. 可用数字表示为: r=4,w=2,x=1 因此rwx=4+2+1=7
      1 文件:硬连接数或 目录:子目录数
      root 用户
      root
      1213 文件大小(字节),如果是文件夹,显示 4096字节
      Feb 2 09:39 最后修改日期
      abc 文件名

    在这里插入图片描述

    1. 如果查看到是文件:链接数指的是硬链接个数。创建硬链接方法
    ln [原文件] [目标文件]	 
    ##示例
    ln home/dssz/houge.txt ./hg.txt
    
    1. 如果查看的是文件夹:链接数指的是子文件夹个数。
    ls -al home/
    

    Linux 权限管理

    chmod 改变权限

    通过chmod指令,可以修改文件或者目录的权限
    在这里插入图片描述

    1. 第一种方式:+-= 变更权限
      1. 注:u:所有者 g:所有组 o:其他人a:所有人(ugo的总和)
    chmod   u=rwx,g=rx,o=x   文件、目录 【表示:给所有者rwx, 给所在组的用户 rx, 给其他人 x】
    chmod   o+w    文件、目录 【表示:给其它用户增加w 的权限】
    chmod   a-x    文件、目录	【表示:给所有用户 去掉 x权限】
    

    示例

    abc文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。

    chmod  u=rwx, g=rx ,o=rx   abc
    

    abc文件的所有者除去执行的权限,增加组写的权限

    chmod  u-x, g+w abc
    

    abc文件的所有用户添加读的权限

    chmod  a+r  abc  
    
    1. 第二种方式:通过数字变更权限

    数字代表的权限:r=4 w=2 x=1 rwx=4+2+1=7

    chmod u=rwx,g=rx,o=x    文件、目录 
    ## 相当于 
    chmod   751  文件、目录
    

    示例
    abc.txt 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现:

    chmod  u=rwx, g=xr, o=xr abc.txt
    chmod 755 abc.txt
    
    chown 改变所有者
    chown [选项] [最终用户] [文件或目录]		(功能描述:改变文件或者目录的所有者)
    chown  newowner  file  改变文件的所有者
    chown  newowner:newgroup  file  改变用户的所有者和所有组
    

    在这里插入图片描述
    示例
    修改文件所有者

    chown tom houge.txt
    

    递归改变文件所有者和所有组

    chown -R tom:leader home/
    
    chgrp 改变所属组
    chgrp [最终用户组] [文件或目录]	(功能描述:改变文件或者目录的所属组)
    chgrp newgroup file  改变文件的所有组
    

    示例

    请将/home/abc .txt文件的所在组修改成 shaolin (少林)

    chgrp  shaolin  /home/abc.txt
    

    请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)

    chgrp  -R  shaolin /home/kkk 
    
    展开全文
  • Linux文件权限详解

    万次阅读 多人点赞 2018-12-30 19:57:00
    文章目录Linux文件权限详解一、文件权限二、修改文件访问权限的方法三、UMASK值四、三种特殊权限suid、sgid、sticky(sticky权限工作环境中相对常用)五、ACL访问控制列表六、文件权限操作的常用命令 Linux文件权限...
  • git忽略文件权限

    千次阅读 2018-08-29 00:05:41
    有时文件权限改变也会被git认为是修改,但是这不是我们想要的效果,可以使用以下命令让git忽略文件的权限 git config core.filemode false
  • Linux文件权限修改

    千次阅读 2020-11-18 21:11:25
    Linux文件权限修改 一.文件属性查看 使用root创建一个1.txt文件进行实例 touch /opt/1.txt 查看文件属性 ls -l /opt/1.txt 可以看到图中红色框框内列出了文件的信息属性,从左到有进行性详解 1. -rw-r--r-- ...
  • Linux 文件权限

    万次阅读 多人点赞 2018-06-02 22:48:33
    和周围人交流发现,文件权限这一块似乎是很多人弄得不明不白的地方,就是知道这么个东西,但是看也看不太懂,知道得也不清楚,毕竟也可能是有些同学还没学到需要清楚了解文件权限的地方,没有怎么去看过或处理过与...
  • php文件权限问题

    千次阅读 2019-01-29 13:45:47
    以下整理来自PHP在Linxu下执行时的文件权限,结合自身的理解和疑惑 一、基本知识 文件有三种类型的权限,例如7=4+2+1,表示读写执行3个权限都有 用ll命令查看abc文件夹: d开头的为目录,-开头为文件,还有l...
  • 如何修改hosts文件权限

    千次阅读 2020-02-14 13:14:06
    1. 打开hosts文件属性,选择“安全”,点击编辑 2. 修改权限 选中当前使用的用户名,将其“修改”、“写入”登需要的权限改为允许,点击应用即可。 ...
  • centos7.3下关于文件权限

    千次阅读 2018-08-08 14:30:36
    文件共享时要考虑的权限问题: 1、此文件的属主有何权限 2、属组有何权限 3、其他人有何权限权限:ls -ld 文件名 权限值:r可读4 w可写2 x可执行1 权限中用户的类别:用户自己(属主)user 自家人(属组)...
  • linux下文件权限更改

    万次阅读 2018-11-07 18:44:51
    文件权限 #####1.文件属性的查看 ls -l filename -|rw-r--r--.|1| root| root| 46 |Oct 1 05:03 |filename — ————————— — ———— ———— —— ———————————— ——————...
  • Linux文件权限 出炉啦, 快进来学习收藏吧!

    千次阅读 多人点赞 2020-07-02 17:43:51
    文件权限 一. 查看文件的权限与归属 1.1 介绍 1.2 修改文件的权限——chmod命令 1.3 修改文件的归属——chown命令 二.文件的特殊权限 2.1 SUID特殊权限介绍 2.2 SGID特殊权限介绍 2.3 SBIT特殊权限介绍 三...
  • 文件权限设置详解

    千次阅读 2018-03-18 17:00:53
    转载于:https://www.cnblogs.com/zhangchengxiang/p/5193816.html一、前言 Linux下所有资源、设备均被视作文件来操作,而文件权限则是决定用户可各文件操作的范围,无论是平时使用Linux,还是写程序均涉及这方面。...
  • Python3通过chmod修改目录或文件权限

    千次阅读 2020-06-07 12:53:16
    linux中,文件权限分为"所有者、组、其他用户"三个角色,每个角色由3个bit位表示它的权限,3bit从左到右分别为读写执行三个权限,3bit的值范围为0~7。所以如果直接在linux执行chmod 777 xxx.sh代表,将xxx.sh文件...
  • Linux文件权限的基本介绍

    万次阅读 2019-01-16 15:38:26
    权限的基本介绍 ls -l 中显示的内容如下: -rwxrw-r-- 1 root police 1213 Feb 2 09:39 abc.txt 说明 1) 第0位确定文件类型(说明: -...2) 第1-3位确定所有者(该文件的所有者)拥有该文件权限。 R: 读 , w ...
  • git 修改文件权限

    千次阅读 2019-12-15 12:45:49
    git 修改文件权限 问题分析 Windows 下的文件是否可执行是由扩展名决定的,但是linux下是否可执行是文件的可执行属性决定的。 有时候windows 下开发写的脚本程序,提交的git 仓库中时就有可执行权限,以便在linux和...
  • wsl文件权限问题

    千次阅读 2019-12-20 13:41:52
    文章目录简介挂载文件权限windows wsl创建文件权限vscode Remote-wsl插件创建目录权限 简介   随着windows的子系统功能越来越完善,更多的开发者尝试使用wsl进行开发,但是wsl在文件权限上与linux有很大的不同,...
  • Linux下更改文件权限

    万次阅读 多人点赞 2019-04-10 10:06:20
    查看文件权限 修改文件权限 查看文件权限 查看文件权限可以通过ls -l命令查看,如下所示: 如果只想查看某一个文件的权限,可以使用grep,如下所示: 可以发现,每一个文件的第一个字段都是由r、w、x等10个...
  • Linux 用户和权限管理:用户/组增删改查、文件权限

    万次阅读 多人点赞 2018-05-27 21:54:23
    03_用户和权限管理
  • mac 查看、修改文件权限的命令

    千次阅读 2019-09-02 21:27:19
    1、查看某个文件权限的命令 ls -l + 要查看文件的文件名 2、查看某个文件夹里所有文件/文件夹的权限 ls -l + 文件夹名 3、如果要查看某个文件夹的权限,需要在该文件夹外部目录下执行 ls -l 来打印所有文件/...
  • 在mac 查看、修改文件权限的命令

    万次阅读 2018-05-31 10:19:45
    1、查看文件/文件夹权限:1、查看某个文件权限的命令ls -l + 要查看文件的文件名12、查看某个文件夹里所有文件/文件夹的权限ls -l + 文件夹名13、如果要查看某个文件夹的权限,需要在该文件夹外部目录下执行ls -l1来...
  • .ssh目录文件权限配置【转载】

    千次阅读 2019-01-07 13:37:19
    加入想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,也就是说,我要修改fileA文件夹的权限,fileA 文件中的子文件的权限也一并修改,要使用参数-R表示启动递归处理。 例如: 如上...
  • docker内操作文件权限

    千次阅读 2020-07-11 21:37:15
    docker操作文件权限 解决 需要设置容器内与宿主机uid一致 分别查看data文件容器内外的uid user的属组,属主相同 若容器内:uid=1000, 设置宿主机的data 文件uid=1000 id user 查看uid chown -R 1000 data ...
  • Shell——文件权限

    千次阅读 2018-11-13 18:42:41
    在linux中,文件权限是一个很重要的属性。因为linux是一个认为用户什么都懂的多用户多任务操作系统,所以需要用权限来控制不同用户对不同文件的访问。 权限的表示方法 权限有两种表示方法:字母与数字 权限 数字...
  • android读写文件权限管理

    千次阅读 2019-01-14 17:39:32
    //读写文件权限申请 if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) { // 判断是否有这个权限,是返回PackageManager.PERMISSION_GRANTED,否则是PERMISSION_DENIED // 这里我们要给应用授权所以是!...
  • linux-root都不能修改文件权限

    千次阅读 2020-08-14 21:08:20
    昨天在工作中遇到一个超越我现有认知的知识盲区,经过自己...从上图可以看到,owner 为HwHiAiUser, group 为HwHiAiUser,当前用户为HwHiAiUser,libprotobuf.so文件权限为-r-xr-x---,目的是想要使others用户可能具有
  • Linux文件权限修改命令

    万次阅读 2019-07-19 13:28:44
    Linux命令权限修改命令 ...用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并使用 权限...另一方面也可以帮助用户组织文件,并为用户提供安全性保护。 权限 :1. r:读。2. w:写。3. x:执行 访问者 :...
  • Linux系统文件权限的管理

    万次阅读 2018-08-16 15:50:36
    文件权限是系统最底层安全设定方法之一,它保证文件可以被可用的用户做相应操作 2.权限的识别 利用以下命令进行查看: 对文件:ls -l file 对目录:ls -ld dir 3.权限的查看与理解 首先在/mnt目录下用touch /...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,711,658
精华内容 684,663
关键字:

文件权限