%20%3D%204294967294%2C%20%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B3%D1%83%20%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C%20%D1%81%20%D0%BC%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC.%20%D0%9A%D0%B0%D0%BA%20%D1%8D%D1%82%D0%BE%20%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%3F.png)
У меня тут несколько странная настройка: в качестве клиента у меня Android, а его ядро не поддерживает NFSv4, а в моем файле /etc/exports на стороне сервера нет записей в стиле NFSv4.
Я пытаюсь собрать несколько наборов инструментов (у меня на телефоне есть gcc-4.8-armhf и все такое, а также apt-get с настроенными репозиториями, чтобы я мог устанавливать что-то при необходимости), а также следую LFS, но я не могу собрать некоторые программы, такие как perl, из-за невозможности установить владельца файла и т. д.
Мой /etc/exports (сервер):
/media/usb3/Android 192.168.1.209(rw,sync,subtree_check,no_root_squash)
А ls -l
выглядит так (клиент):
drwxr-xr-x 6 4294967294 4294967294 4096 Jun 21 17:23 toolchains
-rw-r--r-- 1 4294967294 4294967294 0 Jun 25 18:51 rootu
A sudo chown root:root
выглядит так (клиент) (rootu — это просто тестовый файл):
sudo chown root:root rootu
chown: changing ownership of `rootu': Invalid argument
Моя команда монтирования (клиент):
sudo mount -t nfs 192.168.1.210:/media/usb3/Android /home/edge-case/Android-Lab/ -o tcp
Я просмотрел страницы руководства, прочитал несколько руководств и ответил на другие вопросы, но все они говорят, что нужно просто установить no_root_squash, что я и сделал с самого начала, и это не работает.
У меня нет LDAP или Kerberos, или какой-либо сложной аутентификации, настроенной на данный момент, это все выше моего уровня мастерства (и нулевой оплаты) на данный момент. Я дома, поэтому у меня полный root-доступ и владение всем, и я не слишком беспокоюсь о безопасности, за исключением, может быть, War-Drivers, но у меня есть хороший пароль беспроводной сети, так что мне не нужна шапочка из фольги ;P
Раньше у меня это работало, но, похоже, в Debian были внесены некоторые изменения, и теперь все работает не так хорошо. Агенты Windows портят исходный код Linux!? Шутка
Что это на самом деле? Где я могу найти простой способ смонтировать каталог с файлами, принадлежащими мне или root (через sudo chown), если я выберу, а не какому-то странному пользователю "4294967294", которого нет ни на клиенте, ни на сервере?
решение1
Ненавижу, когда я понимаю это сразу после того, как задал вопрос.
я использовал
/system/xbin/busybox mount -t nfs /path/to/share /path/to/mountpoint -o tcp,nolock
Это работает, теперь мои файлы принадлежат моему пользователю "10001:10001" на клиенте, но это неудобное решение, потому что если я использую Cyanogenmod busybox mount
без этой nolock
опции, то получаю отказ в доступе, но если я использую монтирование Debian с этой nolock
опцией, то все равно будет странное владение UID:GID.
Так что в настоящее время единственный способ работать - это с Cyanogenmod busybox mount
с nolock
. Использование nolock
с Debian mount
не исправит проблему с идентификатором, а без nolock
Cyangenmod я получаю отказ в доступе.
Думаю, правильным решением было бы просмотреть исходный код каждого и пересобрать mount
команду Debian с патчем, чтобы она была как у Cyan, и выяснить, зачем мне это нужно nolock
, я не думаю, что мне это нужно. Может, это проблема с компоновщиком/библиотекой? Я не знаю, это выше моего понимания.