У меня есть доступ на чтение только к смонтированному общему ресурсу NFS.
С «нет сквош отображение» множества на NAS, Ubuntu обычный пользователь получает Permission denied
при попытке cd
в акции и могут получить только доступ для чтения с помощью sudo
.
Используя сквош 'сопоставить всех пользователей с настройками администратора', клиент может подключиться к обычному пользователю cd
и имеет доступ только для чтения к общему ресурсу. Использование sudo
не позволяет писать.
Synology NAS:
DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)
без сквоша (без картирования)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)
all squash (отобразите всех пользователей на администратора)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)
Клиент Ubuntu:
$ cat /etc/fstab
10.1.1.214:/volume1/Files /mnt/nfs/Files nfs rw,user,auto 0 0
$ id username
uid=1000 gid=1000(username) groups=1000(username), <etc>
$ ls -n /mnt/nfs
drwxrwxrwx 9 0 0 4096 Sep 25 01:28 Files
$ ls -n /mnt/nfs/Files
drwxr-xr-x 11 1026 100 4096 Sep 24 22:05 Data
(Изначально я публиковал сообщение об ошибке, что с использованием sudo
разрешенного доступа для записи) я могу открыть файл в смонтированном общем ресурсе NFS, sudo vi /mnt/nfs/Files/Data/test.file
но не могу записать изменения в файл даже с помощью sudo
. Сообщение об ошибке vi после :w!
команды:
"test.file" E212: Can't open file for writing
id username
) они относятся и какие права доступа установлены?cd
в монтирование как обычный пользователь? Если да, я предлагаю следующее. Чтобы подтвердить или опровергнуть мое подозрение, сделайте следующее: На клиентеcd
в монтирование и сделайтеls -n
. Это будет список владельцев файлов и групп с их соответствующими идентификаторами. Вы должны будете сделать это,sudo
я думаю. Добавьте строку или две выходные данные к вашему вопросу вместе с выводомid
(нетsudo
!) Если вы не можете дажеcd
подключить монтирование как обычный пользователь, вам нужно будет проверить разрешения для каталога, на который вы экспортируете сервер.cd
в гору как обычный пользователь. Использование Squash на сервере для принудительного разрешения разрешений работает как временное исправление для предоставления разрешений. Изучение разрешений сервера иid username
./mnt/nfs/Files
. ХотяFiles
принадлежитroot
, разрешение позволяет любому делать что угодно. Для меня не имеет смысла, почему у вас возникнут проблемы при входе в этот каталог, как у любого пользователя. Может опубликовать соответствующую строку от/etc/exports
?Ответы:
NFSv2 / 3 обрабатывает разрешения исключительно на основе UID и GID. Права доступа к файлам на сервере сопоставляются с идентификаторами пользователей и групп на клиенте. Вот почему NFSv <4 по своей конструкции небезопасен в средах, где пользователи имеют root-доступ к клиентским машинам; Подмена UID в этом случае тривиальна.
Обратите внимание, что NFSv4 предлагает аутентификацию клиента и пользователя через Kerberos5. Если требуется аутентификация с использованием имени пользователя и пароля, зачастую гораздо проще прибегнуть к Samba (SMB / CIFS) вместо настройки Kerberos даже в средах с чистым Linux.
Для того, чтобы по крайней мере , предотвратить эскалацию привилегий суперпользователя, акции NFS экспортируется по умолчанию с параметром
root_squash
, который будет сопоставить все просьбы клиента приходя отroot (uid=0, gid=0)
кanonuid
иanongid
. Это поведение можно изменитьno_root_squash
, предоставив root-доступ для экспорта.Здесь мы видим еще один недостаток. Для правильной работы NFS требует, чтобы у вас был одинаковый UID / GID на всех машинах. Файлы, к которым вы хотите получить доступ, принадлежат
1026
и имеют права доступа 755. Вы являетесь пользователем на клиентеuid=1000
. GID тоже не совпадают, поэтому вы получаете только мировые разрешения. Следовательно, нет доступа для записи.Чтобы решить эту проблему, вы можете сделать одну из нескольких вещей:
На NAS измените владельца файлов на
1000
. Возможно, вам придется создать эту конкретную учетную запись. Как это повлияет на другие сервисы, я не могу сказать.Измените UID вашего локального пользователя на
1026
.Поскольку вы единственный, кто обращается к файлам на сервере, вы можете заставить сервер делать вид, что все запросы поступают с правильного UID. Для этого у NFS есть опция
all_squash
. Он сообщает серверу сопоставить весь запрос анонимному пользователю, указанномуanonuid,anongid
.Добавьте опцию
all_squash,anonuid=1026,anongid=100
к экспорту в/etc/exports
.Однако будьте осторожны , так как это сделает любого, кто смонтирует экспорт, владельцем этих файлов!
Если вы делитесь своей сетью с людьми и их клиентами, которым вы полностью не доверяете, чтобы не навредить вашим файлам, вам действительно следует изучить метод обмена файлами, который предлагает аутентификацию. На мой взгляд, Samba - самый простой способ достичь этого.
источник
Делать,
showmount -e 10.1.1.214
чтобы увидеть варианты экспорта.Permission denied
ошибка исходит от самого сервера NFS. Попробуйте изменить вариант сrw,user,auto
наdefaults
.источник