Ubuntu设置su和sudo为不需要密码

本文介绍如何在Ubuntu系统中设置sudo和su命令的无密码使用方式,包括编辑sudoers文件实现特定用户或用户组的免密操作,以及通过配置su命令允许特定用户组成员在不输入密码的情况下切换到其他用户。

针对非服务器用户,只是用普通的Ubuntu桌面用户,嫌密码麻烦可以这么设置一下。。。。。。。。。

一 设置sudo为不需要密码

需要编辑/etc/sudoers文件将用户加入,该文件只能使用vi sudo命令,

1) 首先需要切换到root, su - (注意有- ,这和su是不同的,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用乎的环境变量,用"su -"命令将环境变量也一起带过去,就象和root登录一样)

2) 然后gedit /etc/sudoers, 

root ALL=(ALL)   ALL

your_user_name ALL=(ALL)   ALL

然后按Esc,再输入:w保存文件,再:q退出

这样就把自己加入了sudo组,可以使用sudo命令了。

3) 默认5分钟后刚才输入的sodo密码过期,下次sudo需要重新输入密码,如果觉得在sudo的时候输入密码麻烦,把刚才的输入换成如下内容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL

4)如果你想设置只有某些命令可以sudo的话,your_user_name   ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD: /bin/cp, (root) NOPASSWD: /bin/chmod

注意: 有的时候你的将用户设了nopasswd,但是不起作用,原因是被后面的group的设置覆盖了,需要把group的设置也改为nopasswd。

joe ALL=(ALL) NOPASSWD: ALL

%admin ALL=(ALL) NOPASSWD: ALL

二 设置su为不需要密码

如果需要对某用户su命令也不需要输入密码,则需要修改下列的:
1)切换到root权限;
2)创建group为wheel,命令为groupadd wheel;
3)将用户加入wheel group中,命令为usermod -G wheel joe;
4)修改su的配置文件/etc/pam.d/su,增加下列项:
 auth       required   pam_wheel.so group=wheel 
# Uncomment this if you want wheel members to be able to
# su without a password.
 auth       sufficient pam_wheel.so trust use_uid
至此你可以使用例如如下的命令且不需要输入密码:su joe -c command。
三 ubuntu 启用root

sudo -i
sudo passwd root
disable by below:
sudo passwd -dl root

### Ubuntu系统中新建用户时sudosu命令的区别 在Ubuntu系统中,`sudo``su`是两种用于提升权限或切换用户的命令,但它们的功能使用场景存在显著差异。 #### 1. `sudo` 命令 `sudo`(superuser do)允许经过授权的普通用户以超级用户或其他用户的身份执行特定命令。它通过配置文件 `/etc/sudoers` 来管理哪些用户或用户组可以使用 `sudo`,并且通常需要输入当前用户的密码[^1]。 - **用途**: - 提升权限执行某些需要管理员权限的操作,例如安装软件、修改系统配置等。 - 避免直接以 `root` 用户身份登录,从而减少因误操作导致系统损坏的风险。 - **特点**: - 需要知道 `root` 用户的密码,只需要知道当前用户的密码。 - 日志记录:所有通过 `sudo` 执行的命令都会被记录到日志中(默认为 `/var/log/auth.log`),便于审计追踪[^2]。 - **示例**: ```bash # 更新软件包列表 sudo apt update # 查看具有 sudo 权限的用户组 cat /etc/group | grep -E "sudo" ``` #### 2. `su` 命令 `su`(substitute user)用于切换到另一个用户账户,默认情况下切换到 `root` 用户。如果要切换到其他用户,则需要指定用户名。 - **用途**: - 切换到 `root` 用户或其他用户账户。 - 在某些情况下,可能需要直接以 `root` 身份运行命令或维护系统。 - **特点**: - 默认需要知道目标用户的密码(例如 `root` 的密码)。 - 如果目标用户是普通用户,则需要知道该用户的密码。 - 在 Ubuntu 系统中,默认情况下 `root` 用户是没有密码的,因此普通用户无法直接通过 `su` 切换到 `root`[^3]。 - **示例**: ```bash # 切换到 root 用户(需要先设置 root 密码su # 切换到其他用户 su - otheruser ``` #### 3. 新建用户时的权限管理 在创建新用户时,可以通过以下方式授予其 `sudo` 权限或管理其权限: - 使用 `adduser` 或 `useradd` 创建用户,并将其添加到 `sudo` 组[^4]。 ```bash # 创建新用户并设置密码 sudo adduser newuser # 将新用户添加到 sudosudo usermod -aG sudo newuser ``` - 如果需要使用 `su` 切换到 `root` 用户,则必须先为 `root` 设置密码[^5]: ```bash sudo passwd root ``` #### 4. 主要区别总结 | 特性 | `sudo` | `su` | |---------------------|-------------------------------------------|-------------------------------------------| | **权限来源** | 当前用户的密码 | 目标用户的密码 | | **是否需要密码** | 是(当前用户的密码) | 是(目标用户的密码) | | **日志记录** | 记录在 `/var/log/auth.log` | 会自动记录 | | **安全性** | 更安全,避免直接使用 `root` | 较低,容易因密码泄露导致系统风险 | | **默认行为** | 普通用户可以执行管理员权限的命令 | 切换到 `root` 或其他用户 | --- ### 示例代码 以下是创建用户并赋予 `sudo` 权限的完整示例: ```bash # 创建新用户 sudo adduser newuser # 将用户添加到 sudosudo usermod -aG sudo newuser # 验证用户是否属于 sudo 组 groups newuser # 如果需要使用 su 切换到 root,需先设置 root 密码 sudo passwd root ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值