我遇到了一个奇怪的问题。
我已经安装了一个 zfs 分区,其中创建了一个 solaris“硬分区”区域。
我们注意到 /home 目录
全局区域中的 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
客户端区域中的 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
我不确定我是否完全理解了您的配置。请纠正我并在必要时添加缺失的详细信息:
- 您已在全局区域中创建了 ZFS 文件系统,以供非全局区域使用。
- 您希望允许非全局区域控制 ZFS 文件系统。
- 您(显然)在全局区域和非全局区域以某种方式访问数据时遇到了问题。
- 您正在尝试允许非全局区域以与全局区域相同的方式查看数据。
要求:
- 请发送zpool history的相关部分
- 请发送非全局区域配置的完整输出:
# zonecfg -z 区域信息