Dino
2008-Jul-15  06:36 UTC
[zfs-code] Cannot share RW, "Permission Denied" with sharenfs in ZFS
Hi everyone,
I have just installed Solaris and have added a 3x500GB raidz drive array.  I am
able to use this pool (''tank'') successfully locally, but when
I try to share it remotely, I can only read, I cannot execute or write.  I
didn''t do anything other than the default ''zfs set sharenfs=on
tank''... how can I get it so that any allowed user can access the pool
read/write through nfs?
Here is some relevant information:
root at mosasaur:/# zpool list
NAME                    SIZE    USED   AVAIL    CAP  HEALTH     ALTROOT
tank                   1.36T   46.1G   1.31T     3%  ONLINE     -
root at mosasaur:/# zpool status
  pool: tank
 state: ONLINE
 scrub: none requested
config:
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz1    ONLINE       0     0     0
            c3t0d0  ONLINE       0     0     0
            c3t1d0  ONLINE       0     0     0
            c3t2d0  ONLINE       0     0     0
errors: No known data errors
root at mosasaur:/# zfs get all tank
NAME  PROPERTY       VALUE                  SOURCE
tank  type           filesystem             -
tank  creation       Sat Jul 12 22:47 2008  -
tank  used           30.7G                  -
tank  available      882G                   -
tank  referenced     30.7G                  -
tank  compressratio  1.00x                  -
tank  mounted        yes                    -
tank  quota          none                   default
tank  reservation    none                   default
tank  recordsize     128K                   default
tank  mountpoint     /tank                  local
tank  sharenfs       on                     local
tank  checksum       on                     default
tank  compression    off                    default
tank  atime          on                     default
tank  devices        on                     default
tank  exec           on                     default
tank  setuid         off                    local
tank  readonly       off                    default
tank  zoned          off                    default
tank  snapdir        hidden                 default
tank  aclmode        groupmask              default
tank  aclinherit     secure                 default
tank  canmount       on                     default
tank  shareiscsi     off                    default
tank  xattr          on                     default
/etc/dfs/dfstab is empty
/etc/dfs/sharetab:
           /tank   -       nfs     rw
Now, when I try to mount this share from multiple boxes, I get
''Permission denied'' when I try to create/modify any file.
Mounting from a Linux box:
/etc/fstab
          mosasaur:/tank /tank nfs4 rw,user 0 0
mount /tank
ls -al tank == drwxr-xr-x   7 4294967294 4294967294     8 2008-07-13 17:58 tank
mount shows: 
          mosasaur:/tank on /tank type
nfs4(rw,user=mac,addr=192.168.0.4,clientaddr=192.168.0.17)
# touch /tank/FILE
touch: cannot touch `file'': Permission denied
Mounting from a NetBSD box
/etc/fstab:
     mosasaur:/tank /tank nfs rw 0 0
root# mount /tank
root# ls -al | grep tank
drwxr-xr-x   7 100   10            8 Jul 13 16:58 tank
root# mount | grep tank
mosasaur:/tank on /tank type nfs
root# touch /tank/FILE
touch: /tank/FILE: Permission denied
I dont get it at all, it is a completely stock configuration...  Does anytone
have any idea why this isnt working and how I could fix it?
Thanks,
Dino
--
This messages posted from opensolaris.org
Mark Shellenbaum
2008-Jul-15  14:52 UTC
[zfs-code] Cannot share RW, "Permission Denied" with sharenfs in ZFS
Dino wrote:> Hi everyone, > > I have just installed Solaris and have added a 3x500GB raidz drive array. I am able to use this pool (''tank'') successfully locally, but when I try to share it remotely, I can only read, I cannot execute or write. I didn''t do anything other than the default ''zfs set sharenfs=on tank''... how can I get it so that any allowed user can access the pool read/write through nfs? > > Here is some relevant information: > root at mosasaur:/# zpool list > NAME SIZE USED AVAIL CAP HEALTH ALTROOT > tank 1.36T 46.1G 1.31T 3% ONLINE - > > root at mosasaur:/# zpool status > pool: tank > state: ONLINE > scrub: none requested > config: > > NAME STATE READ WRITE CKSUM > tank ONLINE 0 0 0 > raidz1 ONLINE 0 0 0 > c3t0d0 ONLINE 0 0 0 > c3t1d0 ONLINE 0 0 0 > c3t2d0 ONLINE 0 0 0 > > errors: No known data errors > > root at mosasaur:/# zfs get all tank > NAME PROPERTY VALUE SOURCE > tank type filesystem - > tank creation Sat Jul 12 22:47 2008 - > tank used 30.7G - > tank available 882G - > tank referenced 30.7G - > tank compressratio 1.00x - > tank mounted yes - > tank quota none default > tank reservation none default > tank recordsize 128K default > tank mountpoint /tank local > tank sharenfs on local > tank checksum on default > tank compression off default > tank atime on default > tank devices on default > tank exec on default > tank setuid off local > tank readonly off default > tank zoned off default > tank snapdir hidden default > tank aclmode groupmask default > tank aclinherit secure default > tank canmount on default > tank shareiscsi off default > tank xattr on default > > /etc/dfs/dfstab is empty > > /etc/dfs/sharetab: > /tank - nfs rw > > > Now, when I try to mount this share from multiple boxes, I get ''Permission denied'' when I try to create/modify any file. > > Mounting from a Linux box: > /etc/fstab > mosasaur:/tank /tank nfs4 rw,user 0 0 > mount /tank > ls -al tank == drwxr-xr-x 7 4294967294 4294967294 8 2008-07-13 17:58 tank > mount shows: > mosasaur:/tank on /tank type nfs4(rw,user=mac,addr=192.168.0.4,clientaddr=192.168.0.17) > > # touch /tank/FILE > touch: cannot touch `file'': Permission denied >This is probably caused by user "root" being mapped to user "nobody" by NFS. Also, the permissions on /tank only allow user "429496794" to write to the /tank mountpoint. What is the ownership/group of /tank on the Solaris host? The user 4294967294 looks suspicious. Did you intend for root users to create files from your nfs clients? If so, then you will need to share it to allow that sort of behavior.> > Mounting from a NetBSD box > /etc/fstab: > mosasaur:/tank /tank nfs rw 0 0 > root# mount /tank > root# ls -al | grep tank > drwxr-xr-x 7 100 10 8 Jul 13 16:58 tank > root# mount | grep tank > mosasaur:/tank on /tank type nfs > root# touch /tank/FILE > touch: /tank/FILE: Permission denied > > > I dont get it at all, it is a completely stock configuration... Does anytone have any idea why this isnt working and how I could fix it? > > > Thanks, > Dino > -- > This messages posted from opensolaris.org > _______________________________________________ > zfs-code mailing list > zfs-code at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-code