Моя директория - root:
pwd
/
У меня есть следующий каталог:
drwxrwxrwx 4 root root 81920 Jun 4 09:25 imr_report_repo
ПРИМЕЧАНИЕ: imr_report_repo
это ресурс NFS.
Вот fstab
список для imr_report_repo
:
netapp1:/imr_report_repos_stage /imr_report_repo nfs rw,bg,actimeo=0,nointr,vers=3,timeo=600,rsize=32768,wsize=32768,tcp 1 1
d imr_report_repo
Файл внутри монтирования:
$ ls -al
-rw-r--r-- 1 502 502 1273 Mar 21 2013 imr1_test.txt
UID 502 не существует. Если мы добавим этот UID / GID локально:
$ groupadd -g 502 jimmy
$ useradd -g 502 -u 502 jimmy
Теперь он появляется:
$ ls -al
-rw-r--r-- 1 jimmy jimmy 1273 Mar 21 2013 imr1_test.txt
Теперь перейдите в root:
$ su -
$ chown oracle:oinstall imr1_test.txt
chown: changing ownership of `imr1_test.txt': Operation not permitted
Ответы:
Обычно
root
не имеет специальных разрешений для общих ресурсов NFS. Напротив:root
отображается на обычного пользователя (то есть даже не имеет «нормального» доступа для чтения и записи кroot
файлам).Вы должны работать
chown
на сервере NFS.источник
Как правило, локальный пользователь root на клиентах NFS не может выполнять такие действия на смонтированных общих ресурсах NFS. NetApp добавляет немного изюминки в это следующим образом:
/etc/nsswitch.conf
файле, чтобы определить соответствующий UID, который будет назначен опцией anon.Итак, судя по всему, у общего ресурса NetApp NFS есть опция по умолчанию # 1. Вы можете подтвердить это, коснувшись файла на общем ресурсе NFS как root и увидев, какой идентификатор получен в результате этого.
Вы должны увидеть экспортированные параметры общего ресурса NFS
mount -v
на своем клиенте NFS.Ссылки
источник
Сервер NFS NetApp по умолчанию изменит учетные данные пользователя root на клиенте на uid 65534 на сервере, поэтому такие операции
chown
завершатся неудачно. Чтобы изменить это, отредактируйте список экспорта в файлере так, чтобы в строке для файловой системы был параметрroot=clientid
, где clientid - это IP-адрес или имя хоста клиента, которому вы хотите иметь root-доступ к этой файловой системе. Затем запустите,exportfs -a
если вы используете интерфейс командной строки на файлере.источник
Как сказано выше в комментариях slm ,
Используемая функция называется гнилой сквош . Больше информации здесь . В моем случае единственным способом было войти в систему, чтобы отключить root-сквош для этого конкретного сервера и включить его позже.
С подобной ситуацией вы столкнетесь, если будете использовать
docker
контейнер с томами и контейнер будет работать с непривилегированным пользователем (напримерUSER apache
). Таким образом, идея о точках монтирования NFS, которые должны бытьr
/w
только дляowner
, а не для,root
является обычной практикой безопасности.источник