linux 命令 su,shell脚本su命令输入密码

su命令SU

在Linux系统中,"SU"命令,全称为"Switch User",它的主要功能是让用户在不同权限级别间切换,包括从普通用户切换到超级用户(root)或反之。使用su命令时,需要输入目标用户的密码,除非在切换回普通用户时,因为超级用户无需密码。

su命令的基本语法是:su[-flmp][--help][--version][-][-c][-s][欲切换账户]。其中,参数-c或--command=允许你在切换用户后立即执行一个命令,然后恢复原身份;-f或--fast模式下,shell将跳过启动文件,适用于csh和tsch;-l或--login选项使得环境变量与目标用户保持一致,如home、shell、user等;-m或-p选项保留环境变量;-s指定执行的shell;--help和--version用于显示帮助信息和版本信息。

值得注意的是,root权限极其强大,几乎可以执行所有操作,因此在日常使用中,通常建议以普通用户身份登录。若需临时处理需要root权限的事务,可以输入su root,此时需要输入密码,环境变量保持不变,只能使用trunk用户的路径,不能访问root用户的特殊资源。而切换回trunk用户时,只需输入su- trunk,无需密码,权限将自动恢复到trunk用户级别。

linux su命令详解

su命令用于切换当前用户身份到指定用户或者以指定用户的身份执行命令或程序,命令用于变更为其他使用者的身份,除 root外,需要键入该使用者的密码。

语法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参考例子:

切换到linux265用户,并改变为linux265用户环境变量:

[root@linux265~]# su- linux265

参数:

-c或--command执行完指定的指令后,即恢复原来的身份

-f或--fast适用于csh与tsch,使shell不用去读取启动文件

-l或--login改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname,此外,也会变更PATH变量

-m,-p或--preserve-environment变更身份时,不要变更环境变量

-s或--shell指定要执行的shell

--help显示帮助信息

--version显示版本信息

Linux下su命令与su-命令有什么区别

在Linux环境中,`su`命令与`su-`命令在功能上存在以下差异:

1.用户和Shell环境的切换:

- `su`命令:该命令仅切换用户身份,但Shell环境保持不变。这意味着,虽然你变成了root用户,但使用的仍然是切换前用户的环境设置。

- `su-`命令:这个命令不仅切换用户身份,同时也切换到root用户的Shell环境。这种切换包括环境变量、配置文件等,确保了root用户的全局环境。

2.工作目录的变化:

-使用`su`命令切换后,当前工作目录通常保持不变,仍然是原始用户的工作目录。

-使用`su-`命令切换后,当前工作目录会切换到root用户的主目录。

3.环境配置文件的读取:

- `su`命令不会读取目标用户的环境配置文件,因此可能会遇到环境变量不正确或命令找不到的问题。

- `su-`命令则会读取目标用户的环境配置文件,确保环境变量和路径设置正确。

4.使用`service`命令的能力:

-当你使用`su root`切换到root用户时,通常无法直接使用`service`命令,因为它依赖于特定的环境变量和配置。

-使用`su-`命令切换后,由于环境配置正确,你可以使用`service`命令。

5.环境变量的差异:

- `su`命令切换后,环境变量`PATH`通常不会改变,可能会导致某些root用户才能执行的命令无法找到。

- `su-`命令切换后,环境变量`PATH`会被更改为root用户的`PATH`,使得所有root用户能够使用的命令都可以正常执行。

总结来说,`su-`命令提供了更加完整的root用户体验,因为它确保了环境变量和路径的正确性,而`su`命令则是一个更轻量级的切换选项,适合只需要执行个别root权限命令的情况。

阅读剩余
THE END