我是 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
意味着您不再以该用户身份进行操作,而是以超级用户。就系统而言,userA
并userB
具有相同的特权——它们都是超级用户, 换句话说。
如果您希望限制某个用户的权限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 权限。
对于家庭设置,我建议您谨慎设置规则的限制性/复杂性 - 如果您过于花哨,您可能会在以后为自己做更多的工作。