Solaris

zfs 權限問題?“不是所有者”

  • June 18, 2009

我遇到了一個奇怪的問題。

我已經安裝了一個 zfs 分區,其中創建了一個 solaris“硬分區”區域。

我們注意到 /home 目錄

  1. 全域區域中的根根本無法訪問此目錄

global> id uid=0(root) gid=0(root) global> cd home/home/: 不是所有者。global> 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) client> cd /home client> touch foo touch: foo cannot create client> cd .. client> chmod u+w home chmod: WARNING: can’t change home

這裡發生了什麼?據我所知,這個目錄沒有什麼“特別”的地方

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

可能是您已經/需要使用 automount 安裝 /home。查看 /etc/auto_home 和 /etc/auto_master 文件(在區域中)。您可能已將其設置為自動掛載 /home,但尚未在 /etc/auto_home 中配置從何處自動掛載。

在 /etc/auto_home 中添加如下內容可以讓您從 /export/home 自動掛載主目錄:

*       localhost:/export/home/&

只是一個猜測,但什麼表明

getfacl -a /zones/client1

並且

zfs get all zpool1/zones/client1

引用自:https://serverfault.com/questions/26356