1

Я только что переустановил iMac в моей домашней сети и подключил домашние каталоги пользователей через общий ресурс NFS (размещенный на сервере Ubuntu).

У меня проблема в том, что когда я использую sudo, я получаю отказ в доступе к своему домашнему каталогу.

Мой UID 501, и мне разрешено использовать sudo, поскольку я являюсь членом группы администраторов (GID 80).

На сервере Ubuntu я настроил свой домашний каталог следующим образом:

Ubuntu# ls -ln | grep bryan
drwxrwx--- 35 501 80 4096 2012-01-27 14:09 bryan

Что правильно переводит на Mac:

iMac$ ls -l | grep bryan
drwxrwx---  35 bryan    admin   4.0K 27 Jan 14:09 bryan/

Поскольку root также является членом admin (GID 80), я ожидал, что sudo разрешит доступ к моему домашнему каталогу, но, как вы можете видеть ниже, это не так.

iMac$ whoami
bryan
iMac$ sudo bash
bash: /Volumes/home/bryan/.bashrc: Permission denied
iMac# whoami
root
iMac# cd /Volumes/home/bryan/
bash: cd: /Volumes/home/bryan/: Permission denied

Просто чтобы подтвердить, ниже приведена соответствующая часть вывода группы dscacheutil -q group на моем iMac:

name: admin
password: *
gid: 80
users: root bryan 

Что я могу сделать, чтобы разрешить доступ к своему домашнему каталогу на iMac при использовании sudo?

1 ответ1

2

Когда вы используете sudo , вы переключаетесь на пользователя root (uid 0) - вы теряете свой brian UID и группу admin . (sudo id покажет вам точные значения.)

Поскольку предыдущие версии NFS (v3 и более ранние) выполняли все проверки безопасности только на стороне клиента, существует встроенная защита для защиты от недобросовестных клиентов - когда клиент говорит, что ваш UID равен 0, вы не получаете корневые разрешения - вместо этого NFS сервер видит вас как пользователя nobody .

Чтобы отключить эту защиту, отредактируйте файл /etc/exports на сервере , указав параметр no_root_squash , затем повторно запустите exportfs -ra и перемонтируйте общий ресурс на всех клиентах.


При тестировании разрешений NFS полезно иметь общедоступный каталог для общего доступа. Например, в Ubuntu sudo mkdir /home/temp; sudo chmod a+rwx /home/temp . Затем в OS X вы можете запустить sudo touch /Volumes/home/temp/testfile и сразу увидеть, каким владельцем обладает вновь созданный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .