【问题标题】:Why won't filesync command chown on remote folder? (Solaris, share)为什么文件同步命令不会在远程文件夹上使用? (Solaris,共享)
【发布时间】:2016-02-09 08:37:56
【问题描述】:

我有两台几乎相同的测试服务器,带有 solaris 10 和 Sun Directory Server。我正在尝试在两者之间创建一种自动方法来同步指定的文件夹。 (这些将是主文件夹和应用程序文件夹。) 所以目前的目标是,将srv1服务器/export/test文件夹上的文件同步到srv2服务器/export/test文件夹。

我做了什么:

srv2: #share -o rw,root=remotesync /export/test

srv1: #filesync -a -s /export/test -d /net/192.100.55.2/export/test/ -f '*'

这会将文件从 srv2/export/test 复制到 srv1/export/test,但不会保留权限,并对所有文件给出(无法更改)错误。

有人可以帮助我吗?我认为这与分享有关,但我可以使用一些有经验的评论。谢谢

【问题讨论】:

    标签: file permissions synchronization share solaris


    【解决方案1】:

    鉴于文件系统是从srv2 共享的

    srv2: #share -o rw,root=remotesync /export/test
    

    根据share man page,您的进程没有来自srv1root 权限:

    root=access_list

    只有来自 access_list 中指定主机的 root 用户具有 root 访问权限。请参阅下面的 access_list。默认情况下,没有主机具有 root 访问权限,因此 root 用户映射到匿名用户 ID(请参阅 anon=uid 选项 如上所述)。如果共享的文件系统是网络组,则可以使用 使用 UNIX 身份验证 (AUTH_SYS)。

    仔细阅读关于access_lists的部分。

    所以chown(2)的条件是:

    操作系统定义了几个要覆盖的权限 对 chown() 系列函数的限制。当。。。的时候 {PRIV_FILE_CHOWN} 特权在有效集合中声明 当前流程,除特殊情况外,没有任何限制 将所有权更改为 uid 0 或从 uid 更改为 0 的情况。当 {PRIV_FILE_CHOWN_SELF} 特权被断言,所有权更改是 仅限于所有权与有效的文件相匹配的文件 当前进程的用户ID。 如果两个特权都没有在 调用进程的有效集合,所有权变化是 仅限于文件组对列表的更改 补充组 ID 和有效组 ID。

    您的进程在 NFS 服务器上没有 root 访问权限,并且几乎可以肯定在文件服务器上活动的额外权限为零,即使您在 NFS 客户端上以 root 运行,因此 chmod 失败并显示 @987654331 @:

    EPERM

    有效用户 ID 与文件所有者不匹配且 {PRIV_FILE_CHOWN} 权限未在有效集合中声明 调用进程,或者 {PRIV_FILE_CHOWN_SELF} 权限不是 在调用进程的有效集合中断言。

    【讨论】:

      【解决方案2】:

      关键字“几乎等同”。我错过了其中一台机器上的 resolv.conf 文件,所以在使用 share 命令时域名被弄乱了。

      【讨论】:

        猜你喜欢
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多