linux su密码指的是什么
来源:亿速云
时间:2024-04-30 23:06:36 452浏览 收藏
文章不知道大家是否熟悉?今天我将给大家介绍《linux su密码指的是什么》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
su的密码就是root根用户的密码;安装Linux或者Unix操作系统的时候,会有提示让用户输入root的密码,这也是执行“sudo su”命令以后出现让用户输入的密码。su全称“switch user”,可让用户暂时变更登入的身份,除root外变更时须输入所要变更的用户帐号与密码。
su密码是什么意思
su的密码就是root根用户的密码呢,安装Linux或者Unix操作系统的时候,会有提示让您输入root的密码的,这就是执行sudo su命令以后出现让您输入密码的密码,注意这个密码是不会显示星号或者其他符号的,一直是空白的,输入完成以后直接回车就好。
su命令介绍
su(英文全拼:switch user)。在Linux中 su 命令可让用户暂时变更登入的身份,除 root 外变更时须输入所要变更的用户帐号与密码。
使用权限:所有使用者。
功能:变更用户身份,若不指定用户帐号,则预设变更为root。
语法
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
参数说明:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数
常用范例:
例一:变更帐号为 root 并在执行 ls 指令后退出变回原使用者
命令:su -c ls root
变更帐号为 root 并在执行 ls 指令后退出变回原使用者。
[root@localhost ~]# su -c ls root 公共 视频 文档 音乐 anaconda-ks.cfg 模板 图片 下载 桌面 initial-setup-ks.cfg
例二:切换用户
命令: su root
testuser切换成root,相当于用户改成root但是操作的是testuser环境
小权限切换大权限要求输入密码;大权限切换小权限不需要输入密码。
切换用户,只能获得用户的执行权限,不能获得环境变量。
[testuser@localhost ~]$ whoami //显示当前用户 testuser [testuser@localhost ~]$ pwd //显示当前目录 /home/testuser [testuser@localhost ~]$ su root //切换到root用户 密码: [root@localhost testuser]# whoami root [root@localhost testuser]# pwd /home/testuser
例三:切换用户,改变环境变量
命令:su - root
testuser切换成root,相当于用户改成root,操作的是root环境。即变更帐号为 root 并改变工作目录至 root 的家目录。
切换到用户并获得该用户的环境变量及执行权限。
[testuser@localhost ~]$ whoami testuser [testuser@localhost ~]$ pwd /home/testuser [testuser@localhost ~]$ su - root 密码: [root@localhost ~]# whoami root [root@localhost ~]# pwd /root
su 和 su - 的区别
注意,使用 su 命令时,有 - 和没有 - 是完全不同的,- 选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。我们知道,环境变量是用来定义操作系统环境的,因此如果系统环境没有随用户身份切换,很多命令无法正确执行。
举个例子,普通用户 lamp 通过 su 命令切换成 root 用户,但没有使用 - 选项,这样情况下,虽然看似是 root 用户,但系统中的 $PATH 环境变量依然是 lamp 的(而不是 root 的),因此当前工作环境中,并不包含 /sbin、/usr/sbin等超级用户命令的保存路径,这就导致很多管理员命令根本无法使用。不仅如此,当 root 用户接受邮件时,会发现收到的是 lamp 用户的邮件,因为环境变量 $MAIL 也没有切换。
初学者可以这样理解它们之间的区别,即有 - 选项,切换用户身份更彻底;反之,只切换了一部分,这会导致某些命令运行出现问题或错误(例如无法使用 service 命令)。
通过下面这个例子,可直观的看到 su 和 su - 的区别:
[lamp@localhost ~]$ whoami lamp #查询用户身份,我是lamp [lamp@localhost ~]$ su root 密码: <-输入root密码 #切换到root,但是没有切换环境变量。注意:普通用户切换到root需要密码 [root@localhost ~]# env | grep lamp #查看环境变量,提取包含lamp的行 USER=lamp #用户名还是lamp,而不是root PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lamp/bin #命令査找的路径不包含超级用户路径 MAIL=/var/spool/mail/lamp PWD=/home/lamp LOGNAME=lamp #邮箱、主目录、目前用户名还是lamp
可以看到,在不使用 su - 的情况下,虽然用户身份成功切换,但环境变量依旧用的是原用户的,切换并不完整。
今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
500 收藏
-
450 收藏
-
420 收藏
-
284 收藏
-
124 收藏
-
501 收藏
-
351 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习