对Linux系统管理员或高级用户而言,sudo是必不可少的最重要的命令之一。当我们想要运行重要任务时,sudo提供了安全的提升权限。请耐心读本文,看看sudo能为你做些什么。

sudo是个统管一切的命令。它的字面意思是代表“超级用户才能做!”(super user do!)对Linux系统管理员或高级用户而言,它是必不可少的最重要的命令之一。你可曾有过这样的经历:在终端中试着运行某个命令,结果却遇到“拒绝访问”?这个就是你所需要的命令!但正所谓,权力越大,责任也越大!较之以根用户身份登录,或者使用 su “switch user” 命令,sudo要好得多。请耐心读下去,看看sudo能为你做些什么!

sudo:它有什么用途?

那么,sudo实际能做些什么呢?如果你在任何Linux命令的前面加上“sudo”这个前缀,那么它会以提升的权限来运行该命令。执行某些管理任务需要提升的权限。有一天,你可能想运行一台LAMP(Linux Apache MySQL PHP)服务器,又要手动编辑配置文件。你可能还要重新启动或重置Apache Web服务器或者是其他服务后台程序。你甚至需要提升的权限来关闭或重新计算机。“嘿,谁关闭了这台机子?”

如果你熟悉Windows,sudo与当你试图处理任何重要操作时,弹出来的Windows用户帐户控制(ACL)对话框非常相似,只是不如后者来得友好。在Windows中,如果你试图执行某项管理任务,对话框就会问你是否想继续执行("你果真确信想要运行刚才点击的这个程序吗?")随后执行该任务。在Mac机器上,一个安全对话框会弹出来,要求你输入密码,并点击“确定”。

而Linux方面显得更有戏剧性。要是没有适当的权限,一些操作会显得相当怪异。你在编辑的那个重要的配置文件可能无法正确保存内容。你安装上去的那个程序可能就是拒绝运行。你已下载、想要编译的那段出色的源代码编译不了。你要是不走运的话,甚至还会看到"拒绝访问"或另一个错误信息。你最担心的种种情况都变成了现实,但你要做的就是请求权限!这就是为什么我们在执行像下面这种操作时,应该牢记事先请求超级用户权限:

sudo reboot

在这个屏幕截图中看看如果我们没有先借助sudo提升权限,会出现什么情况:

首先,我们使用重启命令尝试重启系统。该命令提到:“必须是超级用户”。然后,我们试着用sudo重启。sudo要求你提供用户密码。请注意:它要求你提供的是你的密码,而不是根密码(只要把权力下放给用户,不容告诉他们根密码,sudo降低下放权力的用户出现手误的操作的几率)。最后,我们看到表明现在将重启系统的广播信息。sudo就像是个神奇的命令,会发出神奇的指令。

为什么sudo比另一个办法更好?

sudo是提升权限的最出色、最安全的方法。我们不妨看一下提升权限的另一个方法。作为切换用户命令,"su"会要求你输入根密码,并且给你一个超级用户提示符,以#符号表示。这个#符号意味着"危险!你已作根用户登录上去!"你下达的第一个命令也许顺利执行完毕。但是你一旦忘了,会继续以根用户身份登录。要是打错一个字,就完蛋了!你清除了整个硬驱,而不是清除你下载的那个盗版mp3文件。你的Web服务器和家庭公司统统不见了!如果是sudo,你就得在每一个命令之前输入"sudo"。因而,你没必要记得切回到常规用户模式,那样发生的事故就会更少。

Suderos文件

这个文件可谓是sudo的基础。它控制着谁可以使用sudo命令来获得提升的权限。它通常位于/etc/sudoers。想编辑这个文件,最有效最安全的方式就是,使用visudo命令。这个命令会以提升权限启动vi编辑器,那样你就能编辑并保存该文件。它还会给sudoers文件上文件锁,那样别人无法编辑该文件。一旦你完成了编辑工作,它会分析文件,查找有无简单的错误。编辑sudo文件要比仅仅使用任何旧的文本编辑器来得安全得多。

该文件含有许多参数。你可以指定哪些用户或哪些用户助可以执行哪些命令。我们准备为自己授予访问sudo的权限,为此只要在底部添加:

username  ALL=(ALL)   ALL //为用户"username"授予sudo访问权
%wheel ALL=(ALL) ALL //为属于wheel用户组的所有用户授予sudo访问权

现在指定的用户名就能够使用所有根权限了。你还可以允许某个用户或用户组只对特定服务或服务器拥有sudo访问权,以取代ALL参数,不过那是另一个话题了。

几个选项

与任何优秀的命令一样,也有几个很棒的选项可以让sudo处理更多的事务。

  • sudo -b会在后台运行命令。这对显示许多实时输出内容的命令来说很有用。
  • sudo -s 会运行以提升权限指定的外壳,为你提供#提示符(别忘了退出!)
  • sudo su -会让你成为根用户,并装入你那些自定义的用户环境变量。

有没有现在就用它?

我们想要运行重要任务时,sudo提供了安全的提升权限。在Ubuntu用户当中,它也许是使用最广泛、功能最强大的命令,因为它已成为该发行版中的首选方法。既然你拥有了这么大的权利,那么在运行命令时务必要做到安全!世上可没有su-undo撤销命令!

最新文章

  1. 基于ZK构建统一配置中心的方案和实践
  2. Android Studio doesn't list my android phone
  3. SG函数 专题练习
  4. CentOS7 安装RabbitMQ
  5. java里的基本数据类型
  6. USACO3.22Stringsobits
  7. PHP curl 模拟登陆
  8. Log4Net Config Appender
  9. 【转载】设置event.cancelBubble,使触发子元素的onclick不同时触发父元素的onclick
  10. JSP导出Excel后身份证后三位为0
  11. 摆脱printf的噩梦
  12. HDU1036 Average is not Fast Enough!
  13. 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
  14. kali权限提升之本地提权
  15. Knut重排算法
  16. BFC规范
  17. 第25月第8天 100-Days-Of-ML-Code
  18. python字符串之join
  19. Python3文件操作1 --Python3
  20. 3.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——检查文件开始与结尾

热门文章

  1. .net 链接ORACLE的安装包
  2. c# foreach枚举器
  3. hdu1867A + B for you again
  4. Python Challenge
  5. scanf与gets函数混用 前后位置出错的问题解决
  6. 项目中关于AJAX的使用总结
  7. SQL Server 统计信息的创建与更新
  8. MYSQ 查看 2 进制日志
  9. docker 运行挂载磁盘
  10. 谷歌page speed 安装使用及页面问题详解