su命令学习

变更到其他用户

su username
su命令代表“switch user”(切换用户),并不是大多数人想象的“super user”(超级用户),能够让某个用户暂时以另一个用户的身份进行操作。当在shell中想快速成为root用户时,这个命令最常用,运行一两个命令,然后恢复到普通的非root用户。
只要输入su,后面跟上你想要采用的用户身份就可以了。

$ ls
/home/scott/libby
$ whoami
scott
$ su gromit
Password:
$ whoami
gromit
$ ls
/home/scott/libby

例子中用了一个新命令,它就是whoami。它只是告诉你你是谁。

变更到其他用户,包括其环境变量

su -l
只有在知道用户密码的情况下,su命令才起作用。没有用户密码,就不能切换用户。如果正常运行,你就会切换到用户在/etc/passwd文件中指定的shell,如sh、tcsh或者bash。大多数Linux用户只使用默认的bash shell,所以你可能不会看到有任何区别。在上一个例子中也要注意的是,当改变用户时目录并没有发生变化。从本质上来说,你已经变成了gromit,但使用的仍然是scott的环境变量。
解决这个问题的办法就是使用-l(或–login)选项。

$ ls
/home/scott/libby
$ whoami
scott
$ su -l gromit
Password:
$ whoami
gromit
$ ls
/home/gromit

这个例子看起来事实是你现在位于gromit的home目录,这就证明确实发生了变化。-l选项告诉su命令使用一个登录shell,好像gromit真正登录到机器中一样。现在你用的是gromit的名字,使用的也是gromit的环境变量,还位于gromit的home目录(就是gromit初次登录到这台机器后所在的位置)。

变更成root用户

su
在本章开始曾多次提及用su命令来将其他用户身份变更成root。你可以使用su root,或者更好一些,使用su -l root,但是还有一种更快捷的方法。
$ whoami
scott
$ su
Password:
$ whoami
root

变更成root用户,包括其环境变量

su -
只输入su相当于输入了su root,即拥有了root的名义和能力,而且只有这些了。实际上,非root环境变量仍然存在,如下所示:

$ ls
/home/scott/libby
$ whoami
scott
$ su
Password:
$ whoami
root
$ ls
/home/scott/libby

当使用su –时,不但用户变更成了root,而且还使用了root的环境变量。

$ ls
/home/scott/libby
$ whoami
scott
$ su -
Password:
$ whoami
root
$ ls
/root

在su后面附加“-”与su -l root的效果相同,但是输入的字符少一些。拥有了root的用户名、能力和环境,意味着你完全成为root用户了。对于计算机来说,root用户能够执行的任何操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天南地北飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值