在 Cygwin 中是否有命令可以更改新用户的主要组?

在 Cygwin 中是否有命令可以更改新用户的主要组?

有没有办法在 Cygwin 的/etc/passwd文件中设置(新)用户的主要组,而无需手动编辑文件?

我在 Windows Server 2008 R2 机器上为开发团队成员设置了一个本地组,这样我们都可以修改特定组的文件,但普通用户只能读取它们。由于我们所做的一些工作使用依赖于 Cygwin 工具的脚本,因此该组也在文件中/etc/group

当我需要将新用户添加到“开发团队”组时,我会在服务器管理器中添加他们,然后使用该工具mkpasswd将该用户添加到 Cygwin 的/etc/passwd文件中。不幸的是,他们被指定为主要组,因此我必须进入并编辑passwd文件以更改该组。

我现在需要为不熟悉 UNIX/Linux/Cygwin 的其他人写一些说明,以便他们可以设置新的开发团队用户,显然,/etc/passwd如果您不知道自己在做什么,“手动编辑”就是灾难的根源。

那么,有没有办法mkpasswd设置不同的主要组,或者像 Linux 那样usermod可以使用其他工具以更可控的方式更改组?

答案1

好的,这是我目前使用的解决方案,使用awk一个 shell 脚本:

# Extract group number for group from /etc/group
GROUP=$(grep "^${GROUPNAME}:" /etc/group | awk -F: '{print $3}')

# Create passwd entry for user and substitute extracted group number
# before adding to /etc/passwd
mkpasswd -d "${DOMAIN}" -u "${USER}" | awk -F: '{print $1":"$2":"$3":'${GROUP}':"$5":"$6":"$7}' >> /etc/passwd

(欢迎提出改进建议 - 我不是awk专家)

不过,如果能找到一种“正确”的方法来做到这一点,那还是很好的。

相关内容