欢迎各位兄弟 发布技术文章
这里的技术是共享的
在Linux系统中,su
命令用于切换当前用户身份到另一个用户。当你想要以另一个用户的身份执行某个命令时,通常会使用 -c
选项来指定要执行的命令。不过,需要注意的是,su - 用户名 -c
的语法实际上是稍微有些误解的,因为 -
和 -c
是两个独立的选项,它们之间不应该直接相连,除非 -
是作为 su
命令的一部分(单独使用时,su -
表示以目标用户的登录shell来启动一个新的shell环境)。
正确的用法是:
bash复制代码su - 用户名 -c '要执行的命令'
或者,如果你只是想要简单地切换用户并执行命令,而不是以用户的登录shell启动新shell,你可以省略 -
:
bash复制代码su 用户名 -c '要执行的命令'
但是,推荐使用带 -
的方式,因为它会加载目标用户的环境变量和其他登录shell相关的配置,这对于执行需要这些配置的命令来说是很重要的。
示例:
假设你想要以用户 john
的身份执行 ls
命令来列出其主目录下的文件,你应该这样做:
bash复制代码su - john -c 'ls'
这个命令会切换到 john
用户,加载其登录shell环境,并执行 ls
命令。执行完成后,你将返回到原始用户的shell环境。