Solution 1:
Enter safe mode at startup. At this time, log in as root, execute:
chmod 740 /etc/sudoers
Then open the /etc/sudoers file and change the last line:
%admin ALL=(ALL) 改为 %%admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
Save and exit.
Execution:
chmod 0440 /etc/sudoers reboot your ubuntu.OK!
Solution 2:
Ubuntu cannot log in directly with the root account by default. You must use su from the first created user (that is, the user created during installation) or sudo to gain root privileges. This command is often used when operating the system in Ubuntu. It can be seen that it is necessary for newcomers to know this command. This may be inconvenient, but it increases security and prevents users from damaging the system due to misoperation.
sudo
Format: sudo [Other commands]
sudo means Super user do. sudo only plays a role in calling the root user in this process. After this operation is completed, its role disappears. If you want to use the command to call the root privilege operation, you must use sudo again. During these processes, the system will ask the user to enter a password. This password is the password you entered when installing the system. Note: When you enter this password, you will not enter a password with an * sign like when you enter a password in Windows. In this way The purpose is to make the password more secure, because not knowing how many passwords you have will undoubtedly increase the difficulty for password crackers. :)
Example:
If we want to change the permissions of upload.tar.gz in the current directory, we need to use sudo. If you want to change the permissions on another file eva.tar.gz in the current directory, you must use sudo again.
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:
Supplement:
Usually we do not log in as root, but when we execute certain commands (command) we need to use root permissions. We usually use "sudo command" to execute command . Since I use Ubuntu, I often use sudo. When using sudo, I have to enter a password, so I looked for a way to sudo without entering a password. I googled a while ago and found a method easily, but I didn't understand it well. Today, I carefully studied the file /etc/sudoers and it became very clear how to implement my needs. The information I saw on the Internet was often unclear, so I sorted it out based on my own needs.
Assuming that my user name is jay (belonging to the admin group), the method to make sudo without a password is as follows.
Run the command: sudo visudo or sudo vi /etc/sudoers. If vi is used to edit, remember to use "wq!" to force the save when saving, otherwise it will prompt that it is read-only and cannot be saved.
The file /etc/sudoers will be edited. By default, we will see the sentence "�min ALL=(ALL) ALL", which allows the admin group to execute all commands on all hosts. Of course, passwd is required.
1. If you want all users in the admin group to sudo without a password, you can change this line to: "�min ALL=(ALL) NOPASSWD: NOPASSWD ALL".
2. If you just want the jay user to sudo without a password, you can add the line "jay ALL = NOPASSWD: ALL".
3. If you want user jay to sudo to execute certain commands without a password, you can write "jay ALL = NOPASSWD: /usr/bin/abc.sh, /usr/sbin/adduser"
4. For more configuration methods, please run "man sudoers" and read the help documentation.
Note: One of my own configurations did not take effect. I have been looking for the reason for a while, so I will write it here.
I added the line "jay ALL = NOPASSWD: ALL"; however, jay still needs to enter a password when executing sudo. Why is this?
It turns out that my line is before the "�min ALL=(ALL) ALL" group policy. The subsequent group configuration overwrites the previous configuration, and jay belongs to the admin group, so a password is required.
At this time, you only need to comment out the �min line with #. OK! Then it will take effect immediately? Maybe the system will read /etc/sudoers when sudo is executed, so it will take effect immediately.
In addition, it comes with a /etc/sudoers configuration of a certain server of the company:
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
By modifying /etc/sudoers
sudo vi /etc/sudoers 把/etc/sudoers里最后一行 %admin ALL=(ALL) ?为 %admin ALL=(ALL) NOPASSWD: NOPASSWD: ALL
and then force saving wq and it will be OK
What is said above is not accurate, please pay attention to the following points.
Edit the /etc/sudoers file using the "Super User Terminal" instead of an ordinary terminal. The "Super User Terminal" startup is added through the right-click "Edit Menu" command.
After editing, use wq! instead of wq to exit
The above is the detailed content of What is the method to sudo without entering password in Linux?. For more information, please follow other related articles on the PHP Chinese website!