Один клиент пишет в каталог по sshfs, другой только читает: разные строки в fstab, разные пользователи и сопоставление uid

Что было. Два клиента на Ubuntu монтируют один каталог с сервера через sshfs. С первого можно читать и писать, со второго только читать. На сервере права каталога одинаковы для обоих.

Причина. Строки в /etc/fstab на клиентах отличались: разные пользователи SSH (alicia@ против franck@), разные пути на сервере (/home/crealicia против /crealicia) и разный набор опций. Права на сервере проверяются для того пользователя, под которым подключён sshfs, а видимые на клиенте владельцы файлов зависят от сопоставления uid. Второй клиент подключался пользователем без права записи в каталог. После приведения строки к одному виду с правильным пользователем запись заработала; подтверждено.

Рабочая строка fstab:

alicia@203.0.113.32:/home/crealicia  /mnt/share  fuse.sshfs  user,noatime,_netdev,nofail,x-systemd.automount,x-systemd.device-timeout=10,IdentityFile=/home/local/.ssh/id_ed25519,allow_other,default_permissions,uid=1000,gid=1000,reconnect  0 0

Смысл опций: _netdev и nofail не блокируют загрузку без сети; x-systemd.automount монтирует при первом обращении; IdentityFile нужен, потому что при монтировании из fstab агента нет; allow_other даёт доступ другим пользователям клиента; uid/gid показывают файлы как принадлежащие локальному пользователю; reconnect переживает обрывы. Для allow_other в /etc/fuse.conf раскомментировать user_allow_other.

Как проверять права правильно. На сервере от имени пользователя SSH: sudo -u alicia touch /home/crealicia/test && sudo -u alicia rm /home/crealicia/test. Если не проходит, никакие опции sshfs не помогут: чинить права/группу каталога (chgrp, chmod g+w, setgid-бит для наследования группы). На клиенте mount | grep sshfs и id покажут, кем смонтировано и кто обращается.

Для чего sshfs годится, а для чего нет. Удобно для эпизодического доступа и для одного пользователя. Для общего каталога с несколькими пользователями и параллельной записью лучше NFS или SMB: sshfs не даёт блокировок, чувствителен к обрывам и медленный на мелких файлах. И держать для монтирования отдельный ключ с ограничениями в authorized_keys (command="internal-sftp", no-port-forwarding), а не личный ключ администратора.

Утилита описана в документации Ubuntu.