当前位置:  开发笔记 > 运维 > 正文

什么时候可以或者我应该在文件或目录上使用chmod g + s?

如何解决《什么时候可以或者我应该在文件或目录上使用chmodg+s?》经验,为你挑选了3个好方法。

在最近部署到新的(Solaris 9)环境时,其中一个步骤是将一组文件和目录复制到新位置,然后将组UID位(使用"chmod -R g + s")应用于所有目录树中的文件给出了-rwxr-s的模式.结果是,除非单独打开并重新保存,否则我们的shell脚本都不会执行.我应该补充一点,我们之前在复制文件之前在目标父文件夹上设置了g + s; 这已经将所有新目录的初始模式设置为drwxr-s ---但文件的模式为-rwxr-x ---

在最终发现导致问题的步骤后,我们能够切断该步骤并继续进行.

但是,我想了解"s"位在应用于目录和文件时的含义,希望这能解释为什么我们首先遇到问题.



1> Powerlord..:

设置目录g + s使得在所述目录中创建的所有新文件都将其组设置为目录的组.

如果您设置了umask以便默认情况下文件具有组写,那么这对于协作目的来说实际上非常方便.

注意:这是它在Linux中的工作方式,它可以在Solaris中完全不同地工作.


这确实应该被OP标记为正确的答案.
重新'注意'; 它是POSIX行为,并且Solaris具有足够的POSIX兼容性,因此可以使用它.

2> SpoonMeiser..:

对于可执行文件,这意味着在执行文件时,它将作为拥有该文件的组执行,而不是执行该文件的用户组.

如果您希望用户能够仅为运行一个命令而承担特定组的权限,这将非常有用.

但是,它也存在安全风险,因为它允许用户提升其权限.您必须知道具有此位设置的脚本不会执行任何会让用户滥用这些额外权限的操作.



3> Tomasz Błach..:

以下是SGID(chmod g + s)的非常方便的解释:http://www.linuxnix.com/sgid-set-sgid-linuxunix/

SGID(执行时设置组ID)是一种特殊类型的文件/文件夹文件权限.通常在Linux/Unix中运行程序时,它会从登录用户继承访问权限.SGID定义为为用户提供临时权限以运行具有文件组权限的程序/文件,以成为该组的成员以执行该文件.简单来说,用户在执行文件夹/文件/程序/命令时将获得文件组的权限.


有趣的是,截至今天页面上写道:您无权访问此服务器上的/〜lso /workstation/docs/permissions/sgid.htm.
链接已经死了,但这有效:http://www.linuxnix.com/sgid-set-sgid-linuxunix/"SGID(执行时设置组ID)是一种特殊类型的文件/文件夹文件权限通常在程序运行的Linux/Unix中,它继承了登录用户的访问权限."
推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有