小组在“用户和小组”中做什么?


13

我知道某些文件系统上定义了权限(例如www-data)。但是我不明白为什么通过将用户添加到“视频”组中来成功回答此问题

因此,问题主要是在Ubuntu中所有预建小组都做什么?更合理地讲,由于数量众多,存在哪些“特殊”组,以及如何或何时使用它们?

在此处输入图片说明

Answers:


8

某些组允许访问文件或目录,例如:www-data允许访问Web文件或允许adm组读取中的文件/var/log。这是琐碎的用途。

但是某些组允许访问某些设备。例如,该dialout组允许通过以下文件访问串行端口/dev

$ find /dev -group dialout -exec ls -ld {} \;
crw-rw---- 1 root dialout 4, 64 Jan 19 12:51 /dev/ttyS0
crw-rw---- 1 root dialout 4, 67 Jan 19 12:51 /dev/ttyS3
crw-rw---- 1 root dialout 4, 66 Jan 19 12:51 /dev/ttyS2
crw-rw---- 1 root dialout 4, 65 Jan 19 12:51 /dev/ttyS1

因此,如果您是该dialout组的成员,则可以通过读写设备文件来使用串行端口:echo "Hello world" > /dev/ttyS0。该video组允许访问视频硬件。

有关每个组的说明,请阅读文件: /usr/share/doc/base-passwd/users-and-groups.html

编辑关于第一个评论:

实际上,从用户的角度来看,通常不必在那些组中“访问”硬件资源。通常的做法是让守护程序/服务器作为最严格的组的成员来管理它,然后允许您访问该守护程序/服务器。

对于您而言,成为该video组的成员可以直接访问图形硬件,而无需通过X服务器。通常在台式机/笔记本电脑上,可以直接访问图形硬件(glxinfo | grep "direct rendering")很好。

旁注,如果您具有直接渲染功能,但您不是video组(id | grep --color video)的成员,则/dev文件的ACL允许您进行硬件访问find /dev/ -group video -exec getfacl {} \; | grep $USERNAME


好答案,谢谢。但请跟进-我不是系统中任何组的成员,但是我仍然可以使用所有硬件(例如视频)。如果我仍然可以在没有它们的情况下工作,那么为什么它们会存在我感到困惑。
Scaine

您需要sudo apt-get install acl运行第二个命令(getfacl)。感谢您的澄清。
Scaine

2

通常,组分离的概念与此有关:

http://en.wikipedia.org/wiki/Principle_of_least_privilege

拥有所有这些组似乎很愚蠢,直到您意识到替代方案将是单个公共级别的高特权(例如sudo / root),这将是一场安全噩梦。

帖子中显示的大多数组都存在,因此操作系统的各个部分都可以以最少的特权访问常见功能。用户不必为此担心太多。在执行某些管理任务期间,您可能需要提高权限才能访问某些功能,通常使用sudo来完成短时间的任务,或者将您自己添加到特定的组中来完成重复的任务来完成此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.