su 的 Shell 环境

su 的 Shell 环境

我有一些 ls 的别名和修改,希望它们随时可用。在我使用 sudo up 后以 root 身份登录时,是否可以设置环境变量以供使用sudo su

答案1

除了 sudo su 是一个糟糕的想法(因为它绕过了 sudo 提供的审核)之外,您还可以通过以下两种方式之一执行此操作:修改 root 的 .profile(这会影响所有 sudo 用户),或者设置在 sudo su 之后运行的 shell 脚本,为您提供所需的变量和别名。

答案2

没有仅用于 su 的 .profile,但您可以编写一个 .profile 来检测您是否正在执行 su。

如果您被 su 了,那么“who am i| awk '{print $1}'”将是您来自的用户,而“whoami”将是您成为的用户。

如果这些不同,那么你就错了,所以做你需要做的事情。

答案3

中的“su”须藤命令虽然看起来相似,但代表不同的东西。

代表替代用户,通常称为切换用户。 须藤代表超级用户执行,或“以超级用户的身份执行此操作”。

如果你使用以下命令执行了为 root 保留的命令须藤,将使用您的环境(路径、变量等),即在 /Users/$your_username/.profile 文件中设置的环境。

如果你输入,您切换到 root 用户并可以访问仅限于该用户的文件和执行二进制文件,但您将使用上一个标准用户的环境来执行这些操作。

如果你输入(注意减号)您将切换到 root 用户并获取他的环境。

在 Mac 上,位于 /var/root 的 root 用户没有 .profile 文件。解决方法是创建一个(您可以复制用户的 .profile 文件),将其放在 /var/root/ 中,然后将您需要的任何别名、路径等添加到此文件中。

为了调用该文件,您需要以 root 用户身份注销,然后重新登录。

答案4

以 jRandomUser 身份输入

sudo bash

(或您正在使用的任何 shell)使用 jRandomUser 的 shell 配置文件使您成为“root”。输入

exit

完成后,放弃您的权限并返回以 jRandomUser 身份工作。显然,请谨慎使用。每当我的 UID == 0 时,我的 .bashrc 都会将我的提示设置为鲜艳的颜色。

相关内容