如何将文件创建为特定组

这可能听起来很奇怪。

我的用户名是ubuntu,我的机器名为ubuntu。

我想要的是当我在某个文件夹中创建一个具有签名的文件时

user group ubuntu www-data 

目前我创建的任何东西都有签名

 ubuntu ubuntu 

我可以简单地从组ubuntu中删除我的用户并将其添加到组www-data中吗?

sudo chgrp www-data *yourfile*将为单个文件执行此操作。

要对特定目录中的所有文件执行此操作,请使用相同的命令更改该目录的组

sudo chgrp www-data /path/to/your/dir

然后使用chmod命令使该目录中创建的所有文件都属于该目录所属的组

sudo chmod g+s /path/to/your/dir

我们可以基于touchchown命令创建一个简单的函数,它将创建新的空文件并同时更改其权限。 或者当文件存在时,它只会更改其权限。 为此目的,在终端类型:

 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:

 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 

假设您只想更改组并保留用户值,请尝试

sudo chown newuser:newgroup sample.txt

或者在你的情况下:

sudo chown ubuntu:www-data sample.txt

然后跑

sudo chmod g + w sample.txt

您可以创建一个www-data用户,将www-data组作为主要用户[请参阅useraddadduser或者例如kuser ],更改为该用户[ su www-data ],然后所有文件将由该用户拥有:组。

在弄乱组之前先备份/etc/group (或整个/ etc)。 如果由于组权限而被锁定,还要查找要执行的操作 。

或者,您可以将名为“ubuntu”的用户的主要组更改为www-data:

sudo usermod --gid www-data ubuntu

稍后可能存在安全问题,因为它可能在某些时候(例如与其他错误结合)将该组拥有的所有文件暴露给您的Web服务器。 www-data组的要点是,只允许服务器从外部发送它拥有的那些文件(apache,nginx等等)。 将所有标准用户登录文件都归属于该组因此会产生风险。