解决办法一:
在启动时进入安全模式,这时是用root登陆的,执行:
chmod 740 /etc/sudoers
而后打开/etc/sudoers这个文件,把最后一行:
%admin ALL=(ALL)
改成
%%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
保存退出。
执行:
chmod 0440 /etc/sudoers
reboot your ubuntu.OK!
解决方法二:
Ubuntu默认不能直接用root账户登陆,必须从第一个建立的用户(既安装时建立的那个用户)经过su或sudo来得到root权限。在Ubuntu中对系统进行操做不少时候都要使用这个命令,因而可知对于新来讲颇有必要来认识这个命令。这或许不太方便,但这样增长了安全性,避免用户因为误操做而损坏系统。python
sudo
格式:sudo [其它命令]linux
sudo既为Super user do的意思。sudo在这个过程当中只起一个调用root用户的做用,本次操做完成后,其做用就消失,若是要使用调用root权限操做的命令就必须再次使用sudo。些过程当中系统会要求用户输入密码,此密码就是安装系统时你输入你那个密码,注意:这个密码在输入你时候不会像在Windows里输密码那样输入一位密码就有一个*号,这样的目的就是为了使密码更安全,由于不知道你密码有几位这样无疑给密码破译者增长了难度。:)ubuntu
例:安全
咱们要更改当前目录下upload.tar.gz的权限就要用到sudo。若是还要对当前目录下的另一个文件eva.tar.gz更改权限就要再次用到sudo。ruby
ownlinux@server:/var/www$ sudo chmod 777 upload.tar.gz
[sudo] password for ownlinux: (此时输入你的密码)
ownlinux@server:/var/www$ sudo chmod 777 eva.tar.gz
[sudo] password for ownlinux:
补充:
一般咱们并不以root身份登陆,可是当咱们执行某些命令 (command)时须要用到root权限,咱们一般都是用"sudo command"来执行command。因为使用Ubuntu,因此常常都都用sudo,而使用sudo时,又得输入密码,因此我就寻找sudo不输入密码的方法。前阵子google了一下,很容容易找到一个方法,可是对其不够理解,今天,仔细研究了一下/etc/sudoers这个文件,对于如何实现本身的需求就很是清楚了。网上说看到的资料每每写得不清楚,因此我根据本身的需求好好整理了一下。
假设个人用户名为jay(属于 admin组),使sudo不用密码的方法以下。
运行命令:sudo visudo 或者 sudo vi /etc/sudoers,若是vi来编辑,则保存时记得用"wq!"强制保存,不然会提示只读不能保存的。
就会编辑/etc/sudoers这个文件。 默认状况咱们会看到有"%admin ALL=(ALL) ALL"一句话,就是容许admin组在全部主机上执行全部命令,固然是须要passwd的。
1. 若是想把admin组的用户都sudo不用密码那么能够将这一行换为:"%admin ALL=(ALL) NOPASSWD: NOPASSWD ALL"便可。
2. 若是仅仅想让jay用户sudo不需密码,则可添加"jay ALL = NOPASSWD: ALL"这样一行。
3. 若是让jay用户sudo不用密码便可执行某几个命令,可这样写"jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser"
4. 欲知其余更多配置方式,请运行"man sudoers"看帮助文档吧。
注意:我本身的一个配置没生效,找缘由还找了阵子,写到这里吧。
我添加"jay ALL = NOPASSWD: ALL"这样一行;可是,jay执行sudo时仍是须要输入密码,这是为何?
原来是,我这一行在"%admin ALL=(ALL) ALL"组策略以前前,后面的组配置覆盖了前面的配置,而jay属于admin组,因此须要密码。
这时,只须要将%admin行用#注释掉便可。OK!而后立马就生效了,可能执行sudo时系统都会去读取/etc/sudoers的,因此当即就生效了。
另外,附带公司某服务器的一个/etc/sudoers配置:
bash
复制代码服务器
代码以下:ide
Defaults env_reset
Defaults syslog=auth
Defaults log_year,logfile=/var/log/sudo.log
User_Alias ABC = abc
Cmnd_Alias DEFAULT=/bin/*,/sbin/ldconfig,/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel,/bin/rpm,/usr/bin/yum,/sbin/service,/sbin/chkconfig,sudoedit /etc/rc.local,sudoedit /etc/hosts,sudoedit /etc/ld.so.conf,/bin/mount,sudoedit /etc/exports,/usr/bin/passwd [!-]*,!/usr/bin/passwd root,/bin/su - [!-]*,!/bin/su - root,!/bin/su root,/bin/bash,/usr/sbin/dmidecode,/usr/sbin/lsof,/usr/bin/du,/usr/bin/python,/usr/sbin/xm,sudoedit /etc/profile,sudoedit /etc/bashrc,/usr/bin/make,sudoedit /etc/security/limits.conf,/etc/init.d/*,/usr/bin/ruby
ABC ALL=(ALL)NOPASSWD:DEFAULT google
经过修改/etc/sudoers
sudo vi /etc/sudoers
把/etc/sudoers里面最后一行
%admin ALL=(ALL)
改成
%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
而后强制保存 wq 就OK
上面说的并不许确,要注意如下几点。
编辑/etc/sudoers文件使用“超级用户终端”,而不能使用普通的终端。“超级用户终端”启动经过右键“编辑菜单”命令添加。
编辑完以后使用wq!而不是wq退出.net