3

I write the script:

with open("./aa.zsh", "wr") as f:
    f.write("#!/bin/zsh\n")
    f.write("chmod -R 755 ~/.oh-my-zsh\n")
    f.write("source {}\n".format(path))

os.chmod("./aa.zsh", 0o777)
subprocess.call(['./aa.zsh'])

I also tried os.system('./aa.zsh') instead of the last line.

I get this error:

[oh-my-zsh] Insecure completion-dependent directories detected

[oh-my-zsh] For safety, we will not load completions from these directories until

[oh-my-zsh] you fix their permissions and ownership and restart zsh.

[oh-my-zsh] See the above list for directories with group or other writability.

[oh-my-zsh] To fix your permissions you can do so by disabling

[oh-my-zsh] the write permission of "group" and "others" and making sure that the

[oh-my-zsh] owner of these directories is either root or your current user.

[oh-my-zsh] The following command may help:

[oh-my-zsh] compaudit | xargs chmod g-w,o-w

[oh-my-zsh] If the above didn't help or you want to skip the verification of

[oh-my-zsh] insecure directories you can set the variable ZSH_DISABLE_COMPFIX to

[oh-my-zsh] "true" before oh-my-zsh is sourced in your zshrc file.

Afik Friedberg
  • 332
  • 2
  • 8
  • what's the problem? it's warning you that what you're doing is dangerous and how to silence the warning. either stop setting insecure permissions, or set the environment variable! – Sam Mason Jul 25 '19 at 17:31
  • In my case the compaudit | xargs chmod g-w,o-w does not solve the problem, as the directories, which compaudit provides do not have write permissions for group and others. The core problem seems to be elsewhere. Just silencing the warning is dangerous: ZSH_DISABLE_COMPFIX=true, as the problem does not go away. – user637338 May 27 '20 at 10:59

1 Answers1

11

Per the error message and this thread for ohmyzsh

you can run the following command compaudit | xargs chmod g-w,o-w

if that doesn't work setting ZSH_DISABLE_COMPFIX=true in your zshrc worked for me.

portatlas
  • 657
  • 6
  • 12