如何创建我的组没有写入权限的子目录?

如何创建我的组没有写入权限的子目录?

Tomcat我正在我的部署目录中工作。该目录下的文件具有以下权限:

drwxrwsr-x. 10 tomcat www  4.0K Mar 15 15:14 webapps  

其中的示例子目录webapps如下所示:

drwxr-sr-x.  6 tomcat www 4.0K Mar 15 15:19 oldApps

虽然我是组的成员www,但我可以在 中创建目录oldApps。尽管该组www没有oldApps.

我的文件中有一行sudoers允许组mkdir成员www。我无法理解如何oldApps在没有该文件夹的任何写入权限的情况下写入该文件夹。

更新
好的,我知道我可能mkdir以 root 身份运行该命令,从而允许我创建文件夹。如何删除该行sudoers并仍然能够创建目录?

答案1

您实际上回答了自己的问题:您可以在您的组中创建一个没有写权限的子目录的原因是因为您的sudoers文件中有一行允许mkdir您的组的成员访问。

sudoers也许您对文件和命令的用途感到困惑sudo:您不需要明确允许您打算让某人运行的每个命令;事实上你不应该做这个。

sudo是为了跑步特权命令。您应该只授予某人sudo访问您希望他们能够运行的命令的权限作为根用户。通过任何命令的完全sudo访问权限,用户可以执行以下操作任何事物,无论单个文件和目录的权限设置如何。

答案2

您可以创建该目录的原因是您正在使用sudo.实际的mkdir命令(最有可能)运行为tomcat.由于设置了 set-gid 属性,新目录上的组仍然是www

更新:

要向其他用户和/或组添加权限,您可以使用扩展 ACL:

setfacl -d -m g:www:rwx oldApps
setfacl -m g:www:rwx oldApps

相关内容