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

Posted

技术标签:

【中文标题】警告:PATH 中不安全的世界可写目录 /usr/local/bin,模式 040777【英文标题】:warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777 【发布时间】:2011-04-26 12:27:27 【问题描述】:

每次我运行这个命令rails server

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

但我得到这个错误:

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

顺便说一下,我正在使用 OS X。

【问题讨论】:

在为 T-Mobile 宽带 USB 加密狗安装软件后,我遇到了同样的问题,我想知道它是否负责。您是否也使用加密狗? 是的,我在安装 Virgin(澳大利亚)移动 USB 加密狗后得到它 天啊,真的吗?感谢您提供此信息!我还注意到,在我尝试运行 T-Mobile 加密狗软件后,它获得了我的权限。 我正在使用 AU(日本运营商)的 LTE 加密狗,它还需要一些命令行魔法才能开始工作...... 【参考方案1】:

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

sudo chmod go-w /usr/local/bin

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

【讨论】:

如果我输入上面的命令,我得到:sudo: /etc/sudoers is mode 0644, should be 0440 Segmentation fault @Xandman:我不知道分段错误是怎么回事;程序不应该这样做(尤其是与安全相关的程序,如 sudo)。显然,有人篡改了您系统上的文件权限——我建议您阅读他们的暴动行为。同时,您可能面临先有鸡还是先有蛋的情况;在修复 /etc/sudoers 上的权限之前,您不能使用 'sudo',并且如果不使用 'sudo',就无法修复 /etc/sudoers 上的权限。我不确定最好的解决方法是什么... 我想我应该上吊。自从我从 Windows 切换后,我一直在修补我的 MAC。试图使它成为一台 Windows 笔记本电脑。我可能做了一些愚蠢的事情 感谢乔纳森的评论,你给了我一个检查权限的想法。我用磁盘工具修复了权限,当我运行命令时: sudo chmod go-w /usr/local/bin 它不会通过。 @Xandman:在你证明自己是惯犯之前,不需要绞刑。您说“它不会通过”-它以什么方式不起作用?使用“sudo”,您提供自己的密码(使用“su”,您提供目标用户的密码 - 通常是 root)。要解决其中的一些问题,您可能需要启用 root 登录(系统偏好设置为管理员,IIRC),并以 root 身份修复权限。这确实假设您现在知道足够多,不会意外上吊自己。或者从头开始重新安装可能会更好;这取决于您修改了多少权限。【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

我在 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)【参考方案5】:

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

【讨论】:

【参考方案6】:

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

您的运行磁盘实用程序和修复权限通常也很有帮助。

【讨论】:

【参考方案7】:

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

我的警告是:

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

所以在我的情况下,它是主文件夹。我确实撤消了权限的修改,并且在运行 rails 服务器或 rake 任务以运行我的测试时不再收到这些警告。

【讨论】:

【参考方案8】:

这里也一样,显然我的 /usr/local 文件夹是全局可写的,所以我将其设为 755

# chmod 755 /usr/local

我使用的一个华为手机加密狗似乎也在 /usr/local 中安装了世界可写目录

【讨论】:

【参考方案9】:

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

【讨论】:

【参考方案10】:

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

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

你需要运行

sudo chmod o-w -R /usr/local 

【讨论】:

对我来说 -R 必须直接在 chmod sudo chmod -R o-w /usr/local/ 之后

以上是关于警告:PATH 中不安全的世界可写目录 /usr/local/bin,模式 040777的主要内容,如果未能解决你的问题,请参考以下文章

配置警告中不存在此类片段

AWS CakePHP - tmp 目录需要可写

docker exec 在 cron 中不工作

每次我尝试使用`clang -Weverything`进行编译时,都会收到警告“包含位置'/usr/local/include'对于交叉编译不安全”

如何修改 Homebrew 的 PATH?

linux安装报错