如何使用Linux组限制其他用户对目录的读取,写入和执行访问?

加布里埃尔·斯台普斯(Gabriel Staples)

更新:我想出了我最终想要做的事情。看到这里:https : //raspberrypi.stackexchange.com/questions/13401/locking-down-raspbian-to-only-allow-limited-features/58778#58778

我对这里的答案感到非常困惑:https : //stackoverflow.com/a/527976/4561887

它说:

用户将需要具有读/执行权限才能执行任何命令(ls,登录shell等),因此您不能轻易取消所有权限。

通常,足以确保他们不会与其他用户的主目录混为一谈。为此,将用户放入一个新的组(如“不受信任的”)中,锁定他的主目录并撤消该组以及所有主目录上的其他权限:chmod go-rwx / home / * /

但是我真的不明白他在说什么。有人请帮帮我。这是到目前为止的内容,下面是一些粗体字的问题:

在全:

  1. 创建一个名为“ guest”的新用户sudo adduser guest
  2. 新建一个名为“不受信任”的组: sudo groupadd untrusted
  3. 将用户“ guest”添加到组“ untrusted”: sudo usermod -a -G untrusted guest
  4. 确保用户“ guest”现在是“不受信任”组的一部分: groups guest

    • 输出为:

      访客:访客不受信任

    • 这意味着用户“来宾”是“来宾”和“不受信任”组的一部分。好的。

  5. 获取您希望“来宾”有权访问的任何目录的所有权。请注意,由于我们在adduser上文中使用过,因此来宾已经可以访问其“ / home / guest”主文件夹。但是,可以按照以下步骤为用户提供“访客”其他目录sudo chown -hR guest /any/directory/you/want/guest/to/own
  6. ??? (到目前为止,我是否正确执行了上述操作??)-我仍然希望其他超级用户能够看到来宾的文件。无论如何,建立“不受信任的”小组有什么意义?我看不出它如何改变任何东西。
  7. 撤消所有其他主目录上的读,写和执行(rwx)组和其他权限:??? 如果我这样做了chmod go-rwx /home/*/,那么其他的sudoers甚至都无法读取来宾的目录,这不是我想要的!我只是想让来宾无法读取其他人的目录,不是完全相反,尽管我做了一个guest2他不应该能够看到guest1虚拟机的目录或者,亦不应guest1虚拟机能够看到guest2的目录,但sudoers文件应该能够同时看到guest1虚拟的guest2的目录。
壬基

我不知道如果只有一个“来宾”(通常只应有一个来宾),为什么需要一个“不受信任的”组。可以将“来宾”组用作“不受信任”的组。无论如何,我会尽量简短地解释一下,以指出正确的方向:

??? (到目前为止,我是否正确执行了上述操作??)-我仍然希望其他超级用户能够看到来宾的文件。

登录到帐户“ root”的任何人都可以执行此操作。使用su -c "do something"sudo do something要以root用户身份登录,请使用su root(或正好su默认为不带args的root用户)或sudo -i(但要知道,不建议新手用户以root用户身份登录)。

无论如何,建立“不受信任的”小组有什么意义?我看不出它如何改变任何东西。

恰恰。但是,例如在文件服务器上,具有用于特定访问目的的特定组可能非常有用。开发和测试环境可能会受益于运行具有较少特权的流程,测试不受信任的二进制文件(尽管监狱对此更好)。通常,拥有不受信任的用户在企业中可能很有用,但对于普通台式机或工作站则无济于事。可能还有更多的用例,因此在此之前,我将止步于此,其余内容供您阅读。

撤消所有其他主目录上的读,写和执行(rwx)组和其他权限:??? 如果我执行chmod go-rwx / home / * /,则其他sudoer甚至无法读取来宾的目录,这不是我想要的!我只希望来宾无法读取其他人的目录

不,你当然不会。在这种情况下,撤消g(组)访问权限将使事情变得很混乱,并且无法实现您的目标(以防止访客与其他用户的住所发生混乱)。阅读以下简短说明:

通过adduser添加新用户的默认性质是:

  1. 使用匹配的主要组ID创建的新用户。
  2. 新用户会收到一个主文件夹,通常是/ home / USERNAME /,该用户具有rwx特权。
  3. 默认情况下,没有给予其他特权,也没有向用户分配任何补充组(我听说有些配置可以这样做,但这不是“普通”行为)。
  4. 因此,只需创建用户即可实现您已声明要实现的所有功能换句话说,首先删除用户和用户的主目录,然后再进行任何更改,直到您知道需要更改的内容为止。使用创建帐户后,您可以查看该帐户的组id USER因此,如果系统的默认行为异常,则可以删除来​​宾不应进入的任何组。

我只希望访客无法阅读其他人的目录

默认情况下,guest虚拟机可以只读其他文件。如果要将文件设为私有文件(仅对所有者,组和根chmod -R o-rwx目录可见),请选择其目录。“ o”表示“其他”或“世界”。该标志指向不是文件所有者或拥有该文件的组成员的任何人(不包括root,而root基本上是您的全能用户)。需要使用“ ox”来确保无法执行目录列表,因为目录是可执行的(超出范围)

获取您希望“来宾”有权访问的任何目录的所有权。请注意,由于我们在上面使用了adduser,因此来宾已经可以访问其“ / home / guest”主文件夹。但是,可以按以下步骤为用户提供“访客”其他目录:sudo chown -hR guest / any / directory / you / want / guest / to / own

否。如果要共享文件夹,请创建一个名为“ shareful”的新组(这很容易,因为您必须“小心”),然后将所有要共享目录的用户添加到该组(usermod -aG shareful myuser)。然后将所述文件夹的组所有权授予共享组(chown -R :shareful /this/path/),并chmod权限,使该组具有rwx(chmod -R g+rwx /this/path)。此时,您将开始想要研究umask,但这超出了本文的范围。

以下是指向umask信息的链接,但是首先,我认为您需要重新阅读基本的* NIX文件权限(前两个链接)。

文件权限:(Wikipedia)https://en.wikipedia.org/wiki/File_system_permissions(UNIX.com)http://www.unix.com/tips-and-tutorials/19060-unix-file-permissions.html

Linux和umask :(不熟悉的源代码)https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

希望这至少可以澄清一些事情,以实现您想要的目标。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何设置以root用户身份创建的文件和目录可以以其他用户身份读取和执行?

如何限制程序对其他用户的访问?

如何限制用户访问权限以查看/修改其他用户使用 Django 创建的对象

如何防止用户使用dotnet core和RESTful API访问其他用户的数据?

如何使用takeown和icacls拒绝其他用户的访问?

限制其他用户对NTFS分区的访问

在目录树中授予“其他用户”的读取/执行权限

Windows 10如何锁定/限制其他用户对我的文件夹的访问?

如何限制其他用户在 Django 中查看?

rustc 安装在其他用户的主目录时如何执行?

如何与其他用户共享目录?

如何访问其他用户创建的屏幕?

如何访问其他用户的数据?

如何访问其他用户 Azure 监控数据?

如何获得其他用户的访问令牌

禁止使用Grails SpringSecutiryCore访问其他用户

C ++ / Linux如何获取其他用户的读取许可权统计信息?

C#-如何仅授予当前用户访问权限,并限制对其他用户的访问权限

使用zeus进行黄瓜和RSpec测试:其他用户正在访问Postgres

如何使用Windows Azure访问控制对其他用户进行“预身份验证”?

如何使用 AWS 将 var/www/html 的访问权限授予其他用户?

如何在Linux服务器上与挂载用户以外的其他用户写入dfs共享

限制用户访问其他用户内容的最优雅方法是什么?

允许用户读取其他用户的主目录

如何使用 GSettings cmd 获取 root 和其他用户的代理配置

允许其他用户读取/写入数据Firebase数据库

设置主目录权限,以便apache可以读取它,但其他用户则不能

Angular 如何检查此页面是否被用户访问并阻止其他用户访问?

如何通过终端命令将所有文件和目录复制或移动到其他用户