首页 > 系统相关 >Linux下 sudo 和 su 的区别

Linux下 sudo 和 su 的区别

时间:2024-04-08 21:27:11浏览次数:24  
标签:sudo 用户 su 切换 Linux root useradd

su 介绍及使用

su命令就是切换用户的工具,比如我们是以普通用户 guest 登录的,但要添加用户,执行 useradd ,guest 用户没有这个权限,只有 root 有权限。

解决办法有两个,一是退出 guest 用户,重新以 root 用户登录;二是不退出 guest 用户,使用 su 来切换到 root 下进行添加用户的操作,操作完成后再退出 root。

我们可以看到通过 su 切换是一种比较好的办法。通过 su 可以在用户之间切换,超级权限用户 root 向普通用户切换不需要密码,普通用户切换到其它任何用户都需要密码验证。

su root # 切换到 root,需要输入 root 用户的密码
su # 默认切换到 root
su - root # 切换到 root,同时切换到 root 的工作目录中
su szz # 切换到 szz 用户

sudo 介绍及使用

sudo是一种权限管理机制,依赖于/etc/sudoers,其定义了授权给哪个用户可以以管理员的身份能够执行什么样的命令。

格式:sudo -u USERNAME COMMAND

默认情况下,只有 root 用户可以执行 sudo 命令。root 用户通过使用 visudo 命令编辑 sudo 的配置文件/etc/sudoers,才可以授权其他普通用户执行 sudo 命令。

注意,不能直接 vim /etc/sudoers,必须使用 visudo 命令来编辑

sudo 的运行流程:

  1. 当用户运行 sudo 时,系统于/etc/sudoers 文件里查找该用户是否有运行 sudo 的权限
  2. 若用户具有运行 sudo 的权限。那么让用户输入自账号的 password
  3. 如果 password 正确,就执行 sudo 后面的命令。root 运行 sudo 不需要输入 password,切换到的身份与运行者身份相同的时候,也不需要输入 password。
visudo # 编辑 /etc/sudoers 文件
your_user_name ALL=(ALL)   ALL # 将用户添加到 sudo 组,就可以使用 sudo 命令了
your_user_name ALL=(ALL) NOPASSWD:  ALL # 默认情况下密码 5 分钟过期,添加了 NOPASSWD,就不需要输入密码了
your_user_name ALL=(root) NOPASSWD:  /usr/sbin/useradd # 只有 useradd 命令可以 sudo 执行
sudo -u root useradd # 以 root 的身份执行 useradd
sudo useradd # 以 root 的身份执行 useradd,默认就是 root
sudo su # 等同于 sudo su root,以 root 的身份切换到 root 用户

参考

Linux中sudo、su和su -命令的区别小结
Linux给用户添加sudo权限

标签:sudo,用户,su,切换,Linux,root,useradd
From: https://www.cnblogs.com/strongmore/p/18049568

相关文章

  • sudo fdisk -l命令出现警告:Partition 1 does not start on physical sector boundary
    出现这个警告的原因是分区起点不在物理扇区边界。用我们的常用的说法就是存在分区未4K对齐,下面浅浅解释一下:早期的硬盘一个扇区的大小是512个字节,后来随之磁盘容量的不断增加和读写效率提升的要求,国际硬盘协会制定了全新标准,将每个扇区的大小调整为4096个字节,也就是4KB,这种扇区又......
  • 吴恩达机器学习笔记:第 7 周-12支持向量机(Support Vector Machines)12.1-12.3
    目录第7周12、支持向量机(SupportVectorMachines)12.1优化目标第7周12、支持向量机(SupportVectorMachines)12.1优化目标到目前为止,你已经见过一系列不同的学习算法。在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法......
  • linux环境安装——mysql安装复习
    B站地址:https://www.bilibili.com/video/BV1qS4y1h77S/?spm_id_from=333.337.search-card.all.click&vd_source=79bbd5b76bfd74c2ef1501653cee29d6    下面这个文件和mysql有冲突,需要优先查找并删除:   阿里云系统:cenos7 64位数; 安装包:mysql-8.0.30-linux-g......
  • Linux 性能分析工具大全
    vmstat--虚拟内存统计vmstat(VirtualMeomoryStatistics,虚拟内存统计)是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。vmstat的常规用法:vmstatintervaltimes 即每隔 interval 秒采样一次,共采样 times 次,如果省略 times,则一直......
  • Linux
    文件权限管理1.Linux用户权限解析我们linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。所以对于了解linux系统中的各种权限及要给用户,服务等分配合理的权限十分重要2.基本权限UGO[root@localhost~]#ll/opt总用量0drwxr-xr-x10root......
  • linux账户
    linux的账户类型有三类linux的uid范围是1-600001超级管理员root02程序用户1-499(centos6以前),1-999(centos7以后)3普通用户500+(centos6以前),1000+(centos7以后)关于账户常用命令who查看当前登录用户信息last命令-x:显示系统开关机以及执行等级信息lastlog查看所有用......
  • Linux应用开发(3):Linux时间操作(time、mktime、localtime等)
    1.简述        在Linux系统中,时间操作函数是编程中经常使用的一部分,它们允许程序获取和设置系统时间,以及对时间进行各种处理。以下是一些常用的时间操作函数的详细介绍。2.时间操作(1)time():获取1970年1月1日以来的总的秒计数        time()函数是时间......
  • Linux curl命令详解
    Linuxcurl命令详解发布时间:2014-10-2710:25:36来源:linux网站作者:linux人命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。语法:#curl[op......
  • Linux基本命令入门详解
    Linux基本命令是Linux系统操作的基础,掌握这些命令对于初学者来说至关重要。下面将详细介绍一些常用的Linux基本命令,并附上实际例子。一、目录操作命令pwd:显示当前所在的目录路径。例子:在终端中输入pwd,将显示当前用户所在的目录路径,如/home/user。cd:切换目录。例子:输......
  • Linux命令之lldptool命令
    LLDP是一个数据链路层发现协议,LLDP协议使得接入网络的一台设备可以将其主要的能力,管理地址,设备标识,接口标识等信息发送给接入同一个局域网络的其它设备。lldptool工具采用的是LLDP协议,一般我们使用lldptool是为了得到设备的物理拓扑结构以及管理配置信息,比如说,和eth1网口相连的网......