Тема избитая, но нигде не смог найти решения.
Суть: помогите настроить статическую трансляцию юзеров между NFSv4 сервером и клиентом. Нюанс: доступ к настройкам сервера ограничен, а на клиенте можно делать что угодно; детали - ниже.
Есть NAS; он экспортирует директорию по nfs.
На нем есть юзеры admin (1024), kroz(1027), а также root(0).
Конфигурация в GUI: NFSv4, NFSv4 domain = DDD, Kerberos Settings пусты; пункт «ID mapping» не активен (он в разделе Kerberos). Если надо больше - говорите, есть доступ по ssh.
Так как это NAS, хотелось бы ограничиваться конфигом в GUI если это возможно.
Есть клиент; он монтирует директорию.
На нем есть юзеры kroz (1000), а также root(0).
Вот после монтирования от рута:
192.168.0.205:/volume1/data1 on /mnt/dw type nfs4 (rw,noexec,nosuid,nodev,addr=192.168.0.205,clientaddr=192.168.0.200,_netdev)
Вот что я вижу на сервере через ssh (да и через GUI):
$ ls -la
drwxrwxrwx 6 root root 4096 Feb 28 16:41 .
drwxr-xr-x 11 root root 4096 Feb 28 16:32 ..
drwxr-xr-x 2 1000 1000 4096 Feb 28 16:41 1
drwxr-xr-x 24 admin users 4096 Feb 28 16:29 music
drwxr-xr-x 2 kroz kroz 4096 Feb 28 16:38 test
drwxr-xr-x 7 admin users 4096 Dec 31 2013 video
А вот что я вижу на клиенте:
$ ls -la
total 20
drwxrwxrwx 6 root root 4096 фев 28 16:41 .
drwxr-xr-x 8 root root 224 дек 13 23:01 ..
drwxr-xr-x 2 root root 4096 фев 28 16:41 1
drwxr-xr-x 24 root root 4096 фев 28 16:29 music
drwxr-xr-x 2 root root 4096 фев 28 16:38 test
drwxr-xr-x 7 root root 4096 дек 31 2013 video
От рута я могу создавать и удалять директории/файлы, но chown не работает.
Вот /etc/idmapd.conf на клиенте:
$ cat idmapd.conf | grep -v "^#"
[General]
Verbosity = 10
Domain=DDD
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
[Translation]
Method=static
[Static]
admin@DDD = kroz
[UMICH_SCHEMA]
$ /etc/init.d/nfsclient start
* Starting rpcbind ...[ ok ]
* Starting NFS statd...[ ok ]
* Setting up RPC pipefs ...[ ok ]
* Starting idmapd ...
/usr/sbin/rpc.idmapd -vvv
rpc.idmapd: libnfsidmap: using domain: DDD
rpc.idmapd: libnfsidmap: Realms list: 'DDD'
rpc.idmapd: libnfsidmap: processing 'Method' list
rpc.idmapd: libnfsidmap: loaded plugin /usr/lib/libnfsidmap/static.so for method static
[ ok ]
* Starting NFS sm-notify ... [ ok ]
$ ps ax | grep idmapd
10967 ? Ss 0:00 /usr/sbin/rpc.idmapd -vvv
18847 pts/1 S+ 0:00 grep --colour=auto idmapd
Вот /etc/exports на сервере:
$ cat /etc/exports
/volume1/data1 192.168.0.200(rw,async,no_wdelay,insecure,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
Вот /etc/idmapd.conf на сервере:
$ cat /etc/idmapd.conf
[General]
Domain=DDD
[Mapping]
Nobody-User=guest
Nobody-Group=users
[Translation]
Method=nsswitch
GSS-Methods=static,synomap
[Static]
$ ps | grep idmap
25879 root 3084 S /usr/sbin/idmapd
26575 root 4048 S grep idmap
Мне нужно на клиенте где-то указать, что kroz на сервере - это kroz на клиенте, или что юзер 1027 на сервере, это 1000 на клиенте (да, я в курсе, что в конфиге про admin - не суть). Это всё, что мне нужно. Желательно безо всяких kerberos и LDAP.
Куда копать? Или приведите свои рабочие конфиги, чтобы сделать по образу и подобию...
Уже столько времени на это убил, не могу допереть где и что должно быть! ЛОР, спасай.