![将访问权限从 root 转移到普通用户](https://linux22.com/image/19214/%E5%B0%86%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90%E4%BB%8E%20root%20%E8%BD%AC%E7%A7%BB%E5%88%B0%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7.png)
我使用用户名登录 Ubuntu student
。
有一些目录只root
允许用户访问,例如/var/lib/mysql
,(我知道我可以用来sudo
访问它,但这不是我想要的)。如果我想获得该账户对这些目录的访问权限student
,可以使用以下命令:
chown student: PATH_TO_ROOT_USER_PRIVILEGED_DIR
之后,我可以使用自己的帐户访问该目录吗?我对吗?
如果我是对的,那么
root
用户是否会因为我将其更改为用户而失去访问权限student
?如果我错了,请告诉我正确的解决方案。
答案1
由于某种原因,该目录仅限 root 访问。修改此所有权通常是一个坏主意(并且存在很大的安全风险)。
此外,您可以考虑修改目录的权限,而不是修改所有权。如果用户有权执行 ( +x
) 目录,则他或她可以访问该目录。如果您不熟悉 Unix 文件权限,我建议您阅读教程。 (快速谷歌搜索,我想出了这个随机教程)。
其他事情:
root
永远不会失去任何特权。root
可以做任何事情。- 只有
root
能够chown
。
正确的解决方案
尽管很简单,但这sudo
就是要走的路。 Ubuntu 开发人员知道他们在做什么。该sudo
实用程序旨在使权限升级变得简单且安全。您绝对没有理由想要改变这一切。
答案2
你应该绝不更改 root 拥有的文件的所有权(或者至少,几乎从不更改)。相反,您应该使用sudo
访问根目录。root
始终可以访问计算机上的每个文件,无论他们是否拥有该文件。将目录更改为您自己的所有权会破坏 GNU/Linux 安全模型。
答案3
这完全取决于为目录设置的权限,您可以在目录ls -l
上执行/var/lib/
操作以获得/var/lib/mysql
.
你可以阅读这里关于 Linux 中的权限位。
但具体到您的问题,如果目录中的权限位设置正确(默认情况下应该如此),那么用户student
可以访问自己的目录,并且用户root
不会失去访问该目录的权限。您应该使用sudo
和 可能运行此命令-R
,以便更改所有子目录的所有权。