• 番外8.1 Task


    ---------系统中有两个账号,分别是alex与arod,这两个账号除了支持自己的组,还共同支持一个名为project的组。如这两个账号需要共同拥有/srv/ahome/目录的开发权,且该目录不允许其他账号进入查阅,请问该目录的权限应如何设定?请先以传统权限说明,再以SGID的功能解析。 目标:了解为何项目开发时,目录最好设定SGID的权限。

    前提:多个账号支持同一组,且共同拥有目录的使用权。

    需求:需要使用root的身份运行chmod、chgrp等命令,帮用户设定好他们的开发环境。这也是管理员的重要任务之一。

    --------------

    项目分析:

                    00:创建共同组(project)

                    01:创建2个账户及相关数据;建立共同开发目录/srv/ahome

                    02:该目录不允许其他账号进入查阅

    =========================================================================

    利用chmod命令修改文件的特殊权限(SUID):

    只有二进制程序文件才可以设定SUID,其他类型的文件设置没有意义。 在赋予SUID权限后,该文件的执行者仅在程序运行时将拥有该文件拥有者的权限。 执行者必须要拥有该文件的执行权限(x)替换成S。

    修改文件与目录的默认权限与隐藏权限

    umask指定用户在建立文件或目录时的默认权限值。(我们只关注0 022后三位)

    假设我们想要自己创建的文件具有6(r+w),   同组成员具有修改编辑的权限(w)不只是只读权限,   采用下面命令修改文件权限共同编辑项目文件。那么默认的umask初始值022应变成002;

    chattr命令(了解就行!)

    a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件

    i:不得任意改动文件或目录。

    lsattr  -参数 文件或目录

    -a:将隐藏文件的属性也显示出来。 -d:如果是目录,仅列出目录本身的属性而非目录内的文件名。 -R:连同子目录的数据也一并列出来

    ----------------------------------------------------------------------------------------------------------------------------00+01+02:创建共同组(project):

    测试一下,在alex建立文件,让arod去处理这个文件。(这个文件属于组alex,  arod对它是其他人身份只有可读权限r

    加入SGID的权限!当目录拥有SGID权限时,用户在该目录下创建的文件的属组都会继承该目录的属组。 字符形式表示:增加权限g+s,移除权限g-s;  数字形式表示:0表示去除SGID权限,2表示添加SGID权限,在数字表达形式开头加0或2, 如:0770移除SGID权限, 2770添加SGID权限;

    再测试一下!

    alex、arod建立的新文件所属组都是project,加上umask都是002,这样两个账号可以互相修改对方文件;

  • 相关阅读:
    园子开店记-周边第一款:收到鼠标垫样品(新增另外3款照片)
    vue.js毕业设计,基于vue.js前后端分离在线小说电子书阅读小程序系统设计与实现
    SVN的基本使用
    Java程序设计——事务管理(JDBC编程)
    [科研琐事] 安装服务器的二三事
    Java有序数组——原地去重——不使用额外空间
    京东小程序数据中心架构设计与最佳实践
    Git存储原理——树对象
    使用OpenCV如何确定一个对象的方向
    【元胞自动机】元胞自动机求解城市小区开放对周边道路通行影响研究【含Matlab源码 233期】
  • 原文地址:https://blog.csdn.net/weixin_51347879/article/details/134017111