zfs 权限问题?“不是所有者”

zfs 权限问题?“不是所有者”

我遇到了一个奇怪的问题。

我已经安装了一个 zfs 分区,其中创建了一个 solaris“硬分区”区域。

我们注意到 /home 目录

  1. 全局区域中的 root 根本无法访问此目录

    全局> id uid=0(root) gid=0(root) 全局> cd home/ home/: 非所有者。 全局> ls -la |grep home dr-xr-xr-x 1 root root 1 Jun 16 14:38 home

  2. 客户端区域中的 root 可以读取但不能写入此目录

    client1> id uid=0(root) gid=0(root) 客户端> cd /home 客户端> touch foo touch: foo 无法创建 客户端> cd .. 客户端> chmod u+w home chmod: 警告:无法更改主页

这是怎么回事?据我所知,这个目录没有什么“特别之处”

gloabl> cat /etc/zones/client1.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN" "file:///usr/share/lib/xml/dtd/zonecfg.dtd.1">
<!--
    DO NOT EDIT THIS FILE.  Use zonecfg(1M) instead.
-->
<zone name="knobs1" zonepath="/zones/client1" autoboot="true">
  <network address="172.16.54.15" physical="bge0"/>
  <network address="172.16.54.21" physical="bge0"/>
  <network address="172.16.54.22" physical="bge0"/>
</zone>

gloabl> zfs list | grep client1
zpool1/zones/client1                 29.2G  34.7G  14.2G  /zones/client1
zpool1/zones/client1@initial         5.89M      -  5.89G  -
zpool1/zones/client1@pre_profiling   74.4M      -  8.58G  -
zpool1/zones/client1@post_profiling  8.01G      -  19.7G  -
zpool1/zones/client1@pre-rebuild     4.42G      -  18.4G  -

根据要求添加了附加信息。

# getfacl -a /zones/client1
File system doesn't support aclent_t style ACL's.
See acl(5) for more information on Solaris ACL support.
# zfs get all zpool1/zones/client1
NAME                 PROPERTY       VALUE                  SOURCE
zpool1/zones/client1  type           filesystem             -
zpool1/zones/client1  creation       Wed Apr 30 18:09 2008  -
zpool1/zones/client1  used           29.2G                  -
zpool1/zones/client1  available      34.7G                  -
zpool1/zones/client1  referenced     14.2G                  -
zpool1/zones/client1  compressratio  1.00x                  -
zpool1/zones/client1  mounted        yes                    -
zpool1/zones/client1  quota          none                   default
zpool1/zones/client1  reservation    none                   default
zpool1/zones/client1  recordsize     128K                   default
zpool1/zones/client1  mountpoint     /zones/client1          local
zpool1/zones/client1  sharenfs       off                    default
zpool1/zones/client1  checksum       on                     default
zpool1/zones/client1  compression    off                    default
zpool1/zones/client1  atime          on                     default
zpool1/zones/client1  devices        on                     default
zpool1/zones/client1  exec           on                     default
zpool1/zones/client1  setuid         on                     default
zpool1/zones/client1  readonly       off                    default
zpool1/zones/client1  zoned          off                    default
zpool1/zones/client1  snapdir        hidden                 default
zpool1/zones/client1  aclmode        groupmask              default
zpool1/zones/client1  aclinherit     secure                 default
zpool1/zones/client1  canmount       on                     default
zpool1/zones/client1  shareiscsi     off                    default
zpool1/zones/client1  xattr          on                     default

答案1

可能是您已经/需要使用自动挂载来挂载 /home。查看 /etc/auto_home 和 /etc/auto_master 文件(在区域中)。您可能已将其设置为自动挂载 /home,但尚未在 /etc/auto_home 中配置从何处自动挂载。

在 /etc/auto_home 中添加如下内容将允许您从 /export/home 自动挂载主目录:

*       localhost:/export/home/&

答案2

只是猜测,但这表明

getfacl -a /zones/client1

并且

zfs get all zpool1/zones/client1

答案3

我不确定我是否完全理解了您的配置。请纠正我并在必要时添加缺失的详细信息:

  1. 您已在全局区域中创建了 ZFS 文件系统,以供非全局区域使用。
  2. 您希望允许非全局区域控制 ZFS 文件系统。
  3. 您(显然)在全局区域和非全局区域以某种方式访问​​数据时遇到了问题。
  4. 您正在尝试允许非全局区域以与全局区域相同的方式查看数据。

要求:

  1. 请发送zpool history的相关部分
  2. 请发送非全局区域配置的完整输出:
    # zonecfg -z 区域信息

相关内容