Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux用户身份切换

Linux用户身份切换

作者头像
大闲人柴毛毛
发布于 2018-03-09 09:08:26
发布于 2018-03-09 09:08:26
9K00
代码可运行
举报
文章被收录于专栏:大闲人柴毛毛大闲人柴毛毛
运行总次数:0
代码可运行

为什么需要切换用户身份?

在日常工作中,尽量使用普通用户账号操作,当需要root权限的时候再通过身份切换的方式切换至root管理员,这样能保证系统的安全性。使用普通账号的安全性主要体现在两个方面:

  • 防止因误操作而删除了系统重要文件;
  • 创建一些系统账户专门用来启动某些服务,这样即使该服务被攻陷,系统仍然是安全的。

下面介绍两种Linux中切换用户身份的方式。

身份切换方式一:su

该命令可以将身份切换至指定账户,但需要输入该账户的密码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su [-lm] [-c 命令] username
  • 若不加username则表示切换至root
  • 使用su和su -均能切换至root账户,但不加-会使很多变量仍然保持切换前用户的变量,而加了-之后则参数将会完全变成root的参数,尤其是环境变量PATH,从而能够直接使用某些命令,而无需指定绝对路径。
  • 若只想执行一个root权限才能执行的命令的时候,可以将命令直接写在-c的后面,这样无需切换身份,如:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su -c vim /etc/shadow

身份切换方式二:sudo

使用su切换身份需要直到root账号的密码,这样并不安全。为了提高安全性,我们可以使用sudo来执行需要root权限的功能。 sudo由root指定,指定后用户只需输入自己账号的密码就能申请到root权限,而无需告诉任何人root密码,因此安全了不少。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo [-b] [-u username] 需要执行的命令

-b:使后续的命令自行执行,而不与目前的shell产生影响。

使用visudo指定拥有sudo权限的账户

拥有sudo权限的账户由/etc/sudoers文件维护,我们只需修改该文件的内容即可指定用户拥有sudo权限。但sudoers文件具有一定的语法规则,因此不建议使用vim直接修改,而是使用visudo命令进行操作,因为visudo命令能进行语法检查,当我们出现语法错误时能够及时纠正。 下面我们就来看看sudoers文件的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root    ALL=(ALL)       ALL
  1. 第一个参数表示允许进行sudo操作的用户名
  2. 第二个参数表示允许的源主机IP
  3. 第三个参数表示可以切换的用户名
  4. 第四个参数表示允许执行的命令

使用visudo指定拥有sudo权限的用户组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$users    ALL=(ALL)       ALL

$表示该用户为一个用户组。在visudo中设置了用户组后,只要是该用户组的用户均有sudo权限。如果想让一个用户获得sudo权限,只需加入该用户组即可,无需再修改sudoers文件。

开启sudo免密功能

先前的用户在执行sudo命令后都需要输入自己的密码,然而对于一些十分信任的用户可以免去他们在sudo时输入密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$users    ALL=(ALL)       NOPASSWD:ALL

只需在最后一个参数前加上NOPASSWD即可!

限制sudo操作

1.限制可切换的用户范围,如:只允许chai能sudo至root

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chai    ALL=(root)       ALL

2.限制用户能执行的操作,如只允许用户执行命令/usr/bin/passwd

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chai    ALL=(root)       /usr/bin/passwd

通过别名设置visudo

  • 通过User_Alias为用户们起一个别名
  • 通过Cmnd_Alias为可执行的操作起一个别名 如,允许jsmith, mikem这两个用户将身份切换至root,并可以执行/sbin/route和 /sbin/ifconfig这两个命令。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
User_Alias ADMINS = jsmith, mikem
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig
ADMINS ALL=(root) NETWORKING

sudo与su的搭配使用

su和sudo各有千秋,su能切换用户身份,但需要知道对方的密码,这并不安全;而sudo无需知道对方的密码,但每次执行root命令都需要加上sudo,这很不方面,下面的配置能够让这两种方式的优点结合起来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
User_Alias ADMINS = chai1,chai2,chai3
ADMINS ALL=(root) /bin/su -

此时只要输入sudo su -并输入自己的密码后即可变成root账户。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年08月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ubuntu Server 权限管理:从基础到高级的深度探索
权限管理是任何多用户操作系统,尤其是服务器系统的核心与基石。Ubuntu Server 作为全球最流行的 Linux 服务器发行版之一,其强大、灵活且精细的权限控制系统是保障系统安全、稳定和数据保密性的关键。本文旨在对 Ubuntu Server 的权限管理体系进行一次全面、深入的剖析。我们将从最基础的 Linux 权限模型(用户、组、文件权限位)出发,逐步深入到高级主题,如访问控制列表(ACL)、特权管理(SUDO)、安全增强型 Linux(SELinux 和 AppArmor)、特权分离最佳实践,以及利用自动化工具(如 Ansible)进行大规模的权限配置管理。文章将包含大量实际命令、配置示例、安全考量和工作流,旨在为系统管理员、DevOps 工程师和安全专业人员提供一份详尽的参考指南。
徐关山
2025/09/14
1270
深入理解sudo
用root用户登录或用su - 切换到root用户,使用visudo命令,方法跟vi一样
EltonZheng
2021/01/22
5880
linux详解sudoers
Linux是多用户多任务的操作系统, 共享该系统的用户往往不只一个。出于安全性考虑, 有必要通过useradd创建一些非root用户, 只让它们拥有不完全的权限; 如有必要,再来提升权限执行。   sudo就是来解决这个需求的: 这些非root用户不需要知道root的密码,就可以提权到root,执行一些root才能执行的命令。   执行sudo -u <用户名> <命令>, 将允许当前用户,提权到<用户名>的身份,再执行后面的<命令>, 即使<命令>原本需要root权限。提权到<用户名>身份时,是以<用户名>的身份来执行命令的,因此创建的文件默认属于<用户名>用户。
全栈程序员站长
2022/08/31
1K0
Linux基础(day13)
sudo命令,可以不切换用户就可以获取其他用户的权限来执行相关命令。(通常情况就是,给普通用户授权root用户的身份)
运维小白
2022/01/06
5200
Linux sudo详解
先说一下为什么最近一直在学Linux的相关内容,其实也并没有偏离之前的想法,对于Linux的运用还是很重要的,如果连运维对服务器做了什么都不清楚还谈什么其他操作。
信安本原
2020/03/08
2.4K0
Linux sudo详解
深入理解sudo
查看服务器版本,6.x为/etc/rsyslog.conf,5.x版本为syslog.conf
用户1173509
2022/05/09
4080
深入理解sudo
sudoers修改_sudoers配置使用
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:
全栈程序员站长
2022/08/31
2K0
Linux服务器权限管理之sudo高级应用
前面提到Linux系统修改权限与默认权限,它都是征对用户对于目录或文件的一些权限控制,那么其实真正从安全性角度上来考虑的话,是要控制用户一定执行命令的权限,也就是哪些用户可以执行哪些命令,不可以执行哪些命令,因此也就有了sudo这个应用
民工哥
2020/09/16
1.2K0
Linux sudo提权漏洞是这么回事
14号外媒曝出的sudo安全策略隐患,Security Bypass:CVE-2019-14287具体情况如下:
李俊鹏
2021/02/23
8800
Linux sudo提权漏洞是这么回事
学习笔记0321----linux基本命令(三)(用户和用户组管理)
linux基本命令 预习内容 1.用户配置文件、密码配置文件 1.1 用户配置文件 /etc/passwd 1.2 密码配置文件 /etc/shadow 1.3 创建用户useradd 删除用户userdel 2.用户组配置文件、组密码配置文件 2.1 用户组 /etc/group 2.2 用户组密码 /etc/gshadow 2.3 创建用户组 groupadd 删除用户组 groupdel 3. 修改用户账户信息 usermod 4.修改密码 passwd 5.生成密码工具 mkpasswd 6.
嘻哈记
2022/01/11
1.1K0
学习笔记0321----linux基本命令(三)(用户和用户组管理)
Linux提权姿势一:滥用SUDO提权
在渗透中,我们拿到的webshell和反弹回来的shell权限可能都不高,如果我们可以使用sudo命令访问某些程序,则我们可以使用sudo可以提权。在这里,我们可以通过调用一些二进制文件,这些文件可以帮助我们使用sudo命令提升特权。但是在特权升级之前,让我们了解一些sudoer文件语法,sudo命令是什么?;)。
黑白天安全
2020/09/29
12.8K0
Linux提权姿势一:滥用SUDO提权
Linux系统安全基础知识
基本的系统安全 物理安全和登录安全 禁用root登录和sudo 可插拔认证模块(PAM) 基于PAM的口令安全和口令策略 基于PAM的访问控制
黄规速
2022/04/14
2.8K0
Linux系统安全基础知识
Linux 操作命令大全
/etc/filesystems:系统指定的测试挂载文件系统类型 /proc/filesystems:Linux系统已经加载的文件系统类型 /lib/modules/2.6.18-274.el5/kernel/fs/ 文件系统类型的驱动所在目录 /etc/fstab /etc/mtab
编程之心
2021/01/29
14.1K0
Linux系统安全及应用
1、账号安全 系统账号清理 1)将非登录用户shell设为/sbin/nologin 2)锁定长期不使用的账号 3)删除无用的账号 4)锁定账号文件passwd、shadow 锁定:chattr +I /etc/passwd /etc/shadow 解锁:chattr -I /etc/passwd /etc/shadow 查看:lsattr /etc/passwd /etc/shadow 密码安全: 设置密码有效期:2种方式: 1)对新建用户设置:vim /etc/login.defs
L宝宝聊IT
2018/06/20
2K0
Linux sudo 命令使用简介
#编辑/etc/sudoers (注意,这里使用 visudo 而不是 vi 来设置。)
授客
2019/09/11
2.8K0
sudo和su的用法
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
dogfei
2020/07/31
9980
3.8 sudo命令
sudo命令,可以不切换用户就可以获取其他用户的权限来执行相关命令。(通常情况就是,给普通用户授权root用户的身份)
运维小白
2022/01/06
1.1K0
Linux系统权限知识一览
操作Linux时经常会遇到权限不足的问题,这就需要对Linux系统的权限机制有比较全面的了解,本文尝试总结Linux系统所具有的各种权限控制机制,然后介绍下使用sudo提权的操作。
YaoQi
2025/07/14
2150
Linux系统权限知识一览
权限管理su、sudo、限制root远程登录 原
语法: su [-] username “-”可有可无,加上“-”的作用是在切换用户时初始化当前用户的各种环境变量。普通用户su不加username时就是直接切换到root用户。 eg:
阿dai学长
2019/04/03
3.2K0
企业实战项目之服务器用户权限集中管理
实际生产环境中可能服务器相当多,随之服务器维护、管理人员也逐渐增多(运维+开发+项目经理+DBA等),因每个人员的操作水平不同,所以从业务角度与服务器安全性来看,一定的权限划分是有必要的,也是实际生产环境中必须要做的,为了解决用户的权限问题,今天来聊一聊服务器用户权限集中管理的解决方案。
民工哥
2020/09/16
1.5K0
企业实战项目之服务器用户权限集中管理
相关推荐
Ubuntu Server 权限管理:从基础到高级的深度探索
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档