这几天练习邮件服务器的时候经常需要切换到其他用户发一份测试邮件,然后再切换到另一个用户查收邮件,于是就想起 Linux 的 sudo 命令了。这条命令的作用就是让你以任意用户的身份或者管理员身份运行后面的指令或者打开文件,使用方法如下:
sudo [-u username] command...
其中的 -u username 是可以指定一个用户,以这个用户身份运行权限,而不指定则默认使用 ROOT 用户权限运行。除 ROOT 用户外,其他用户指定另外用户运行时均须要输入密码。
例如:
# sudo -u test1 echo test
test
# su test1
$ sudo echo test
[sudo] password for test1:
test
而在实际操作过程中发现,刚装好的 Linux 默认只有 ROOT 用户可以使用 sudo 命令,原因是其他用户没有被添加到 sudoers 列表中。所以为方便测试,如果想让所有用户都可以执行 sudo 命令,可以在 ROOT 用户下编辑 /etc/sudoers
文件第 98 行,将
root ALL=(ALL) ALL
改成
ALL ALL=(ALL) ALL
保存 (可能需要用强制保存,:wq!
) ,这时其他用户可以使用 sudo 执行命令,但是需要输入当前用户密码。如果需要去掉密码,则需要继续编辑刚刚的 /etc/sudoers
文件,将刚刚的那行继续修改:
root ALL=(ALL) NOPASSWD: ALL
保存,测试,这时其他用户在执行 sudo 命令时可以免密码执行了。这个方法请不要用在正式生产环境中,因为这会导致严重的安全问题。如果只是测试单个用户,可以单独指定,比如为 test1
添加 sudo 权限:
test1 ALL=(ALL) ALL
添加到原文件 98 行的下面即可,最好不要覆盖 ROOT 那行。