当前位置: 首页 > news >正文

【Linux】su、su-、sudo、sudo -i、sudo su - 命令有什么区别?分别适用什么场景?

目录

su

su- 

sudo

sudo -i

sudo su -

/etc/sudoers


su

该命令将启动非登录shell,即虽然以该用户身份启动shell,但使用的是原始用户的环境设置。普通用户账户运行 su 命令切换到另一用户账户,需提供要切换的账户的密码。root用户,无需密码。默认情况下,不指定其他用户,su 将切换到root用户。

所以 su 命令往往适用于你只需切换用户执行少数命令,而不依赖于目标用户的完整环境。

su- 

启动登录shell,即切换用户同时切换到该用户的环境,包括环境变量、工作目录等。

su - 命令往往适用于需要在目标用户的完整环境下执行任务时,特别时需要正确的环境变量、工作目录和权限设置时,或者需要执行一系列任务、脚本或程序时,可以使用该命令。

处于安全原因,在某些情况下,root 用户没有配置有效的密码,不能直接使用密码以root身份登录系统,此外,也无法使用 su 命令获取交互式shell,就可以使用 sudo 命令来获取root访问权限。

sudo

该命令是一种临时提升用户权限以执行特定命令的方法,要求用户输入自己的密码以进行身份验证,即登陆时不需要知道 root 密码,用自己的密码就可以访问。启动非登录shell,使用原始用户的环境设置。并且默认将所有执行的命令记录到 /var/log/secure 中。

但并不是所有用户都能使用sudo命令提升权限,一般要在 /etc/sudoers 配置文件中添加配置以允许用户使用sudo命令。

sudo -i

该命令用于获得 root 用户身份并启动一个登录 shell,会模拟一个 root 用户的登录环境,启动一个新的 shell 会话并加载 root 用户的环境变量(例如,$HOME$PATH 等),因此它会把你切换到 root 用户的环境下。

sudo su -

首先使用 sudo 获得超级用户权限,然后使用 su - 切换到 root 用户的环境,进入 root 用户的登录 shell。这意味着你不仅以 root 用户的身份运行命令,还会切换到 root 用户的 环境变量工作目录

/etc/sudoers

文件是sudo命令的主要配置文件。

来自该文件的这一行表示为wheel组成员启动sudo访问权限:

%wheel        ALL=(ALL:ALL)     ALL

  • %wheel 是规则应用到的用户或组。%指定一个组。
  • ALL=(ALL:ALL)指定在具有此文件的 任何主机 上(ALL),wheel组中的用户可以在系统上以 任何其他用户(ALL)和 任何其他组(ALL)运行命令。
  • 最后的ALL命令指定wheel组中的用户可以运行的任何命令

默认情况下,/etc/sudoers 文件还包含 /etc/sudoers.d 目录中所有的文件内容,作为配置文件的一部分。通过使用这种层次结构,我们只需将相应的文件放入该目录中,即可为用户添加 sudo 访问权限。

相关文章:

  • 儿童内侧颞叶癫痫伴海马硬化的体素形态学分析和机器学习分类
  • Vue —— 实用的工具函数
  • Bp靶场 - Jwt
  • OceanBases数据库单机社区版保姆级安装
  • CNN:卷积到底做了什么?
  • 解决ubuntu安装软件时候deb文件的闪退问题
  • cas 5.3单点登录中心开发手册
  • 深度学习Y5周:yolo.py文件解读
  • LeetCode每日一题4.16
  • 使用CubeMX新建EXTI外部中断工程——使用回调函数
  • 理解 iptables 的表与链
  • Maven 多仓库与镜像配置全攻略:从原理到企业级实践
  • Androidjetpack之viewmodel的原理分析
  • 2025年最新Web安全(面试题)
  • 网络服务之DHCP
  • 新加坡太白私募:金融创新与稳健发展的典范
  • 探索亮数据Web Unlocker API:让谷歌学术网页科研数据 “触手可及”
  • 图像预处理-图像掩膜
  • mysql表类型查询
  • 修改镭神激光雷达ip
  • 为学校网站做网站推广策划书/什么是网络营销策划
  • 襄阳门做网站/网络营销网站推广
  • 网站建设的行业资讯_/seo搜索优化 指数
  • wordpress数据过滤/win10优化
  • 哈尔滨 做网站/百度知道答题赚钱
  • 个人备案的网站能做什么/怎么卸载windows优化大师