zoukankan      html  css  js  c++  java
  • mac brew 安装php扩展报错:parent directory is world writable but not sticky

    $ brew install php70-mcrypt

    报错:

    Error: parent directory is world writable but not sticky

    搜索到github的答案

    https://github.com/Homebrew/legacy-homebrew/issues/40345

    原因:
    /tmp目录权限不对

    $ ls -ld /private/tmp

    打印出来 /private/tmp 被标黄了

    解决办法:

    $ sudo chmod +t /tmp

    $ ls -ld /private/tmp

    打印出来 /private/tmp 被标绿了,应该表示是正常的意思了

    再次执行

    $ brew install php70-mcrypt

    安装成功

    知识点:

    chmod +t

    +t 表示设置粘着位(sticky bit),防止文件或目录被非属主删除

    Set uid, gid,sticky bit的三个权限的详细说明:

    一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.

    如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.

    setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

    setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

    sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件,但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

  • 相关阅读:
    ubuntu 安装 redis desktop manager
    ubuntu 升级内核
    Ubuntu 内核升级,导致无法正常启动
    spring mvc 上传文件,但是接收到文件后发现文件变大,且文件打不开(multipartfile)
    angular5 open modal
    POJ 1426 Find the Multiple(二维DP)
    POJ 3093 Margritas
    POJ 3260 The Fewest Coins
    POJ 1837 Balance(二维DP)
    POJ 1337 A Lazy Worker
  • 原文地址:https://www.cnblogs.com/exmyth/p/11182687.html
Copyright © 2011-2022 走看看