linux基本功系列之su命令

这篇具有很好参考价值的文章主要介绍了linux基本功系列之su命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

linux su,# 1 - linux基本功-基础命令实战,linux,运维,服务器

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. su命令介绍

su命令来自于英文单词“switch user”的缩写,其功能是用于切换用户身份。

管理员切换至任意用户身份而无需密码验证,而普通用户切换至任意用户身份均需密码验证。

另外添加单个减号(-)参数为完全的身份变更,不保留任何之前用户的环境变量信息。

特别说明的是:
切换用户分为login-shell方式与non-login shell方式,区别在于是否在su后面加上-,主要涉及到PATH/USER/MAIL等环境变量读取方法。使用root用户切换至任何用户,都不需要输入用户密码。

二. 语法格式及常用选项

依照惯例,我们还是要查看一下帮助文档


[root@mufenggrow test]# su -help

用法:
 su [选项] [-] [USER [参数]...]

将有效用户 id 和组 id 更改为 USER 的 id。
单个 - 视为 -l。如果未指定 USER,将假定为 root。

选项:
 -m, -p, --preserve-environment  不重置环境变量
 -g, --group <>             指定主组
 -G, --supp-group <>        指定一个辅助组

 -, -l, --login                  使 shell 成为登录 shell
 -c, --command <命令>            使用 -c 向 shell 传递一条命令
 --session-command <命令>        使用 -c 向 shell 传递一条命令
                                 而不创建新会话
 -f, --fast                      向shell 传递 -f 选项(csh 或 tcsh)
 -s, --shell <shell>             若 /etc/shells 允许,则运行 shell

 -h, --help     显示此帮助并退出
 -V, --version  输出版本信息并退出

通过帮助文档,我们整理出几个常用的参数:
linux su,# 1 - linux基本功-基础命令实战,linux,运维,服务器

三. 参考案例

3.1 切换到root用户

案例一: 切换root,但是不切换环境
我们需要创建一个普通用户mufeng,然后使用su命令切换到root用户, 但是shell环境依然是普通用户的shell

## 创建用户
[root@mufenggrow test]# useradd mufeng
[root@mufenggrow test]# echo 12345678 |passwd --stdin mufeng
更改用户 mufeng 的密码 。
passwd:所有的身份验证令牌已经成功更新。
## 登录普通用户
[root@mufenggrow test]# ssh mufeng@192.168.1.101
The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established.
ECDSA key fingerprint is SHA256:9uJW2mOqzhYy5gtMsTHmt4V584na0LFqEGYXxA4rUM8.
ECDSA key fingerprint is MD5:42:35:b0:99:2c:04:c5:94:e6:f4:74:6d:af:ec:07:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.101' (ECDSA) to the list of known hosts.
mufeng@192.168.1.101's password: 

## 切换root
[mufeng@mufenggrow ~]$ su
密码:
[root@mufenggrow mufeng]# whoami
root
## 切换完之后,还是在mufeng的家目录下
[root@mufenggrow mufeng]# pwd
/home/mufeng
[root@mufenggrow mufeng]# 


案例二: 切换root用户,同时切换环境

这时候就需要一个在root前面加上 - 来切换,切换完成后,用户和shell环境都切换为root

[root@mufenggrow mufeng]# ssh mufeng@192.168.1.101
mufeng@192.168.1.101's password: 
Last login: Wed Jan 25 17:10:32 2023 from mufenggrow
[mufeng@mufenggrow ~]$ pwd
/home/mufeng
[mufeng@mufenggrow ~]$ su - root
密码:
上一次登录:三 125 17:11:50 CST 2023pts/1 上
[root@mufenggrow ~]# pwd
/root
[root@mufenggrow ~]# 

3.2 切换到指定用户

从root用户切换到普通用户,无需输入密码:

[root@mufenggrow ~]# su - mufeng
上一次登录:三 125 17:16:59 CST 2023从 mufenggrowpts/2 上
[mufeng@mufenggrow ~]$ exit
登出
[root@mufenggrow ~]# su mufeng
[mufeng@mufenggrow root]$ 

可以看到不加横线的时候,切换过去之后,还是在root目录上。

也就是说,使用- 表示连同shell环境一同切换。

3.3 不切换成root,但执行root才能执行的命令

案例一: 不切换成root,执行head -n 3 /etc/passwd

此时会用到 -c参数
-c, --command <命令> 使用 -c 向 shell 传递一条命令

[mufeng@mufenggrow ~]$ whoami
mufeng
[mufeng@mufenggrow ~]$ head -n 3 /etc/shadow
head: 无法打开"/etc/shadow" 读取数据: 权限不够

[mufeng@mufenggrow ~]$ su - root -c "head -n 3 /etc/passwd"
密码:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

需要注意的是: -c后面的命令一定要加上 双引号。

案例二:不切换root,执行lastb, 执行后返回原用户

[mufeng@mufenggrow ~]$ whoami
mufeng
## 不切换成root用户,但执行lastb命令
[mufeng@mufenggrow ~]$ su - root -c lastb
密码:

btmp begins Thu Dec  8 19:36:40 2022

## 切换用户执行命令,执行玩之后返回原用户
[mufeng@mufenggrow ~]$ su -c ls  root
密码:
anaconda-ks.cfg  initial-setup-ks.cfg  test  公共  模板  视频  图片  文档  下载  音乐  桌面

su命令的缺憾

su命令的局限在于,如果主机是多人管理的环境,如果大家都用su命令切换至root身份,每个人都需要知道root密码,非常不安全。

su 和su- 的区别

su命令和su -命令最大的本质区别就是:

  • 前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
  • 而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

linux su,# 1 - linux基本功-基础命令实战,linux,运维,服务器
linux su,# 1 - linux基本功-基础命令实战,linux,运维,服务器文章来源地址https://www.toymoban.com/news/detail-815368.html

到了这里,关于linux基本功系列之su命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux基本功之列之wget命令实战

    大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第56篇文章。 专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。 如果文章有什么需要改进的地方还请

    2024年02月02日
    浏览(46)
  • linux基本功之历史记录history命令实战

    💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。 💓 只要地球不爆炸,我们永远不放假,只要宇宙不重启,我们永远不

    2024年02月08日
    浏览(61)
  • linux基本功之fsck命令详解

    💓 大家好,我是沐风晓月,双一流院校英语+计算机双专业在读; 💓 想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。 💓

    2024年02月06日
    浏览(62)
  • 【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 上)

    在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地

    2024年01月16日
    浏览(59)
  • 苦练基本功——数据仓库

    🌿 最近在复习一些数据仓库和维度建模的知识,之前博客也写过,那就一起整理一下,对往期内容感兴趣的同学可以参考👇: 链接: 数据仓库入门. 链接: 大数据之维度建模中的重要概念. 🌰 废话不多说,让我们开始今日份的学习吧。   数据技术是指通过使用计算机和相

    2024年02月02日
    浏览(43)
  • python爬虫基本功(一)--初识python爬虫与爬虫学习路径

    大家好,这里是Kaiser。👏👏今天想给大家介绍下python爬虫的知识,我将与大家一起去揭开python爬虫的神秘面纱,字不多敲,让我们进入今天的主题:初识python爬虫。 爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或脚本,是搜

    2024年02月16日
    浏览(51)
  • 用vue实现列表的增删改查基本功能(简单易懂)

    目录 文章目录 前言 一、安装vue 二、使用vue 三、相关代码 四、效果图如下 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 vue开发文档参考

    2024年02月11日
    浏览(42)
  • 前端基本功 用 React Hooks + Antd 实现一个 Todo-List

    To-do list(待办事项列表)是用来记录和管理要完成的任务、活动或项目的列表。它是一种简单而常见的工具,用于帮助人们组织和安排日常生活中的任务。每当您有一项任务需要完成或者要记住某些事情时,您可以将它添加到待办事项列表中。 学习前端的一些新知识时,经

    2024年02月17日
    浏览(37)
  • 【MySQL】MySQL触发器入门宝典,助力MySQL初学者打下基本功

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:重温MySQL 在MySQL数据库中,大家都听过触发器。对于MySQL初学者而言,理解触发器的概念和应用是非常重要的。本文主

    2024年02月15日
    浏览(48)
  • 3年经验来面试20K的测试岗,连基本功都不会,还不如去招应届生

    为了新项目做准备,这段时间公司面了不少人,竟然没有一个满意的。一开始瞄准的就是中高级的水准,也没指望来技术大牛,提供的薪资在15-25K,面试的人很多,但结果让人失望。 从简历上来说都是3-4年工作经验,但面试中,不会工具方法和编程框架,基本功的技术很多也

    2024年04月24日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包