【问题标题】:chmod settings wont setchmod 设置不会设置
【发布时间】:2011-12-14 08:26:36
【问题描述】:

我正在尝试chmodOS X Lion 中的一个文件夹

但是,当我这样做时,设置似乎没有保留...

users-MacBook-Air:MAMP user$ sudo chmod a=rwx /tmp

users-MacBook-Air:MAMP user$ ls -l /tmp
lrwxr-xr-x@ 1 root  wheel  11 Jul 20 23:44 /tmp -> private/tmp

【问题讨论】:

  • 这个问题最好在Super User 上提出(你甚至可能会得到更多有用的答案!)

标签: macos osx-lion chmod


【解决方案1】:

lrwxr-xr-x 中的第一个字母l 表示/tmpsymbolic link

这部分/tmp -> private/tmp表示它链接到private/tmp

来自man chmod

chmod 从不改变符号链接的权限; chmod 系统调用不能改变他们的权限。这不是问题 因为从不使用符号链接的权限。然而, 对于命令行中列出的每个符号链接,chmod 都会更改 指向文件的权限。相比之下,chmod 会忽略 递归目录遍历过程中遇到的符号链接。

因此,您可以放心地忽略链接的权限。

请注意,private/tmp 是相对于 /tmp 所在文件夹 - / 的路径。它的绝对路径是/private/tmp

【讨论】:

    【解决方案2】:

    这是因为您试图在符号链接上设置权限。这是不可能的。相反,将 chmod 应用于 private/tmp

    【讨论】:

    • 这给了我一个no such file or directory error 据我所知,这不是一个符号链接。它在Applications/MAMP/tmp
    • 这是一个符号链接。试试chmod a=rwx /Applications/MAMP/private/tmp
    【解决方案3】:

    在 macOS 上测试。

    您可以通过写chmod -h 755 file 来更改符号链接的权限。在chmod 手册中,-h 选项更改了符号链接的模式,而不是链接指向的文件。如果没有-h 选项,chmod 只会更改符号链接指向的文件的文件模式。

    请记住检查文件权限是否设置成功,因为在某些情况下,尽管发出了正确的命令,但符号链接仍不会设置。我不知道导致以下情况的确切过程,但似乎存在某些安全设置导致符号链接的权限只能在某些用户下修改。

    如果你不是root用户,你可以通过在/tmp文件夹中操作来临时修改符号链接的权限。 /tmp 文件夹是一个特殊的文件夹,因为它的粘性位已设置。阅读man sticky* 以了解有关粘滞位的更多信息,它甚至将/tmp 列为示例文件夹。设置了粘性位的 root 拥有的任何目录都可以工作,但 /tmp 是最有可能在给定机器上可用的目录。这很重要,因为作为设置了粘性位的 root 拥有的目录,它允许非 root 用户写入 root 拥有的文件。这意味着如果您发现当您尝试修改符号链接的权限时,它会一直恢复到其旧权限,您可以尝试在/tmp 中修改符号链接的权限,它将保留其新设置的权限。但是,请记住,如果您首先遇到了恢复权限的障碍,那么将文件移回其原始目录将导致权限恢复到它始终恢复的任何内容。在我的情况下,它恢复到绝对模式0777。另外,请记住,符号链接的权限不会影响您访问它所链接的文件的权限,因为这些权限是由该文件本身的权限决定的。

    *在终端中输入man sticky 并点击ENTER,将显示sticky 的文档。按q 退出。或者,请参阅Sticky bit on Wikipedia

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2013-07-11
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多