sudo su 后不加载 profile.d 中的sh
sudo su 后不加载 profile.d 中的sh
问题解释:
在使用sudo su切换到root用户后,/etc/profile.d目录下的脚本没有被执行。这通常是因为sudo和su命令的行为不同导致的。sudo命令加载特定的安全策略来执行命令,而su命令切换用户后启动新的登录shell,它会加载用户的登录脚本,如.bashrc或.profile。
解决方法:
-
直接使用
sudo -i或sudo -s来代替sudo su,这样会以root用户的身份启动登录shell,会加载/etc/profile.d下的脚本。 -
如果你已经使用了
sudo su并且想要手动加载脚本,可以执行以下命令:for script in /etc/profile.d/*.sh; doif [ -r "$script" ]; then. "$script"fidone这段命令会遍历
/etc/profile.d目录下的所有.sh文件,并判断它们是否可读,然后执行它们。 -
如果你需要为特定的用户手动执行脚本,可以切换到该用户,然后执行脚本:
su - <username>for script in /etc/profile.d/*.sh; doif [ -r "$script" ]; then. "$script"fidone
确保在执行这些操作时具有必要的权限,并且理解这些操作的影响。在系统级别进行配置更改时,请小心操作。
摘抄自网络,便于检索查找。

浙公网安备 33010602011771号