Я нашел только 1 или 2 других сообщения об этом без какого-либо решения, поэтому я создаю новый, более конкретный вопрос для своего случая.
Настройка системы: сервер NFS с NFSv4. Клиент NFS под управлением RedHat 6, idmapd работает со следующим файлом в /etc/idmapd.conf:
[General]
Verbosity = 7
Domain = localdomain
[Mapping]
Nobody-User = nobody
Nobody-Group = nobody
Method = nsswitch
Проблема заключается в chown / chgrp для определенных пользователей с ошибкой «Недопустимый аргумент», как показано ниже, даже если пользователь существует на локальном хосте:
# chown oracle m
chown: changing ownership of `m': Invalid argument
# grep oracle /etc/passwd
oracle:x:54321:54321::/home/oracle:/bin/bash
# chown mysql m
# grep mysql /etc/passwd
mysql:x:496:496:MySQL server:/var/lib/mysql:/bin/bash
Почему idmapd не распознает определенных пользователей, но работает с другими (root, никто и даже нестандартный mysql в порядке)?
Какие-то конкретные настройки, которые мне не хватает выше? Я думал, что когда для домена установлен localdomain, тогда все должно работать только с использованием локальных файлов passwd / group и т.д. (И да, nsswitch.conf перечисляет passwd и group как файлы)?
Заранее спасибо!
Я просто хотел замкнуть петлю на этом. Я нашел ответ. Проблема здесь в том, что когда rpcidmapd включен, NFSv4 использует его для сопоставления, но это означает, что NFS отправляет на сервер имя пользователя @ имя домена и UID / GID.
Когда сервер не понимает это имя пользователя @ имя домена (возможно, из-за того, что сервер не настроен с тем же каталогом или по каким-либо другим причинам), он не разрешает chown / chmod.
Очевидно, это поведение по умолчанию НЕПРАВИЛЬНО. В более поздних версиях ядра Linux это было исправлено специалистом по обслуживанию NFS в ядре, поэтому по умолчанию для NFSv4 НЕ используется idmapping. См. Коммит здесь: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=074b1d12fe2500d7d453902f9266e6674b30d84c
Чтобы исправить это самостоятельно, вы можете сделать это (только для RHEL):
echo "options nfs nfs4_disable_idmapping=1" >> /etc/modprobe.d/nfs.conf
Надеюсь это поможет.