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
确保在执行这些操作时具有必要的权限,并且理解这些操作的影响。在系统级别进行配置更改时,请小心操作。
摘抄自网络,便于检索查找。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律