我正在寻找一种方法来消除某些安装程序的不良行为,这些安装程序会附加代码以.bashrc
自动强制加载其环境。这个问题出现过几次,主要是在 Conda 上,在某些情况下,用户最终会遇到帐户损坏而无法再登录的情况。
我尝试在 .bashrc 末尾添加一个未关闭的此处文档,如下所示:
# .bashrc
#...
: <<'__END__'
Run Code Online (Sandbox Code Playgroud)
它有效,但会生成解析错误并发出恼人的警告。
什么是一个干净的方法来做到这一点(不使 .bashrc 只读)?
Ste*_*itt 46
如果你结束你的.bashrc
的
return 0\n
Run Code Online (Sandbox Code Playgroud)\nBash 将忽略此后添加的任何行,因为.bashrc
它的处理方式类似于源脚本:
\n\n\n
return
.
也可用于终止使用( ) 内置函数执行的脚本的执行source
,返回n或脚本内执行的最后一个命令的退出状态作为脚本的退出状态。
(exit 0
导致 shell 退出,这不是您想要的\xe2\x80\x99。)
虽然 Stephen 的技巧确实有效,但这里的根本问题是安装程序以允许其修改您的.bashrc
. 如果这样做,它可能会对其他事物进行各种不需要的更改,这些更改可能会导致交互中断或完全恶意(从故意发送的回拨间谍软件到来自供应链妥协或内部威胁的彻底恶意软件)。
正确的解决方案是不要以任何权限运行“安装程序”。相反,您可以在一次性容器或用户帐户中运行它们,然后仅将所需的文件从“暂存”环境复制到您想要使用它们的环境中。我使用我编写的工具usand执行类似的操作,该工具用于unshare
创建新用户并挂载命名空间,阻止网络访问以及对当前目录及其下所有内容之外的文件的写入访问。虽然目前还不是很灵活,但可以应用许多相同的概念来完成适合您特定工作流程的操作。
归档时间: |
|
查看次数: |
2057 次 |
最近记录: |