2021-06-13[oh-my-zsh] Ubuntu18提示检测到不安全的完成相关目录Insecure completion-dependent directories detected:

出现这个问题的原因主要是权限问题,我这里的方法一只适用于root用户和普通用户都分别安装了oh-my-zsh的情况,如果是利用软连接使根用户和普通用户的zsh都使用相同的配置的情况,请看方法二。

方法一

先说明一下,当你进入根用户后~表示你所在的目录是/root,如果是普通用户则表示你所在目录是/home/usr_nama。

解决方法,因为根用户和普通用户底下都有.oh-my-zsh和.zshrc这两个文件,所以会出现访问路径错误问题,根用户可能会访问到普通用户的.oh-my-zsh,普通用户可能会访问到根用户的.oh-my-zsh,所以我们要去到各自的.zshrc进行路径修改,具体方法是:

普通用户状态

sudo chmod 755 -R .oh-my-zsh

sudo chmod 755 -R /root/.oh-my-zsh

sudo gedit ~/.zshrc 

sudo gedit /home/usr_name/.zshrc 

看到第五行,会出现export ZSH="/home/xxx/.oh-my-zsh"

把这个xxx改成你的用户名

接着sudo su

输入密码进入根用户模式

gedit ~/.zshrc

sudo gedit /root/.zshrc

看到第五行,会出现export ZSH="/home/xxx/.oh-my-zsh"

把xxx改成/home/xxx改成/root即可。

方法二

出现这种情况的原因,主要是我们想用普通用户的文件来修饰根用户的界面,这是系统所不想发生的,因此我们需要把omz部分文件的归属权更改为根用户的。具体操作如如下:

在普通用户目录执行

sudo chown root:root .oh-my-zsh

sudo chmod 755 .oh-my-zsh -R

同时删掉.oh-my-zsh目录里面的.oh-my-zsh符号链接:

cd .oh-my-zsh

sudo rm .oh-my-zsh

同时要注意,如果你要更新omz,那么你要把omz的归属权还给普通用户更新完再改为根用户

sudo chown xxx:xxx .oh-my-zsh

omz update

sudo chown root:root .oh-my-zsh

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容