是否可以与另一个非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_a
,user_a
的用户组)
chgrp user_a ~/shared_directory
(这将的所有者组设置~/shared_directory
为user_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
如果该功能是在内核选项中实现的(Ubuntu?是),则未禁用(“ noacl”不用于/ home或类似名称),并且挂载点确实允许执行(“ / noexec”不用于/主页),则没有安装该命令不会阻止运行该命令的本地版本。您可以简单地下载软件包(包括依赖项),将其解压缩到用户目录中的某个位置,然后使用一些技巧(LD_LIBRARY_PATH ...)从那里运行命令。但是,如果这被认为是禁止的,则系统管理员可以只添加上述两个选项以阻止它发生
—
AB
当然,setfacl不需要root特权。同时拥有您的帐户和另一个具有共同专用组的帐户确实需要root特权才能添加它。否则,您可以选择一个通用的通用组(如果存在)。例如:cdrom组中的两个用户?这是一个普通的群体。希望与apparmor / selinux不存在任何互动
—
AB
@AB这是一个好主意。我可以下载并执行
—
0range
getfacl
和setfacl
,甚至无需摆弄库依赖项。但是,如果在内核中将其禁用,这是行不通的;这是正确的。我越来越Operation not supported
。猜猜这意味着内核不允许这样做。