Как разрешить конкретному пользователю право записи в раздел NFS?
Я смонтировал общий ресурс NFS на моем локальном хосте (установка Fedora), и я могу читать и писать как пользователь root, но я не могу писать как пользователь apache, хотя все файлы и каталоги в общей папке на моем локальном хосте и удаленный хост принадлежат apache.
Например, я смонтировал его с помощью этой строки в моем / etc / fstab:
remotehost:/data/media /data/media nfs _netdev,soft,intr,rw,bg 0 0
И оба местоположения принадлежат apache:
[root@remotehost ~]# ls -la /data
total 24
drwxr-xr-x. 6 root root 4096 Jan 6 2011 .
dr-xr-xr-x. 28 root root 4096 Oct 31 2011 ..
drwxr-xr-x 4 apache apache 4096 Jan 14 2011 media
[root@localhost ~]# ls -la /data
total 16
drwxr-xr-x 4 apache apache 4096 Dec 7 2011 .
dr-xr-xr-x. 27 root root 4096 Jun 11 15:51 ..
drwxrwxrwx 5 apache apache 4096 Jan 31 2011 media
Однако, когда я пытаюсь писать как пользователь apache, я получаю сообщение об ошибке «Permission denied».
[root@localhost ~]# sudo -u apache touch /data/media/test.txt'
touch: cannot touch `/data/media/test.txt': Permission denied
Но, конечно, он отлично работает как root. Что я делаю не так?
NFS разрешает операции на основе идентификатора пользователя, а не имени пользователя. Чтобы иметь возможность писать /data/media
на клиенте NFS вам необходимо убедиться, что apache
на localhost
и apache
на remotehost
иметь одинаковые числовые идентификаторы пользователей.
Перечень файлов в сообщении не подтверждает этого.
Действительно localhost
листинг говорит, что точка крепления /data/media
принадлежит apache @ localhost.
[root@localhost ~]# ls -la /data
...
drwxrwxrwx 5 apache apache 4096 Jan 31 2011 media
Удаленный список показывает, что общий ресурс /data/media
принадлежит apache @ remotehost.
[root@remotehost ~]# ls -la /data
drwxr-xr-x 4 apache apache 4096 Jan 14 2011 media
Если числовые идентификаторы пользователей apache @ localhost и apache @ remotehost отличаются, каталог не будет доступен для записи.
Вы можете использовать команду ls -lna
для проверки числовых идентификаторов пользователей.
Это всего лишь предположение. В OP нет ничего, что конкретно подтверждает, что есть несогласие в идентификаторах пользователей.
Доступен ли экспорт для записи (отметьте /etc/exports
на сервере)? Как вы найдете в exports(5)
:
rw Allow both read and write requests on this NFS volume.
The default is to disallow any request which changes the filesystem.
This can also be made explicit by using the ro option.
(Вероятно, не имеет значения, но я мало знаю о существующих политиках SELinux) Вы используете SELinux на сервере? Вы можете проверить с getenforce
, возможно, захочется повторить попытку после setenforce 0
(отменить с помощью setenforce 1
).
idmap
сервис на обоих хостах.