Тестирую на локалхосте.
Локальный каталог /var/www/example.local смонтирован в /mnt/test:
$ mount | grep '/mnt/test'
user@127.0.0.1:/var/www/example.local on /mnt/test type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
В этом каталоге есть вложенный /var/www/example.local/dirname с правами 555, т.е. ридонли для всех.
Он же, будучи примонтированным по ssh, виден, как /mnt/test/dirname.
Пытаюсь проверить его на rw доступ в скрипте.
Стандартная проверка на возможность записи внезапно говорит «да»:
$ [ -w /mnt/test/dirname ] && echo W || echo '!W'
W
что, разумеется, не так, писать в него невозможно.
/usr/bin/test врет точно так же.
Проверка по локальному пути не врет:
$ [ -w /var/www/example.local/dirname ] && echo W || echo '!W'
!W
ls и stat определяют права по смонтированному пути правильно, но как из них извлечь четкий признак доступности на запись в скрипте?
Закостылил через touch с последующим удалением пробного файла, а нет ли более культурного способа? Может, опции монтирования какие-то хитрые, чтобы test проверял правильно.