警告:PATH中的不安全世界可写dir / usr / local / bin,模式040777

时间:2010-10-17 06:22:30

标签: ruby-on-rails macos permissions rubygems warnings

每次我运行此命令rails server

  

警告:PATH中的不安全世界可写dir / usr / local / bin,模式040777

我在这里搜索了一个解决方案,他们说要输入:chmod go-w /usr/local/bin

但是我收到了这个错误:

  

chmod:无法更改/ usr / local / bin上的文件模式:不允许操作

我顺便使用OS X.

12 个答案:

答案 0 :(得分:259)

您需要具有root权限才能执行此操作。如果您还不是管理用户,请以管理员身份登录。然后使用'sudo'更改权限:

sudo chmod go-w /usr/local/bin

显然,这意味着你不能再在/ usr / local / bin中安装材料,除非通过'sudo',但你可能不应该这样做。

答案 1 :(得分:62)

我在MacOSX 10.6.8中遇到了同样的错误 - 似乎ruby检查路径中的任何目录(包括父项)是否是全局可写的。在我的情况下,没有/ usr / local / bin存在,因为没有创建它。

所以我必须这样做

sudo chmod 775 /usr/local

摆脱警告。

这里的一个问题是MacOS中的任何非root:wheel进程需要在/ usr / local中创建任何内容吗?

答案 2 :(得分:7)

我在OSX中遇到了同样的问题。可以通过运行“磁盘工具”来修复权限来修复它。我同意Peter Nixey:在我的情况下,这是因为我的3G加密狗安装或重新安装其驱动程序。之后修复权限可以解决问题。

答案 3 :(得分:7)

使用Mountain Lion。我做的是寻找/ usr / local和获取信息。在它上面有共享和权限。确保只有用户和管理员才是唯一具有读写权限的用户。其他任何人都应该只有读取权限。这解决了我的问题。

通常有用的是您的运行磁盘实用程序和修复权限。

答案 4 :(得分:6)

尝试:sudo chmod go-w /usr/local/bin

/ usr / local / bin目录由root(即管理员)帐户拥有,因此即使您可以写入该帐户,也无法更改其权限。 sudo命令表示“以root身份运行以下命令”,其工作方式与在“系统偏好设置”对话框中单击该锁定图标非常相似。

答案 5 :(得分:3)

同样在这里,显然我的/ usr / local文件夹是世界可写的所以我做到了755

# chmod 755 /usr/local

我用过的Hauwei移动加密狗似乎也在/ usr / local中安装了世界可写目录

答案 6 :(得分:3)

如果你经常运行OSX并经常这样做,另外一件好事要考虑使用内置的OSX权限修复工具。如果你没有改变你的目录模式,那么其他的东西也是如此,其他目录也有可能拥有过多的权限 - 这个工具会将它们全部重置为出厂默认值,这是一个很好的安全想法。 There's a great guide on the Apple stackextange about this very process

答案 7 :(得分:1)

我在OSX Snow lepard上也遇到了与/ usr / local / bin和/ etc / sudoers完全相同的问题。即使我以管理员身份登录并尝试通过终端更改权限,它仍然说“不允许操作”。我做了以下工作以获得这些文件夹的许可。

从终端,我访问/ etc / sudoers文件并使用pico编辑器添加了以下代码: 用户名ALL =(ALL)ALL 将“username”替换为您的MAC OS帐户名

答案 8 :(得分:1)

即使我遇到类似的问题。我在ubuntu 12上使用KDE,在我的主文件夹中玩游戏时,我意外地将Group和Others的权限更改为“可以查看和修改内容”,方法是右键单击我的主文件夹然后属性并忘记了所有相关内容。

我的警告是:

warning: Insecure world writable dir /home/my_home_folder in PATH, mode 040777

所以在我的情况下它是主文件夹。我没有解除权限的修改,我在运行rails服务器或rake任务运行我的测试时停止了这些警告。

答案 9 :(得分:1)

你需要运行

sudo chmod o-w -R /usr/local 

答案 10 :(得分:0)

我在MacOSX 10.11中遇到了同样的错误 - 似乎ruby检查路径中的任何目录(包括父项)是否是全局可写的。在我的情况下,没有/ usr / local / bin存在,因为没有创建它。

在终端中运行此命令。试试这个 sudo chmod 775 / usr / local  在此之后,如果您的Mac上有任何密码,则必须输入密码。现在这个问题将得到解决。

答案 11 :(得分:0)

这可以解决您的问题:chmod go-w {/path/of/user}