不输入密码执行sudo命令方法介绍

 

作为ubuntu等桌面系统,默认登录的帐号是没有root权限的,为了提升权限来执行任务,我们一般用到sudo+命令来执行,但是不难发现我们一般都要输入密码。那么有没有什么方法可以让我们执行sudo的时候不输入密码呢?当然有咯。那就是对sudoers文件进行修改。

如何修改sudoers?直接修改/etc/sudoers么?不,那样子修改很容易造成权限错乱。奶牛手动修改的时候,由于对于格式并不是那么了解,所以编辑的时候报错很多次,因此不建议用直接修改法。我们可以用visudo来进行编辑。

进入终端,执行sudo visudo

在#User privilege specification下面会罗列一些规则,我们现在需要做的是对我们的用户进行一些操作。假如我们的用户名为nenew

在文件的最后一行添加:

nenew    ALL=(ALL) NOPASSWD: ALL

然后保存退出,执行

sudo usermod -aG admin nenew

重启下看看nenew帐号执行sudo还需要密码么?这里我们需要了解顺序这个问题,在ubuntu的wiki上有比较详细的介绍。

%admin ALL=(ALL) ALL
这行只是让admin组的用户拥有可以像任何帐号一样执行命令的能力,但是还是需要有密码的,因此我们需要把我们的nenew用户加入到admin组中,所以有sudo usermod -aG admin nenew ,然后是对其进行NOPASSWD定义,这行一定要在%admin ALL=(ALL) ALL 这行后面,才会生效。

文章发玩之后很多朋友提出不安全问题来,确实,这样是存在安全隐患的。奶牛此文的目的也只是想让各位了解下sudoers的那个生效的顺序,当然,我们可以把最后的

nenew    ALL=(ALL) NOPASSWD: ALL 更改为对于命令进行限制,例如对于关机命令取消密码

nenew    ALL=(ALL) NOPASSWS: /sbin/shutdown, /sbin/halt, /sbin/reboot

更详细的说明请看:

https://help.ubuntu.com/community/Sudoers

http://www.gratisoft.us/sudo/sudoers.man.html

奶牛 | 2011年08月13日
  • 大宝 2011年08月13日 at 11:28 下午
    这个方法好 :good 以往都是直接改 /etc/sudoers 的,改了之后还得恢复权限。若是新手或技术不过关的,直接就把 sudo 给废了。。。
    • Aenon 2011年08月13日 at 11:51 下午
      谁让你直接修改sudoers了…… 都是visudo啊……
      • 奶牛 2011年08月14日 at 1:05 上午
        sudoers还牵扯权限,蛮纠结的...
        • Aenon 2011年08月14日 at 1:06 上午
          这个就是改sudoers文件的标准方法。man一下visudo就知道了呃。
      • 大宝 2011年08月14日 at 4:16 下午
        如果早点有人跳出来反复提醒大家“你们直接改 sudoers 的方法是错的!应该 visudo”,那我想今天也轮不到奶牛出来给大家写教程了,可是,我的确今天看了奶牛的博客才知道改 sudoers 原来是用 visudo
    • 奶牛 2011年08月14日 at 1:06 上午
      嘿嘿,是啊~~~
    • Terry Chen 2011年08月15日 at 8:23 上午
      我表示各种 wiki 都是这么说的。。。话说 Ubuntu 锁掉 root 比较麻烦,其他的 su 一下就好了。
      • Aenon 2011年08月20日 at 7:51 下午
        锁掉root是应该的,因为sudo已经可以代替su了,更安全。其他发行版也渐渐采用sudo了。另外ubuntu没有锁定root。你只要sudo passwd 设置一下密码就可以su了。
        • Terry Chen 2011年08月22日 at 10:42 上午
          sudo 基本上木有不用的吧。我指的锁掉 root 就是指 root 没有默认开启,Fedora、Arch 安装时都要设的,我觉得保留 root 有好处,多设一个用户帐户即可。
          • Aenon 2011年08月22日 at 11:46 上午
            我从来不用su。如果需要用管理员权限执行多条命令,我会用sudo -i 很多人都在用root,并不是说这样更好,只是大家还没接受更先进的方式罢了。很快fedora和arch就会采用安装的时候不需要root密码的方式。
  • Aenon 2011年08月13日 at 11:51 下午
    这……不安全啊! 还是只添加apt-get就够了。
    • 奶牛 2011年08月14日 at 1:05 上午
      嗯,是有安全隐患,可以把ALL换成命令~~~
  • Headpiggy 2011年08月14日 at 1:19 上午
    这样子不安全的
  • iwtctw 2011年08月14日 at 9:44 上午
    何止是不安全,简直会造成灾难性后果~哪天你要是删了系统目录你就会诅咒当时这么蛋疼的你自己的
  • asdasd 2011年08月14日 at 1:59 下午
    测试
  • Embest工作室 2011年08月14日 at 9:57 下午
    这个要看一下,有用
  • Terry Chen 2011年08月15日 at 8:19 上午
    强烈不推荐这样做。另:如果不习惯 vim 的话,可以 EDITOR=gedit visudo,如果你根本不想看到 vim 的话,还可以改/.bashrc
  • Rabbit_52 2011年08月15日 at 12:19 下午
    对关机命令取消密码,这个特别实用啊!
  • sc_bant 2011年08月16日 at 2:11 上午
    新手表示又学到了XD
  • 小灰 2011年08月17日 at 12:23 下午
    表示围观学习了~
  • Demon 2011年08月17日 at 1:24 下午
    我不会折腾呀。 :yun
  • 纳兰清风 2011年10月25日 at 6:57 下午
    其实只要一个命令就可以了 sudo -i
Comments are closed.