导读 | 你在使用 Linux 命令行时曾经得到过“拒绝访问”的错误提示吗?这可能是因为你正在尝试执行一个需要 root 权限的操作。例如,下面的截图展示了当我尝试复制一个二进制文件到一个系统目录时产生的错误。 |
你在使用 Linux 命令行时曾经得到过“拒绝访问”的错误提示吗?这可能是因为你正在尝试执行一个需要 root 权限的操作。例如,下面的截图展示了当我尝试复制一个二进制文件到一个系统目录时产生的错误。
那么该怎么解决这个错误?很简单,使用 sudo 命令。
用户运行此命令后会被提示输入他们(自己)的登录密码。一旦输入了正确的密码,操作将会成功执行。
毫无疑问,sudo 是任何在 Linux 上使用命令行的人都必须知道的命令。但是,为了更负责、更有效地使用该命令,你还是要知道一些相关(及深入)的细节。这正是我们将会在这篇文章中讨论的。
在我们继续之前,值得提一下的是,这篇文章所提到的所有命令指示都已经在 Ubuntu 14.04 LTS 下的 4.3.11 版 Bash 下通过测试。
什么是 sudo
正如你们大部分人所知道的,sudo 用来执行需要提升权限(通常是作为 root 用户)的命令。在这篇文章之前的简介部分已经讨论过这样的一个例子。然而,如果你想的话,你能用sudo 以其它(非 root )用户运行命令。
这是由工具提供的-u 命令行选项所实现的。举个例子,如下例所展示的那样,我(himanshu )尝试将一个在其他用户(howtoforge )的 Home 目录中的文件重命名,但是得到一个“访问拒绝”的错误。然后我加上sudo -u howtogroge 后用同样的“mv”命令,命令成功执行了:
任何人都能用 sudo 吗?
不是。一个用户要能使用sudo ,应该在/etc/sudoer 文件里有一条跟该用户相关的信息。下述摘自 Ubuntu 网站的一段能讲得更清楚: