sudo使用小技巧
写在前面
有时好久没更新。日常摆烂。本来想这个月更新(反正我已经默认月更了)一篇 Xbox Series S 的评测的,但是由于种种原因,还没受到货,所以就写点别的吧。
前天开始我把自己的两台电脑都刷成了Linux系统,开始正式以Linux作为主要的操作系统使用了。
作为一个Linux小白,同时由于我手头上设备都比较奇葩(一台陈年Macbook Air,一台用AMD APU的惠普笔电)所以我选择了兼容性好且对于普通用户而言相对友好的Ubuntu作为电脑的操作系统。同时,在惠普的笔电上,我还保留了(其实是重新刷入了)Windows系统,以备不时之需。
作为一个懒狗,不能接受普通用户在使用例如apt
、docker
等命令前需要加sudo
并且输入密码,所以就有了这次小小的折腾。
sudo的简单介绍
sudo
命令的含义其实就是superuser do
,从字面意思上看我们就能知道,它的作用是通过安全的方式让用户提权使用特殊的权限执行程序。
而就像我上面提到的,如果想要使用sudo
(Ubuntu)默认创建的用户,那么需要输入自己的密码才能提权,这还挺麻烦的。
此时我们就可以通过修改配置文件,让用户免密使用sudo,具体的配置文件以及配置文件夹有二:配置文件sudoers
(位置在/etc/sudoers
)和配置文件夹sudoers.d
(位置在/etc/sudoers.d/
)
通过修改或者添加自定义的配置就可以实现免密登陆。
sudoers配置应该怎么写
先来看看两个范例:
以上配置的含义为:授权用户xianyu
在所有主机上,以用户root
、组root
的身份不需要密码直接执行/usr/bin/apt
以上配置的含义为:授权用户组xianyu
的用户在所有主机上,以所有用户身份,以组admin
的身份不需要密码直接执行/usr/bin/docker
或/usr/bin/tree
解析
从上面的例子我们就可以知道格式为:
命令可以在同一行写很多个。
可以在配置文件中写好主机列表、命令列表、用户列表、身份列表方便使用。
例如:
接着就可以直接引用了,比如
我将怎么用
首先当然是写sudoers配置文件。但是!由于Linux发行版的差异,需要修改的地方不一样,例如,Debian可以直接在配置文件sudoers
中添加配置,而Ubuntu发行版需要进入sudoer.d
文件夹中,新建一个文件,并将配置写入其中。我平时常用的有四个命令:apt
、apt-get
、docker
、snap
,所以我需要让普通用户免密使用以上命令,以下是我的配置文件内容:
然后,我除了嫌输密码麻烦外,多打一个sudo
也挺麻烦的。所以为了进一步减少工作量,接下去需要修改用户主目录下的.bashrc
。
什么是bashrc
Linux下默认使用的shell程序是bash
,.bashrc
是用户登陆时会首先运行的文件(其实就是个shell脚本),所以我们只需要用alias
命令将相关的规则写进.bashrc
就可以一劳永逸了。
怎么用
上面我提到了四个命令,所以要在文件中添加四条
保存并退出文件,注销用户后重新登陆就能使用了。alias
命令的含义就是让等号前的等同于等号后的命令,所以在之后我以普通用户执行这些命令,不再需要加sudo输密码了。