代码之家  ›  专栏  ›  技术社区  ›  user213154

php中symlink文件的chmod()和chown()。

  •  3
  • user213154  · 技术社区  · 16 年前

    是否有PHP命令更改symlink文件的文件访问权限/所有者,而不是symlink指向的对象?

    从外壳上我可以

    $ mkdir adir
    $ ln -s adir alink
    $ chmod 0700 alink         -- changes permissions of directory adir
    $ chmod -h 0700 alink      -- changes permissions of file alink
    

    但是我不知道如何在PHP中完成最后一个任务,除了调用shell,例如 exec() .

    1 回复  |  直到 16 年前
        1
  •  4
  •   Artefacto    16 年前

    PHP不支持更改符号链接的权限(没有 lchmod 像这样的功能 lstat lchown 函数)。

    Linux doesn't support it ,要么:

    posix不需要lchmod,Linux不提供。在平台上 缺少lchmod,symlinks始终具有相同的默认权限,因此 无法更改权限不是问题,因为 将要复制的具有与新创建的symlink相同的权限(0777) 目的地。

    在支持lchmod的bsd上,只有0555位才重要(readlink()失败 如果当前用户无法读取symlink,并且所有其他系统调用都失败 如果当前用户无法跟踪symlink,则返回enent。 在文件名解析期间搜索/执行symlink),即使这样,也只有在 在安装了symperm选项的文件系统上。