手动将用户添加到员工组的含义

这是在Ubuntu 16.04上出现的权限问题。我无法删除安装在/usr/local/lib/R/site-library目录下的一些R库。原来是因为我没有权限。该目录的所有者是root,组是staff。
我通过手动将我的用户添加到staff组来暂时解决了权限问题。
sudo usermod -a -G staff myusername    

# *see blockquote before using this!* 

这样我就可以从IDE中删除库。
然而,当我试图查找有关员工组的更多信息时,并没有找到任何明确的材料。甚至不知道该组最初的目的是什么。我只能猜测它是用来给用户在某些目录上提供类似“增强”访问权限的。
手动将用户添加到员工组是否会产生任何影响?
另外,有没有命令可以了解系统范围内组的权限?例如,员工组对哪些目录具有写权限?
谢谢。
编辑:我必须在这里补充说明,使用adduser而不是usermod对于这个操作来说是一个更明智的选择[请参见下面的评论]
sudo adduser myusername staff

1对于最后一个问题,sudo find / -type d -group staff -perm -g=w(不包括由ACL设置的权限) - muru
1另外,在/usr/share/doc/base-passwd/users-and-groups.txt.gz中可能有一些信息,但我手头没有Ubuntu系统可以检查。而且使用adduser命令将用户添加到组中更容易:sudo adduser myusername staff,如果你忘记了加上-a选项,出错的机会就会减少。 - muru
@muru。谢谢。那指引我朝着正确的方向前进。我还没有解压那个gzip文件,但是在那个目录下的html文件——/usr/share/doc/base-passwd/users-and-groups.html中有我正在寻找的大部分信息。如果没有其他人提供更具有信息量的内容,我很乐意将其作为答案接受。不过,为了未来的读者,可能需要一些修饰,我想。 - R.S.
关于“find”,我已经完成了并将其转储到日志中。需要一些解析和修剪才能理解它。我想知道是否有一个专门用于此的实用工具。设置“-maxdepth 2”显示整个“/local/”目录都属于员工。 - R.S.
啊,如果你现在就有信息的话,最好还是你写答案。 :) - muru
好的,我猜我最好遵循那个 :-) - R.S.
1个回答

好的,受到@muru的推动,我正在回答自己的问题,尽我所能。文件file:///usr/share/doc/base-passwd/users-and-groups.html包含有关组和权限的详细信息。该页面的镜像可以在这里找到:Users and Groups

因此:

staff

允许用户在系统(/usr/local/home)中添加本地修改,而无需root权限。与监控/安全相关的是组adm进行比较。

请注意,修改/usr/local的能力实际上等同于root访问权限(因为/usr/local在搜索路径中位于/usr之前),因此您应只将可信任的用户添加到此组。在使用NFS的环境中要小心,因为在这种环境中获取其他非root用户的权限通常更容易。

当然,adm已经在我的“groups”中了,所以我可以执行“dmesg”。但是我必须手动将自己添加到“staff”。
记录属于staff的目录列表显示所有这些目录都属于其中之一:
sudo find / -maxdepth 8 -type d -group staff -perm -g=w >>stafflog.txt

/var/local
/usr/local/lib
/usr/local/share

难怪员工会员资格给我写入权限到我的共享编程语言库。
正在检查其中一个的权限:
ls -al /var/local

drwxrwsr-x  2 root staff 4096 Apr 11  2014 .
drwxr-xr-x 16 root root  4096 Aug  3 15:55 ..

所以显然,员工技巧是由系统执行的,通过设置目录的s位(setguid)。这样,无论哪个用户或进程在该目录中创建文件,文件始终以staff组共享的权限运行。点击此处查看 然而,我仍然想知道是否可以安全地将自己保留在这个组中。在我看来,这应该是相当安全的,因为这是一台笔记本电脑,最坏的情况下只会通过受信任的局域网、通过smb或ssh进行访问。"实际上等同于root访问权限"这些话吓到了我。对此有什么想法都欢迎。

如果你有疑问,可以将自己从员工组中移除。sudo deluser 用户名 staff。你不需要在这个组中,你在sudoers组中,并且始终能够做任何事情,只需输入密码即可。 - mook765
是的,但这样我可以直接从IDE中完成一些工作。我通常将所有库都放在~下,但在升级UBUNTU时,它自作主张地安装了各种东西到默认位置。现在我偶尔会遇到这些令人惊讶的冲突。为了保险起见,我已经将自己从该组中移除了。 - R.S.
我不明白,“能够修改 /usr/local 的能力等同于 root 访问权限”,但是据说 /var/local 内的任何文件都有这个能力? - Rolf
@Rolf: “用户”具备“能力”,而不是文件。这句话可以理解为:“拥有修改 /usr/local 目录的能力,将使属于 staff 组的用户拥有与 root 等效的权限。” - MestreLion