I have read access only to the mounted NFS share.
With 'не сквош mapping' set on the NAS, регулярный Ubuntu user gets Permission denied
when trying to cd
into the share and хан only get read access by using sudo
.
Using сквош 'map all users to admin' setting, client регулировать user хан cd
into and существуешь only read access to the share. Using sudo
does not allow write.
Synology NAS:
DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)
не сквош (не mapping)
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 сквош (map all users to admin)
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 client:
$ 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
(I originally posted in ошибка that using sudo
enabled write access) I хан open в file in the mounted NFS share with sudo vi /mnt/nfs/Files/Data/test.file
but cannot write the changes to the file even with sudo
. The я увидел Ошибку message upon :w!
command is:
"test.file" E212: Can't open file for writing
NFSv2/3 обрабатывает полномочия только на основе UID и GID. Полномочия файла на сервере подобраны против пользователя - и идентификаторы группы на клиенте. Именно поэтому NFSv <4 дизайном, небезопасным в средах, где у пользователей есть корневой доступ к клиентским машинам; спуфинг UID тривиален в этом случае.
Обратите внимание, что NFSv4 предлагает аутентификацию клиента и аутентификацию пользователя через Kerberos5. Если аутентификация с именем пользователя и паролем необходима, это, хотя часто намного легче для обращения к Samba (SMB/CIFS) вместо того, чтобы настроить Kerberos, даже в чистых средах Linux.
Чтобы, по крайней мере, предотвратить эскалацию полномочий пользователя root доли NFS экспортируются по умолчанию с опцией root_squash
, который отобразит весь клиентский запрос, прибывающий из root (uid=0, gid=0)
кому: anonuid
и anongid
. Это поведение может быть переопределено с no_root_squash
, предоставление корневого доступа к экспорту.
Здесь, мы видим другой недостаток. Для функционирования правильно NFS в основном требует, чтобы у Вас был тот же UID/GID на всех машинах. Файлы, к которым Вы хотите получить доступ, принадлежат 1026
и имейте полномочия 755. Вы - пользователь на клиенте, имеет uid=1000
. ЦЕНУРОЗЫ не соответствуют также, таким образом, Вы получаете мировые полномочия только. Следовательно никакой доступ для записи.
Для разрешения этого Вы могли сделать одну из нескольких вещей:
На 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
.