困惑用户如何使用 sudo chmod 文件

困惑用户如何使用 sudo chmod 文件

我是 Linux 新手,所以请原谅我的缺乏理解。

假设我的 Linux 安装中有 2 个用户,即 A 和 B。

用户A创建一个文件夹FolderA并在该文件夹中添加一些文件。然后,用户 A 使用 chmod 命令阻止其他人使用以下命令访问该文件夹

sudo chmod 700 FolderA -R

我不明白的是用户 B 如何登录他的帐户并使用以下命令更改此限制。

sudo chmod 777 FolderA -R

我的意思是,当任何人都可以更改文件夹时,对文件夹设置限制有何意义?我只是不明白这其中的逻辑。

再说一次,我是 Linux 新手,因此提出了这个问题。

答案1

sudo命令向用户授予临时管理员权限。如果您使用它,那么您就绕过了任何安全控制。在托管多用户系统上,很少有用户拥有此权利 - 通常只有系统管理员。在家庭系统上,您可能会默认拥有此功能,以便您可以照顾自己的系统。

完全删除FolderA。然后在不使用的情况下再次尝试这些命令sudo,看看会发生什么

答案2

从用户帐户使用sudo意味着您不再以该用户身份进行操作,而是以超级用户。就系统而言,userAuserB具有相同的特权——它们都是超级用户, 换句话说。

如果您希望限制某个用户的权限sudo,您可以sudoers通过以下命令在文件中执行此操作sudo visudo中执行此操作。请注意,必须以这种方式打开 sudoers 文件进行编辑。

# 该文件必须以 root 身份使用“visudo”命令进行编辑。

答案3

正如其他人所解释的 - sudo 允许您临时承担管理权限(以 root 身份有效运行命令)。不过,它仍然比仅以 root 身份登录更安全 - 因为只有您以 sudo 为前缀的命令才会收到此权限(防止您意外地运行具有 root 权限的内容,因为您忘记了它是 root shell)。

对于家庭桌面环境,大多数用户通常会通过一个组(在 Ubuntu 中为“admin”,但可能因发行版而异)获得完全 sudo 访问权限。生产服务器环境的配置可能会有所不同。

严格来说,用户可以使用 sudo 执行的操作是通过 /etc/sudoers 文件控制的 - 该文件有一堆如下所示的行:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

如果需要,这里有很多范围可以控制可以运行哪些命令。这是一个手册页,更详细地解释了语法:https://www.sudo.ws/man/1.8.15/sudoers.man.html

每行都可以限制给定用户或组(以及哪些用户)可以运行哪些命令 - 因此,如果您想更改谁可以使用 sudo,或限制他们,您有两个选择:

  • 在组(例如管理员)中添加或删除它们,以添加或删除关联的 sudo 权限。
  • 更改 /etc/sudoers 中关联用户或组的 sudo 权限。

对于家庭设置,我建议您谨慎设置规则的限制性/复杂性 - 如果您过于花哨,您可能会在以后为自己做更多的工作。

相关内容