Linux/Ubuntu sudo不用输入密码的方法

Linux/Ubuntu sudo不用输入密码的方法 (其他系统没有验证)

1. 查看当前用户以及当前用户所属组

  • groups命令可以查看某个用户所属的用户组,只执行groups命令,可以查看系统当前登录用户的用户组。
sw@Ubuntu-18-04-5:~/work/0617$ groups
sw sudo

要查询特定的用户所属用户组,可以在后面接用户。如下图所示 ,查询sw用户所在的用户组。

sw@Ubuntu-18-04-5:~/work/0617/$ groups sw
sw : root sudo
  • 查看/etc/group法
    /etc/group是用户组配置文件,可以查看此文件通过grep命令查询某个用户所在的用户组。如下图所示,查询到sw用户属于sw和sudo用户组。
sw@Ubuntu-18-04-5:~/work/0617/host-sdk-regression$ cat /etc/group |grep sw
adm:x:4:syslog,swadmin
cdrom:x:24:swadmin
sudo:x:27:swadmin,sw
sw:x:1001:
  • id命令法
    id命令也可以查看某个用户所属的用户组,只执行id命令,可以查看当前登录用户所在的用户组。
sw@Ubuntu-18-04-5:~/work/0617/$ id 
uid=1001(sw) gid=1001(sw) groups=1001(sw),27(sudo)

要查询特定的用户所属用户组,可以在后面接用户。如下图所示 ,查询sw用户所在的用户组。

sw@Ubuntu-18-04-5:~/work/0617/$ id sw
uid=1001(sw) gid=0(root) groups=0(root),27(sudo)

2. 修改当前用户所属组为root

sudo usermod -g root sw

3. linux添加用户并赋予root权限

一、添加用户并设置密码:

sw@Ubuntu-18-04-5:~/work/0617/$ adduser test
adduser: Only root may add a user or group to the system.
sw@Ubuntu-18-04-5:~/work/0617/$ sudo adduser test
[sudo] password for sw: 
Adding user `test' ...
Adding new group `test' (1002) ...
Adding new user `test' (1002) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] Y

二、赋予root权限

方法一:将用户加入到root组

sudo usermod -g root sw

修改完毕,现在可以用test账号登录,然后用命令su ,即可获取root权限进行操作

方法二:修改/etc/sudoers文件,找到下面一行,在root下面添加一行“test ALL=(ALL) ALL”,如下所示

# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification
# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

test ALL=(ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

修改完毕,可以用test账号登录,然后用命令sudo,即可获得root权限进行操作

方法三:修改/etc/passwd文件,找到如下行,并把用户ID修改为0(用户ID为x后面的那个数字)

kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:114:119::/var/lib/saned:/usr/sbin/nologin
avahi:x:115:120:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
swadmin:x:1000:1000:swadmin,,,:/home/swadmin:/bin/bash
sw:x:1001:0:sw,,,:/home/sw:/bin/bash
sshd:x:122:65534::/run/sshd:/usr/sbin/nologin
test:x:1002:0:,,,:/home/test:/bin/bash

三、简单介绍下/etc/passwd文件字段含义

每行代表一个用户,可以看到我们的系统里有很多用户,绝大多数是系统或服务正常运行必须的用户,这些用户称为系统用户,这些用户是不可登录的,同时不能被删除。一旦删除,依赖它们的服务或程序将会出问题

1、第一个字段,保存的是用户名

2、第二个字段 “X”,代表有密码。这个字段称为密码标识

3、第三个字段,用户ID(UID),系统是通过 UID 来识别不同的用户和分配用户权限的。这些 UID 是有使用限制和要求的:

(1)0:如果用户 UID 为 0,则代表这个账号是管理员账号。在 Linux 中如何把普通用户升级成管理员呢?只需把其他用户的 UID 修改为 0 就可以了

(2)1-499:系统用户(伪用户)UID。这些 UID 是系统保留给系统用户的 UID,也就是说 UID 是 1~499 范围内的用户是不能登录系统的,而是用来运行系统或服务的。其中,1~99 是系统保留的账号,系统自动创建;100~499 是预留给用户创建账号的。

(3)500-65535:普通用户UID。建立的普通用户的UID从500开始,最大到65535

原文地址:https://www.cnblogs.com/michaelcjl/p/14896973.html