zoukankan      html  css  js  c++  java
  • 新建文件所属组设置

    问题来源

    问题场景1:在Linux进行开发Web程序,Web root目录下某些目录需要被www用户进行写操作,而开发过程中使用的用户假设为mn,新建的目录和文件默认用户/组为mn:mn,这对www用户来讲是不可写的。最简单的办法是使用chown -R mn:www xxx设置用户/组为mn:www。这样每次有新的文件都需要进行设置,十分不方便。

    问题场景2:对于运维人员来讲,需要在dirA目录下新建的文件为groupA组,在dirB目录下新建的文件为groupB组。

    解决办法

    使用Linux下的特殊权限位即可以实现。例如对于问题场景2中的情况,将dirA目录的用户组设置为groupA,然后添加SGID权限,即:

    chgrp groupA dirA/
    chmod g+s dirA/

    这样得到dirA的目录权限为

    drwxrwsr-x

    以后在dirA下新的目录具有相同的权限,且用户组为groupA;新建的文件用户组同样为groupA。

    如果是已经存在的目录需要同样的设置,使用如下命令:

    find /some/dir -type d -exec chgrp www {} +
    find /some/dir -type d -exec chmod g+s {} +

    NB: 上述命令的 {} + 表示将find查找到的所有目录添加到命令后进行执行,而不是对每一个查找到的目录执行一次。

    特殊权限知识

    Linux下的文件权限除了用户、组、其他的可读(r)、可写(w)、可执行(x)之外,还有三个特殊的权限位,它们是SUID、SGID、SBIT(粘滞位)。

    SUID

    s出现在文件所有者的x权限位上。
    SUID用于可执行文件,使得该文件在执行时具有该文件所有者的权限。
    对于没有可执行权限的文件设置SUID,该文件不会具体可执行权限。
    chmod u+s somefile
    

    如/usr/bin/passwd的文件。

    SGID

    s出现在文件所属组的x权限上。
    SGID用于文件和目录。

    对于目录,设置SGID,在该目录下新建的目录同样有SGID权限和所属组。
    对于文件,设置SGID,使用该文件执行时具有所属组的权限。
    chmod g+s somefile

    SBIT

    t出现在文件其他的x权限上。
    SBIT用于目录。

    设置了SBIT的目录,下新建的文件,只有自己和root可以进行删除。

    如/tmp目录。


  • 相关阅读:
    梯度下降法-4.向量化和数据标准化
    梯度下降法-3.实现线性回归中的梯度下降法
    梯度下降法-2.线性回归中的梯度下降法
    梯度下降法-1.原理及简单实现
    线性回归算法-5.更多思考
    TCP/IP协议
    TFTP 服务器
    python3 系统编程进程
    python3 私有化 属性property
    python3 面向对象
  • 原文地址:https://www.cnblogs.com/furzoom/p/7710124.html
Copyright © 2011-2022 走看看