热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

su切换用户身份的两种不同情况

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 编辑 ]
推荐阅读
author-avatar
NHHermit
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有