[镜像制作]Ubuntu的sudo免密码设置

正常情况下,在使用sudo命令时,系统是要求输入密码的。输入的密码会保存一小段时间,在这段时间内,sudo不再要求输入密码,之后,再使用sudo,系统仍会要求输入密码,但是在制作镜像过程中,我们可能会在系统自启动项启动很多服务,而且可能有些服务必须使用sudo才能实现,所以实现sudo的无密码也是非常有必要的。


如果希望实现该操作,只需要修改系统的一个文件即可/etc/sudoers


1、查看/etc/sudoers文件权限

sm@ubuntu:~$ ll /etc/sudoers
-r--r----- 1 root root 745 Feb 11  2014 /etc/sudoers

2、保险起见,复制一个备份文件

sm@ubuntu:~$ sudo cp /etc/sudoers /etc/sudoers_bak
[sudo] password for sm:
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory

3、由于该文件为只读文件,使用nano编辑器修改

sm@ubuntu:~$ sudo nano /etc/sudoers

在有效的最后一行,我们需要修改以下内容

# Allow members of group sudo to execute any command
# 原始为:%sudo   ALL=(ALL:ALL) ALL
# 修改为:
%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

注意:添加一个NOPASSWD关键字,并添加一个英文的“:”。


然后使用Ctrl+O保存,再按Ctrl+X退出即可。


注意:如果在云环境下,用户特别注重安全起见,该操作要慎用!


我在实际操作过程中就是缺少了一个英文的“:”,导致修改再使用sudo命令,报如下错误

sm@ubuntu:/etc$ sudo rm sudoers
>>> /etc/sudoers: syntax error near line 26 <<<
sudo: parse error in /etc/sudoers near line 26
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sm@ubuntu:/etc$ sudo vi sudoers
>>> /etc/sudoers: syntax error near line 26 <<<
sudo: parse error in /etc/sudoers near line 26
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
sm@ubuntu:/etc$
sm@ubuntu:/etc$ sudo passwd
>>> /etc/sudoers: syntax error near line 26 <<<
sudo: parse error in /etc/sudoers near line 26
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

这是由于sudoers文件已经破坏,而且不能生效,

重启电脑,在进入Grub选择界面后,选中 带有“recovery mode”字样的一行(一般是第二行),然后就会进入recovery模式界面

[镜像制作]Ubuntu的sudo免密码设置_第1张图片

使用上下键选择root条目,这样就可以得到root权限。
[镜像制作]Ubuntu的sudo免密码设置_第2张图片

然后,按如下操作即可:

1、查看df

sm@ubuntu:~$ df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda1      101016992 2652844  93209744   3% /
none                   4       0         4   0% /sys/fs/cgroup
udev             1010544       4   1010540   1% /dev
tmpfs             204272    1180    203092   1% /run
none                5120       0      5120   0% /run/lock
none             1021348       0   1021348   0% /run/shm
none              102400       0    102400   0% /run/user
2、把根目录重新mount为可读写模式
# mount -o remount,rw /dev/sda1  /  
3、增加可写权限                          
# chmod u+w /etc/sudoers 
4、修复出错位置                                           
# vi /etc/sudoers   
5、恢复原有权限                                                           
# chmod u-w /etc/sudoers 
6、重启操作系统     
# reboot     

                                 

你可能感兴趣的:([镜像制作]Ubuntu的sudo免密码设置)