
Местный: OpenSUSE, точка монтирования/home/gruz/debian
Удаленный: Debian (VirtualBox) 192.168.0.100
, точка монтирования/var/www/a
Я хочу смонтировать папку на 192.168.0.100:/var/www/a
моей локальной машине, чтобы при создании файла/папки в смонтированной папке на моей локальной машине она создавалась на www-data:www-data
сервере (который в Debian находится по адресу 33:33). Но она создается с root:root
владельцем (0:0).
В моем локальном OpenSUSE я проверяю, что у меня правильный владелец:
sudo chown 33:33 /home/gruz/debian
Далее я монтирую его вот так:
sudo sshfs -o uid=33,gid=33,allow_other [email protected]:/var/www/a /home/gruz/debian
Если я mkdir
создаю папку при монтировании, она будет создана с 33:33:
gruz@linux-k9eu:~/debian> ls -lan
total 16
drwxr-xr-x 1 33 33 4096 Apr 28 16:13 .
drwxr-xr-x 41 1000 100 4096 Apr 28 16:08 ..
drwxr-xr-x 1 33 33 4096 Apr 28 16:10 aa
drwxr-xr-x 1 33 33 4096 Apr 28 16:13 bb
Но на сервере я вижу 0:0:
root@debian:/var/www/a# ls -lan
total 16
drwxr-xr-x 4 33 33 4096 Apr 28 09:13 .
drwxr-xr-x 6 0 0 4096 Apr 28 09:09 ..
drwxr-xr-x 2 0 0 4096 Apr 28 09:10 aa
drwxr-xr-x 2 0 0 4096 Apr 28 09:13 bb
И что странно, когда я запускаю mount -v
свою локальную машину, я вижу
[email protected]:/var/www/a on /home/gruz/debian type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
Так что sshfs, похоже, игнорируетuid=33,gid=33,
Пожалуйста, дайте совет.
решение1
На удаленной машине файлы создаются с пользователем, которого вы используете для входа. Вывод mount -v
показывает, что вы входите как root. Используйте для монтирования удаленного каталога.sshfs [email protected]:/var/www/a /home/gruz/debian
Флаг -o
изменяет uid/gid удаленных файлов на локальной машине. Вы можете запустить команду sshfs
как другой пользователь, если хотите, чтобы он владел точкой монтирования. В этом нет необходимости, если вы хотите работать с файлами под пользователем gruz
.