Ubuntu 上的群组问题

Ubuntu 上的群组问题

我是几个群组的成员,比如 Master、Student、Web。问题是,默认情况下,无论我做什么,都是先在学生群组下创建的。我需要将其设置为与 Web 群组一起创建。

我需要写入文件的文件夹www/已经是模式 770。但是因为它选择了我的学生组,所以不允许我写入该文件夹。

有什么方法可以改变我创建文件的组吗?

如果我执行,groups它会列出所有组,所以我是正确组的成员,但我只是无法写入该文件夹。

任何人?

答案1

如果您输入“id”,您将看到您的主要组,其列表类似于 gid=1000(student)。默认情况下,所有文件都将使用该组创建。

但这不是你的问题。如果你是某个组的成员,并且该组对某个目录有写权限,那么你就可以创建新文件。

您确定 www 上的权限正确吗?请执行“ls -ld www”。

答案2

您确定您处于正确的 web 组中吗?在 Ubuntu 上,这可能意味着usermod -a -G www-data yourname交替运行,www 可能具有不正确的权限。确保已将其设置为组成员具有读/写访问权限:chmod -R 770 /var/www

答案3

如果要永久更改用户的默认组,请使用usermod手册页):

# set "web" as the primary group for user "username"
$ sudo usermod -g web username

或者,您可以将newgrp web(或任何组名)放入.bashrc文件末尾附近的某个位置,以便在每次登录时“登录到”Web 组 - 而无需更改用户的主要组。 newgrp手册页)设置“有效组ID”。观看:

# what's my current effective GID?
$ id -g
1000

# "login" to another group 
$ newgrp www-data

# now what's my effective GID?
$ id -g
33

答案4

除非 Ubuntu 有什么不寻常的地方,否则如果您对目标目录“SGID”设置权限,那么在该目录中创建的所有文件都将属于拥有该目录的组:

chmod g+s /var/www

现在,所有文件都/var/www将默认由(我假设)拥有该目录的“web”组创建。

即使目录上未设置 SGID 位,MacOS X 也默认采用这种行为。

相关内容