尝试不使用 Sudo 或 777 来创建组

尝试不使用 Sudo 或 777 来创建组

如何创建一个组,以便我可以在我的用户帐户中使用 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

希望这会让您走上正确的道路......

相关内容