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

R.S*_*.S. 7 permissions users groups 16.04

这是 Ubuntu 16.04 上的权限问题。我无法删除安装在/usr/local/lib/R/site-library. 原来我没有得到许可。该目录是由国有root和组staff

我通过手动将我的用户添加到staff组来临时解决了权限问题。

sudo usermod -a -G staff myusername    

# *see blockquote before using this!* 
Run Code Online (Sandbox Code Playgroud)

这允许我从 IDE 中删除库。

但是,当我尝试查找有关员工组的更多信息时,却找不到有关该主题的任何明确材料。甚至不是该小组的主要目的。我只能猜测它用于为某些目录上的用户提供类似的“增强”访问权限。

将用户手动添加到员工组是否有任何影响?

顺便说一句,是否有任何命令可以了解组的系统范围权限?例如,组员工将拥有写入权限的所有目录是什么?

谢谢。

编辑:我必须在这里补充一点,使用adduser而不是usermod此操作的更明智的选择[请参阅下面的评论]

sudo adduser myusername staff

R.S*_*.S. 8

好的,正如@muru所推动的那样,我正在尽可能地发布我自己问题的答案。该文件file:///usr/share/doc/base-passwd/users-and-groups.html包含有关组和权限的详细信息。可以在此处找到此页面的镜像:用户和组

因此:

职员

允许用户在不需要 root 权限的情况下向系统 ( /usr/local, /home)添加本地修改。与 group 相比adm,它更多地与监控/安全相关。

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

当然,adm 已经在我的里面了,groups所以我可以做dmesg。但我不得不手动将自己添加到staff

记录员工拥有的目录列表显示所有这些都属于以下之一:

sudo find / -maxdepth 8 -type d -group staff -perm -g=w >>stafflog.txt

/var/local
/usr/local/lib
/usr/local/share
Run Code Online (Sandbox Code Playgroud)

难怪员工的成员资格让我可以写访问我的共享编程语言库。

检查以下权限之一:

ls -al /var/local

drwxrwsr-x  2 root staff 4096 Apr 11  2014 .
drwxr-xr-x 16 root root  4096 Aug  3 15:55 ..
Run Code Online (Sandbox Code Playgroud)

很明显,员工技巧是由系统通过设置目录的位 ( setguid) 来执行的。,以便无论哪个用户或进程在该目录中创建文件,该文件始终以在员工组中共享的权限运行。 看这里

但是我仍然想知道我是否可以安全地将自己留在这个组中。在我看来,这应该是非常安全的,因为这是一台笔记本电脑,最坏的情况是通过 smb 或 ssh 通过受信任的 LAN 进行访问。“有效地等同于 root 访问”这句话吓到我了。欢迎对此提出任何想法。