Solaris 11의 autofs 홈 폴더

Solaris 11의 autofs 홈 폴더

이틀 동안 autofs를 사용하는 데 문제가 있었습니다. 저는 Solaris 11 서버를 가지고 있습니다. 다음 명령을 사용하여 /export/home 폴더를 공유합니다.

공유 -o rw -d "Freigabe von /export/home" /export/home

내 클라이언트는 Fedora 17입니다. Fedora에서는 autofs를 사용하여 모든 홈 폴더를 마운트해야 하는 /ahome 폴더를 만들었습니다. /ahome 권한 777을 부여했습니다.

그 후 /etc/auto.master를 구성하고 추가했습니다.

/ahome auto.homes

/etc/auto.homes 파일을 만드는 것보다

read1 192.168.0.3:/export/home/read1
read2 192.168.0.3:/export/home/read2

그 후 autofs를 다시 시작했습니다.

systemctl restart autofs.service

두 사용자(read1 및 read2)가 동일한 UID 및 GID를 사용하여 두 시스템에 모두 존재합니다. 그러나 /ahome/read1로 CD를 이동하고 Fedora에서 ls를 실행하면 다음 오류가 발생합니다.

ls: cannot open directory .: Permission denied

/var/log/messages에서

Mar 30 23:43:34 fe-19 pulseaudio[1474]: [alsa-sink] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.
Mar 30 23:43:49 fe-19 dbus-daemon[582]: ** Message: No devices in use, exit
Mar 30 23:45:31 fe-19 systemd[1]: Cannot add dependency job for unit mdmonitor-takeover.service, ignoring: Unit mdmonitor-takeover.service failed to load: No such file or directory. See system logs and 'systemctl status mdmonitor-takeover.service' for details.
Mar 30 23:45:32 fe-19 automount[1100]: umount_autofs_indirect: ask umount returned busy /ahome
Mar 30 23:47:49 fe-19 dbus-daemon[582]: (packagekitd:1508): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed
Mar 30 23:55:03 fe-19 systemd[1]: Cannot add dependency job for unit mdmonitor-takeover.service, ignoring: Unit mdmonitor-takeover.service failed to load: No such file or directory. See system logs and 'systemctl status mdmonitor-takeover.service' for details.
Mar 30 23:55:03 fe-19 automount[1933]: umount_autofs_indirect: ask umount returned busy /ahome

제발, 누구든지 나를 도와줄 수 있나요? 나는 autofs를 싫어하기 시작했습니다

답변1

Solaris는 기본적으로 클라이언트와 서버가 각 사용자에 대해 동일한 UID/GID를 가지고 있다고 가정합니다. 발생할 수 있는 문제는 "read1" 및 "read2" 사용자가 Solaris 서버에 존재하지 않아 NFS 요청이 NFS 익명 사용자로 발생한다는 것입니다. 문제를 해결하는 방법에는 두 가지가 있습니다.

Linux 호스트에서 read1 및 read2 사용자의 숫자 UID를 찾습니다. 예를 들어 read1이 UID 101이고 read2가 UID 102인 경우 다음을 수행할 수 있습니다.

  1. 다음과 같이 /export/home/read1 및 /export/home/read2 사용자를 Solaris 서버의 해당 UID로 chown할 수 있습니다. chown -R 101 /export/home/read1 chown -R 102 /export/home/read2

  2. 또는 NFS 익명 사용자를 각 사용자의 UID로 설정하고 각 디렉터리를 개별적으로 공유할 수 있습니다.

    share -o rw -o anon=101 -d „Freigabe von /export/home“ /export/home/read1

    share -o rw -o anon=102 -d „Freigabe von /export/home“ /export/home/read2

그러나 Solaris 11에서 ZFS를 사용하는 경우(아마도 그럴 것임) ZFS에서 직접 공유할 수 있습니다.

  1. 모두를 위한 하나의 공유

    zfs set share=name=homedirs,path=/export/home,prot=nfs,sec=sys,rw rpool/export/home

  2. 개별 주식

    zfs set share=name=read1-homedir,path=/export/home/read1,prot=nfs,sec=sys,rw rpool/export/home/read1

    zfs set share=name=read2-homedir,path=/export/home/read2,prot=nfs,sec=sys,rw rpool/export/home/read2

이렇게 하면 NFS 공유가 zpool의 메타데이터에 저장되고 zfs는 풀이 마운트될 때마다 이를 공유합니다. rpool에서는 별로 유용하지 않을 수도 있지만 외부 디스크로 구성된 풀이 있고 특히 디스크를 새 호스트로 이동해야 할 때 유용할 수 있습니다.

답변2

NFS v3을 사용한다고 가정하면 /export/home/read1은 read1에 속해야 하고 /export/home/read2는 read2에 속해야 합니다.

NFSv4를 사용하는 경우 사용자 ID를 올바르게 매핑하려면 추가 구성이 필요합니다.

관련 정보