gpt4 book ai didi

linux - 'sudo -su' 到底是什么?

转载 作者:行者123 更新时间:2023-12-05 02:07:03 25 4
gpt4 key购买 nike

我有一个 linux 用户 (user2),它已设置为 shell /usr/sbin/nologin(以阻止登录)。不,当我尝试使用 sudo su user2 切换到该用户时,我得到的信息是该帐户不可用。但是当我使用 sudo -su user 时,它工作正常。

现在 su-su 有什么区别。或者 -su 是做什么的。我试图通过 -h--help 或联机帮助页获得帮助,但找不到任何有用的信息。

最佳答案

sudo -su usersudo -s -u user 的缩写。 -s 选项表示运行环境变量 SHELL 中指定的 shell(如果已设置),否则运行用户的登录 shell-u user 选项表示以指定用户而不是 root 身份运行命令。这些选项记录在 man sudo 下。

sudo su user 将使用 sudo 作为 root 用户运行命令 su usersu 命令随后将调用指定用户名的登录 shellsu user 命令可以在不使用 sudo 的情况下运行,但是通过以 root 用户身份运行它不需要目标用户的密码。有关详细信息,请参阅 man su

因此,当目标用户与调用用户具有相同的登录 shell 时,这两个命令看起来很相似(很大程度上是巧合)并且效果有些相似。但是,如果 SHELL 环境变量设置在调用用户的环境中(通常是这样,通常是 /bin/bash),并且目标用户有一个与此不同的登录 shell(例如 /usr/sbin/nologin),这两个命令执行的 shell 之间存在差异,这就是您所看到的.

关于linux - 'sudo -su' 到底是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62219908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com