如何更改我当前的unix组

时间:2017-06-27 04:21:11

标签: unix sysadmin

我属于几个用户组(比如编码器,项目管理员,sudo),由于某种原因,我可能不在特定的组中。当我在属于特定组的特定目录中时,会发生这种情况,我需要写访问权来创建新文件。我在一个不同的群体中非常烦人。当我运行groups命令时,我在groupA中列出,我如何成为groupB?

当我进行搜索时,顶部链接将转到如何创建组。

2 个答案:

答案 0 :(得分:1)

如果您是管理员,只需以root用户或具有相应权限的用户身份执行此操作。

如果您试图避免这种情况,可以将自己添加到群组中。大多数系统都可以通过一个简单的命令来实现:

sudo usermod -a -G newgroup username

较旧的系统需要编辑/etc/group。首先尝试sudo vigr(“vi组”,与vipw很像passwd文件),如果不存在,您可以直接通过sudo vi /etc/group进行编辑。

找到相关群组并追加自己。用户位于最后一个以冒号分隔的部分,并在该部分中以逗号分隔。例如,您可以将自己添加到“cdrom”和“games”组:

在:

root:x:0:
users:x:100:kemin
cdrom:x:24:
games:x:60:adam

后:

root:x:0:
users:x:100:kemin
cdrom:x:24:kemin
games:x:60:adam,kemin

一种非常快速的程序化方法 - 缺乏安全性 - 可能看起来像:

sudo sed -i '/^games:/s/$/,kemin/; s/:,/:/g' /etc/group

我上面只添加了一个安全性,它占了一个空组(不需要逗号)。这不会检查以确保您最初不在组中,并且我没有使用正则表达式替换(/^\(games\|cdrom\):/…),因为非GNU sed不支持它。

(这可能不适用于将/ etc / group锁定为vigr的系统。事实上很难让所有安全设备都正确,这就是为什么这样的锁定是合理的。)

这不会马上工作!你需要注销并重新登录,否则就像你自己一样sudo(这是一种很好的方法,可以在没有注销的情况下进行测试),例如: sudo -u $USERNAME groups,或通过虚拟终端( Alt + F2 )或ssh localhost之类的内容获取新的登录信息。

答案 1 :(得分:0)

该命令实际上是newgrp。其他几个与组相关的命令是:

chdgrp  List groups with title and remaining balance
groups  See groups to which you belong with primary group first
chgrp   Change group ownership of directories and files