xDroid's Blog

13 Simon says... (从新手到菜鸟的Linux教程)

本来文件命令还有ln什么的,感觉不是很常用,至少不是很有趣,比起今天要将的命令来说。

先来看一个漫画:

???

sudo究竟是神马玩意儿,居然能让那个本不想做三明治的人马上妥协呢?其实,sudo命令在Unix/Linux系统中的地位就像是“Simon says”游戏中这个固定的短语一样,只有以“Simon says”开头的短语的动作才是要完成的。

照例看一看man里面是怎么说的:

SUDO(8) BSD System Manager’s Manual SUDO(8)

NAME
sudo, sudoedit — execute a command as another user

SYNOPSIS

DESCRIPTION
sudo allows a permitted user to execute a command as the superuser or another user, as specified by the security policy.

可以这样理解,就是说这个命令可以暂时让你变成超级用户(superuser),然后运行(do)。(不过这只是一开始的意思,后来这个命令其实起到的是substitute user do的作用)

为什么我们要sudo呢?因为有些操作需要系统的很高的权限,但是直接用root用户操作既不安全又容易误操作。所以通过sudo就可以在验证当前用户的密码之后,把当前用户提权为root用户,前提是这个用户在某个允许提权列表内(这以后会再次提及)。

那么哪些命令通常要用sudo呢?一般来说,像aptchownupdate-grubmake install之类涉及到系统重要文件的命令肯定是要的;操作到root用户所拥有的文件时,像vim(当然也有nano)、cprm也要加sudo运行。总之,如果一个可被信任的程序不加sudo不能执行,那就加吧;但是从网上随意下载的程序伸手要root权限然后你给的话……祝你好运。


彩蛋:如果你没有权限使自己提权到root用户,但是运行了sudo,会怎么样呢?

wang:~$ sudo apt
[sudo] password for wang:
wang is not in the sudoers file.  This incident will be reported.

圣诞老人会看的QAQ