理查德·雷顿 - 2013年5月17日

    sudo,一个统治级的命令。它的全称意思是“超级用户做的(super user do!)”。作为一个Linux系统管理员或高级用户,它是你最重要的武器之一。你有没有这样的经历:在终端运行一个命令却被告知“访问被拒绝?”嗯,这就是给你的命令!但是,力量越大责任就越大!它比以root身份登录,或使用su“切换用户”命令要好得多。请仔细阅读,看看有什么sudo能为你做!



SUDO:有什么用途?


    那么什么是sudo实际上去做的?如果您在任何一条Linux命令前加上“sudo”的前缀,它会运行提升了权限的命令。某些管理任务必须要用提升的权限。有一天,你可能想运行LAMP(Linux、Apache、MySQL、PHP)服务器,并且要手动编辑配置文件。您可能还需要重新启动或重置Apache Web服务器或其他服务守护进程。你甚至需要更高的权限来关闭或重新启动计算机。   “嗨,谁把它关掉了?”


    如果你熟悉Windows,当你尝试做任何重要操作时弹出的Windows用户帐户控制对话框,sudo与这个是非常相似的,只是没有那么友好。在Windows中,如果您尝试执行管理任务,对话框会询问您是否想继续(“你确定要运行该程序?”)。然后,执行该任务。在Mac上,一个安全对话框会弹出,你需要输入你的密码,然后单击“确定”。


    在Linux中有更多的戏剧性的事。如果没有适当的权限,操作可能会表现得非常奇怪。您正在编辑中的重要配置文件可能无法正确保存。安装的程序可能拒绝运行。你下载的出色源代码却并不能进行编译。你甚至可能会“幸运”地碰到“拒绝访问”或其他错误消息。你所有最担心的情况已经成真,但你需要做的就是获得权限!这就是为什么我们要记得获取超级用户权限来进行下面的操作:

1. sudo reboot

    如果我们不先提升我们的权限使用sudo,这张截图会发生什么:

Linux初学者必知命令:sudo_第1张图片


    首先,我们使用reboot命令来尝试重新启动系统。该命令执行失败,理由:“必须是超级用户”。然后,我们尝试使用sudo重启。sudo要求输入用户的密码。请注意,它要求输入的是您自己的密码,而不是root密码。最后,我们看到,该系统重新启动的广播消息。sudo就像是咒语,它会发出神奇的指令。


Linux初学者必知命令:sudo_第2张图片


为什么sudo比其他方法更好?


    sudo是提升权限的最好和最安全的方式。让我们来看看提升权限的另一种方式。切换用户命令,“su”会要求你输入root密码,给你一个超级用户,通过#符号所指。这#符号表示“危险!您以root身份登录!”你的第一个命令可能顺利解决问题。但你可能会忘记而导致继续以root身份登录。一个地方操作错误,你就完蛋了!你清楚了整个硬盘驱动器,而不是您下载的假冒MP3。或者你家的猫躺在了你漂亮温暖的笔记本电脑上。噗!您的Web服务器和家庭企业都不见了!再说sudo,你的每一条命令之前都得输入sudo。因此,你不必记得要切换回普通用户模式,减少意外会发生。


Suderos文件


    这个文件是sudo的基础。它可以控制谁能使用sudo命令来提升权限。它通常位于/etc/sudoers文件。编辑这个文件的最佳和最安全的方法是使用visudo命令。此命令将使用提升的权限启动vi编辑器,这样你可以编辑该文件并保存它。它还会给sudoers文件上文件锁,这样就没有其他人可以对它进行编辑。一旦你完成编辑,它就会解析简单的错误文件。用这种编辑方法比那些其他文本编辑器要安全得多。


此文件包含许多参数。您可以指定其中哪些用户或用户组可以执行哪些命令。我们只要在底部增加就可授予自己访问sudo:

username   ALL=(ALL)       ALL //  允许用户sudo访问权
%wheel     ALL=(ALL)       ALL //  允许wheel组的所有用户sudo访问权


   现在,指定的用户名就可以使用所有的root权限。您还可以允许用户或组通过取代ALL参数只对特定的服务或服务器拥有sudo访问权,但那是另外的话题了。


一些选项


像任何优秀的命令一样,sudo也有几个不错的选项,让sudo处理更多情况!


   sudo -b   将在后台运行命令。这对那些运行中显示大量实时输出的命令非常有用。


   sudo -s   将运行使用提升权限指定的外壳,让您显示#提示符(不要忘了退出!)


   sudo su - 会让你成为root用户,并加载自定义用户环境变量。


你正在使用它吗?


   当我们要运行重要的命令时,sudo为我们提供了安全提升的权限。这可能是Ubuntu用户最常用、最强大的命令,因为这已经成为该发行版的首选方法。现在你已拥有强大的权力,你要确定你发出你的命令是安全的!因为并没有撤消命令su-undo!



  原文链接: https://linuxacademy.com/blog/linux/linux-commands-for-beginners-sudo/

  参考链接: http://os.51cto.com/art/201307/404879.htm

  推荐论坛: http://www.aminglinux.com/bbs/forum.php