linux常用命令(53):su命令

本文详细解析了Linux环境下su命令的使用方法,包括其语法、常用范例及与su-命令的区别,旨在帮助用户高效进行用户身份切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

su命令

    su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。 

语法

su(选项)(参数)    

选项

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件; 
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量; 
-s<shell>或--shell=<shell>:指定要执行的shell; 
--help:显示帮助; 
--version;显示版本信息。

参数


用户:指定要切换身份的目标用户。


常用范例

   变更帐号为root并在执行ls指令后退出变回原使用者:  

   su -c ls root 

   变更帐号为root并传入-f选项给新执行的shell:  

   su root -f 

   变更帐号为test并改变工作目录至test的家目录:  su -test


su命令和su -命令最大的本质区别给大家详解一下:

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;

后者连用户和Shell环境一起切换成root身份了。

只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

$pwd

/home/test (当前用户目录)

$su ****** (输入密码)

#pwd (再次查看路径)

/home/test (还是当前用户目录)

但是如果换成su -的话结果如下:

$pwd

/home/test(当前用户目录)

$su -

****** (输入密码)

#pwd (再次查看路径)

/root (切换到超级用户目录)


  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值