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

posted @   michaelchengjl  阅读(710)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示