这听起来可能有点奇怪。
我的用户名是 ubuntu,我的机器名叫 ubuntu。
我想要的是当我在某个文件夹中创建一个具有签名的文件时
user group
ubuntu www-data
目前,无论我创作什么,都有一个签名
ubuntu ubuntu
我可以简单地将我的用户从 ubuntu 组中删除并将其添加到 www-data 组吗?
答案1
sudo chgrp www-data *yourfile*
将针对单个文件执行此操作。
要对特定目录中的所有文件执行此操作,请使用相同命令更改该目录的组
sudo chgrp www-data /path/to/your/dir
然后使用chmod
命令使该目录中创建的所有文件都属于该目录所属的组
sudo chmod g+s /path/to/your/dir
答案2
该命令sg
可以执行不同组 ID 下的命令。如果您是该组的成员,则该命令应在该组内newgroup
创建:newfile
sg newgroup "touch newfile"
答案3
我们可以创建一个简单的函数,基于touch
和chown
命令,它将创建新的空文件并同时更改其权限。或者当文件存在时,它只会更改其权限。为此,请在终端中输入:
function touch-www { touch $1; chown $USER:www-data $1; }
export -f touch-www
现在我们有了一个新的命令,称为touch-www
,我们可以这样使用它:
touch-www /path/to/file
为了能够在文件系统的任何地方使用这个新命令,让我们按照以下方式修改该函数:
function touch-www { sudo touch $1; sudo chown $USER:www-data $1; }
export -f touch-www
一旦文件具有足够的权限,我们就可以使用当前用户编辑它。因此,假设我们想要使用和nano
按照此处描述的方式。让我们创建新函数:
function nano-www { sudo touch $1; sudo chown $USER:www-data $1; nano $1; }
export -f nano-www
为了使这些新命令永久可用,我们可以在文件底部添加以下行~/.bashrc
:
function touch-www { sudo touch $1; sudo chown $USER:www-data $1; }
export -f touch-www
function nano-www { sudo touch $1; sudo chown $USER:www-data $1; nano $1; }
export -f nano-www
答案4
您可以创建一个 www-data 用户,并以 www-data 组作为其主要用户 [参见useradd
、adduser
或例如kuser
],更改为该用户 [ su www-data
],然后创建的所有文件将归该用户:组所有。
在处理组之前,请先备份/etc/group
(或整个 /etc)。此外,请查找如果您由于群组权限而被锁定。
或者,您可以将名为“ubuntu”的用户的主要组更改为 www-data:
sudo usermod --gid www-data ubuntu
。
后者可能存在安全问题,因为它可能在某些时候(例如与其他错误结合)将该组拥有的所有文件暴露给您的 Web 服务器。www-data 组的意义在于,只有它拥有的文件才允许由服务器(apache、nginx 等)向外部发送。因此,让所有标准用户登录文件都属于该组会产生风险。