文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

linux基本功系列之su命令

2023-10-28 08:12

关注

在这里插入图片描述

文章目录

前言🚀🚀🚀
想要学好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  输出版本信息并退出

通过帮助文档,我们整理出几个常用的参数:
在这里插入图片描述

三. 参考案例

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.101The 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)? yesWarning: 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]# whoamiroot## 切换完之后,还是在mufeng的家目录下[root@mufenggrow mufeng]# pwd/home/mufeng[root@mufenggrow mufeng]# 

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

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

[root@mufenggrow mufeng]# ssh mufeng@192.168.1.101mufeng@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 ~]$ whoamimufeng[mufeng@mufenggrow ~]$ head -n 3 /etc/shadowhead: 无法打开"/etc/shadow" 读取数据: 权限不够[mufeng@mufenggrow ~]$ su - root -c "head -n 3 /etc/passwd"密码:root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin

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

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

[mufeng@mufenggrow ~]$ whoamimufeng## 不切换成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 -命令最大的本质区别就是:

总结

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

请添加图片描述
在这里插入图片描述

来源地址:https://blog.csdn.net/wisdom_futrue/article/details/128761456

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯