gpt4 book ai didi

ruby - 运行 ruby​​ 脚本时出错 "Insecure world writable dir foo in PATH"

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:33 24 4
gpt4 key购买 nike

当我运行一个 ruby​​ 脚本时,它会给我这个:

[nathanb@nathanb-box ~] myscript .
/u/nathanb/bin/myscript:173: warning: Insecure world writable dir /usr/software/test/bin in PATH, mode 043777
/u/nathanb/bin/myscript:74: warning: Insecure world writable dir /usr/software/test/bin in PATH, mode 043777
/u/nathanb/bin/myscript:79: warning: Insecure world writable dir /usr/software/test/bin in PATH, mode 043777

此消息是错误的,因为/usr/software 是以只读方式挂载的:

software:/vol/software/  on  /usr/software             type  nfs         (ro,noatime,intr,rsize=32768,wsize=32768,timeo=600,nolock,addr=10.60.132.45,nfsvers=3,proto=tcp,mountproto=udp)

我可以验证这一点:

nathanb@nathanb-box /usr/software/test/bin] touch foo
touch: cannot touch `foo': Read-only file system

我相信我的挂载点具有正确的权限:

[nathanb@nathanb-box /usr] ls -ld /usr/software
drwxr-xr-x 27 root root 4096 2010-09-10 17:12 /usr/software

所以两个问题:

  • 这可以合法地视为 Ruby 中的错误吗?
  • 我该如何关闭它?有没有办法只禁用此特定警告?

最佳答案

我们在工作中遇到过这种情况,虽然修复权限会很好,但这在我们的环境中是不可能的。相反,我为 ruby​​ 创建了以下包装脚本来抑制错误。

#!/bin/bash
(ruby.orig "$@" 3>&1 1>&2 2>&3 | grep -v 'Insecure world writable dir'; exit ${PIPESTATUS[0]}) 3>&1 1>&2 2>&3

只需将 ruby​​ 可执行文件重命名为 ruby​​.orig 并将此脚本放到它所在位置的 ruby​​ bin 目录中。

See this excellent explanation了解其工作原理。


此问题的另一个修复(避免包装脚本)是在运行 ./configure 时设置 CPPFLAGS="-D ENABLE_PATH_CHECK=0" 编译 Ruby .

关于ruby - 运行 ruby​​ 脚本时出错 "Insecure world writable dir foo in PATH",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com