与Linux上的一个(不是全部)其他非root用户共享目录(没有root特权)


3

是否可以与另一个非root用户共享一个目录,但只能共享这个目录,而没有root特权?

  • 该系统是Ubuntu 4.4.0内核。

  • 我没有root特权。

  • 该系统拥有大量用户;管理员不太可能同意只为我创建一个新组。

  • 系统不允许我使用setfacl(可能未安装ACL软件包)

方法1:使用每个用户组(不起作用)

如果我具有root特权,则可以将另一个用户添加到我的用户组中,并授予该组对该目录的权限(假设用户分别为user_a(me)和user_b(另一个),目录为~/shared_directory):

sudo usermod -a -G user_a user_b

(这将添加user_b到组user_auser_a的用户组)

chgrp user_a ~/shared_directory

(这将的所有者组设置~/shared_directoryuser_a;在几乎所有情况下,它应该已经是所有者组,并且该命令不是必需的)

chmod g=rwx ~/shared_directory

(这赋予该组所有读取,写入和执行(访问)目录的权限)。

但是,我没有root用户访问权限,并且不允许执行usermod或写入相关文件/etc/group(这很糟糕!)。

方法2:使用文件访问控制列表(ACL)(不起作用)

另外,我既不能执行setfacl也不能找到该可执行文件。可能是因为未安装acl软件包。因此,我无法尝试使用此答案中建议的方法:

setfacl -m u:user_b:rwx ~/shared_directory

(如果user_b文件系统和内核支持ACL,则可以根据需要访问目录。)

我的感觉仍然是方法1(用户组和权限)应该是解决此问题的关键

是否应该不允许我控制谁属于我的用户组?还是我误解了用户同名用户组的目的?

在Unix&Linux中,问题的一些答案讨论了每个用户组的角色,权限和目的。

还是有另一种不需要root特权的方式来实现这一目标?


1
我怀疑您需要与系统管理员一起工作。
Zoredache '18

1
如果该功能是在内核选项中实现的(Ubuntu?是),则未禁用(“ noacl”不用于/ home或类似名称),并且挂载点确实允许执行(“ / noexec”不用于/主页),则没有安装该命令不会阻止运行该命令的本地版本。您可以简单地下载软件包(包括依赖项),将其解压缩到用户目录中的某个位置,然后使用一些技巧(LD_LIBRARY_PATH ...)从那里运行命令。但是,如果这被认为是禁止的,则系统管理员可以只添加上述两个选项以阻止它发生
AB

1
当然,setfacl不需要root特权。同时拥有您的帐户和另一个具有共同专用组的帐户确实需要root特权才能添加它。否则,您可以选择一个通用的通用组(如果存在)。例如:cdrom组中的两个用户?这是一个普通的群体。希望与apparmor / selinux不存在任何互动
AB

@AB这是一个好主意。我可以下载并执行getfaclsetfacl,甚至无需摆弄库依赖项。但是,如果在内核中将其禁用,这是行不通的;这是正确的。我越来越Operation not supported。猜猜这意味着内核不允许这样做。
0range
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.