su切换用户身份的两种不同情况
作者:NHHermit | 来源:互联网 | 2017-10-07 23:58
su切换用户身份的两种不同情况--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
功能说明:变更用户身份。
语 法:su [-flmp][--help][--version][-][-c <指令>][-s ][用户帐号]
补充说明:su可让用户暂时变更登入的身份。变更时须输入所要变更的用户帐号与密码。
参 数:
-c<指令>或--command=<指令> 执行完指定的指令后,即恢复原来的身份。
-f或--fast 适用于csh与tsch,使shell不用去读取启动文件。
-.-l或--login 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量。
-m,-p或--preserve-environment 变更身份时,不要变更环境变量。
-s或--shell= 指定要执行的shell。
--help 显示帮助。
--version 显示版本信息。
[用户帐号] 指定要变更的用户。若不指定此参数,则预设变更为root。
简单起见,它的用法还是贴了上来.进入正题:
切换用户身份的两种情况: su username 和 su - username.下面就来说说它们的区别
假设现在以一般用户身份登陆系统,但此又想要查看一下系统网络配置信息,需要切换到root用户.
第一种情况:
$ su root 切换到root用户,系统会提示输入口令,正确后切换成功
$ ifconfig 查看网络配置信息
但会发现,运行完 ifconfig命令后提示: bash: ifconfig: command not found
第二种情况:
$ su - root 切换到root用户,系统会提示输入口令,正确后切换成功(比上面多了一条横线)
$ ifconfig 查看网络配置信息
这时就能达到用户真正的目的,查看到网络配置信息.
这是为什么呢?我们都知道,有些命令是只有管理员才能使用的,一般用户没有权限.就像本例中的 ifconfig.用第二种方法切换身份,相当于重新登陆,此时用户的家目录和PATH等信息会发生改变,和直接用root登陆一致;但第一种情况,切换到root身份后用户的家目录和PATH仍然是原先一般用户的家目录和PATH,我们知道,PATH里设置的是一些路径,指向一些目录,这些目录包含着一些常用的工具.如果你的PATH没有设置相应的路径,那么直接运行ifconfig系统肯定会找不到ifconfig工具在哪里.所以会提示:没有这个命令.
熟悉的再巩固一下,呵呵,希望对初学者有帮助!
:0)1
看贴要回!谢谢
[ 本帖最后由 lyq617617 于 2008-7-15 22:55 编辑 ]
推荐阅读
-
本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ...
[详细]
蜡笔小新 2023-12-14 07:44:06
-
本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ...
[详细]
蜡笔小新 2023-12-13 21:47:39
-
-
本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ...
[详细]
蜡笔小新 2023-12-11 16:34:22
-
蜡笔小新 2023-12-10 21:14:20
-
为什么80%的码农都做不了架构师?最近在工作中需要使用crontab执行定时任务,处理memcacheq消息队列里的数据,但是发现在 ...
[详细]
蜡笔小新 2023-12-09 18:43:51
-
本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ...
[详细]
蜡笔小新 2023-12-09 10:11:06
-
本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ...
[详细]
蜡笔小新 2023-12-09 05:31:17
-
1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ...
[详细]
蜡笔小新 2023-10-17 19:29:00
-
其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ...
[详细]
蜡笔小新 2023-10-17 19:20:12
-
homemyUserscript.sh>>homemyUserlog.txt2>&1在script.sh ...
[详细]
蜡笔小新 2023-10-17 19:09:31
-
docker容器的数据管理一:数据卷实现数据的永久化,完全独立于容 ...
[详细]
蜡笔小新 2023-10-17 15:59:03
-
systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ...
[详细]
蜡笔小新 2023-10-17 14:49:15
-
本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ...
[详细]
蜡笔小新 2023-10-17 14:46:37
-
本文介绍shell中的expr和bash自带的 ...
[详细]
蜡笔小新 2023-10-17 13:09:38
-
我创建了一个SSH密钥,当我以admin身份在GitBash中运行ssh-Tgit@gitlab.com时,我得到W ...
[详细]
蜡笔小新 2023-10-17 12:58:58
-