如何创建一个组,以便我可以在我的用户帐户中使用 PC 上其他用户的程序,而无需 777 权限sudo
?
我通过 创建了一个新用户sudo adduser masi
。我需要将 /usr/bin 处的每个程序的权限更改为 777,或者使用 来sudo
运行每个程序。
但是,这两种方式对于安全性和可用性来说都很糟糕。我显然应该创建一个组brothers
,然后指定兄弟俩可以使用哪个程序,而无需sudo
。
答案1
(免责声明:此时已登录到 Windows)创建一个组
addgroup SomeName
然后将每个用户添加到组
usermod -G SomeName,other,groups user1
usermod -G SomeName,other,groups user2
更改文件的权限
chgrp SomeName theFile
chmod g+rx theFile
答案2
您无需向二进制文件添加写入权限即可执行它。您只需将它们设置为 755 root:root。如果您想将程序限制为除某个组之外的所有程序,您可以 chmod 750 并将它们 chgrp 到您的新组。
答案3
您不应该弄乱 /usr/bin 中的权限 - 您的发行版管理该权限,该目录中的所有程序均归 拥有root
,并且具有 755 个权限。
如果您希望拥有您和另一个用户都可以使用,但其他用户不能使用的程序,那么请创建不同的目录,将其添加到您的 PATH 并适当地设置权限。
我认为您需要提供您看到的错误消息,因为 755 权限足以执行程序。
答案4
另一个不错的选择是使用扩展 ACL(您需要使用“acl”标志挂载相关文件系统)
使用 acls 将允许您授予/拒绝单个用户/组对文件/目录的特定访问权限,而无需为每个“权利/权限分离”添加组集
man getfacl, setfacl, chacl 了解更多信息,不过简单来说:
授予其他用户 (lisa) rx(读取/执行)对文件的访问权限
setfacl -m u:lisa:rx file
从文件的 ACL 中删除命名组条目
setfacl -x g:staff file
希望这会让您走上正确的道路......