每次我运行这个命令 rails server
:
警告:PATH 中不安全的世界可写目录 /usr/local/bin,模式 040777
我在这里搜索了一个解决方案,他们说输入:chmod go-w /usr/local/bin
但我得到这个错误:
chmod:无法更改 /usr/local/bin 上的文件模式:不允许操作
顺便说一句,我正在使用 OS X。
您需要具有 root 访问权限才能执行此操作。如果您还不是管理用户,请以管理员身份登录。然后使用 'sudo' 更改权限:
sudo chmod go-w /usr/local/bin
显然,这意味着你不能再在 /usr/local/bin 中安装材料,除非通过“sudo”,但你可能不应该这样做。
我在这里 MacOSX 10.6.8 遇到了同样的错误 - 似乎 ruby 检查路径中的任何目录(包括父目录)是否是世界可写的。就我而言,没有 /usr/local/bin 存在,因为没有任何东西创建它。
所以我不得不做
sudo chmod 775 /usr/local
摆脱警告。
这里的一个问题是 MacOS 中的任何非 root:wheel 进程是否需要在 /usr/local 中创建任何内容?
775 => root(7) group(7) others(5), 7 => read(4) + write(2) + execute(1), and 5 => read(4) + execute(1)
尝试:sudo chmod go-w /usr/local/bin
/usr/local/bin 目录归root
(即管理员)帐户所有,因此即使您可以对其进行写入,也无法更改对其的权限。 sudo
命令的意思是“以 root 身份运行以下命令”,其工作方式与单击“系统偏好设置”对话框中的锁定图标非常相似。
我在 OSX 中遇到了同样的问题。它可以通过运行磁盘实用程序来修复权限来修复。我同意 Peter Nixey 的观点:在我的情况下,这是由于我的 3G 加密狗安装或重新安装其驱动程序造成的。之后修复权限可解决此问题。
我正在使用山狮。我所做的是查找 /usr/local 并获取信息。上面有共享和权限。确保只有用户和管理员是唯一具有读写权限的人。其他任何人都应该只有读取权限。这解决了我的问题。
它通常很有帮助的是您的运行磁盘实用程序和修复权限。
同样在这里,显然我的 /usr/local 文件夹是世界可写的,所以我把它设为 755
# chmod 755 /usr/local
似乎我使用的 Hauwei 移动加密狗也在 /usr/local 中安装了世界可写目录
如果您正在运行 OSX 并且经常遇到这种情况,那么要考虑的另一件好事是使用内置的 OSX 权限修复工具。如果你没有改变你的目录的模式,其他的东西做了,并且有可能其他目录也有过度的权限——这个工具会将它们全部重置为出厂默认值,这是一个很好的安全想法。 There's a great guide on the Apple stackextange about this very process。
你需要跑
sudo chmod o-w -R /usr/local
sudo chmod -R o-w /usr/local/
之后
即使我遇到了类似的问题。我在 ubuntu 12 上使用 KDE,在我的主文件夹中玩耍时,我意外地将组和其他人的权限更改为“可以查看和修改内容”,方法是右键单击我的主文件夹,然后单击属性,然后忘记了所有内容。
我的警告是:
warning: Insecure world writable dir /home/my_home_folder in PATH, mode 040777
所以就我而言,它是主文件夹。我确实撤消了权限的修改,并且在运行 rails 服务器或 rake 任务以运行我的测试时不再收到这些警告。
我在 OSX Snow lepard 上的 /usr/local/bin 和 /etc/sudoers 也遇到了完全相同的问题。即使我以管理员身份登录并尝试通过终端更改权限,它仍然显示“Operation not允许”。我做了以下操作来获得这些文件夹的权限。
从终端,我访问了 /etc/sudoers 文件并使用 pico 编辑器添加了以下代码: username ALL=(ALL) ALL 将“username”替换为您的 MAC OS 帐户名
这应该可以解决您的问题:chmod go-w {/path/of/user}
我在 MacOSX 10.11 遇到了同样的错误 - 似乎 ruby 检查路径中的任何目录(包括父目录)是否是世界可写的。就我而言,没有 /usr/local/bin 存在,因为没有任何东西创建它。
在你的终端中运行这个命令。试试这个 sudo chmod 775 /usr/local 之后,如果你的 mac 上有任何密码,那么你必须输入密码。现在这个问题将得到解决。