Предпоставката се усвоява лесно и се забелязва трудно: куката за VPN връзка работи като root, значи монтирането, което тя стартира, също трябва да бъде организирано като root. Това разсъждение създава папка на екипа, която потребителят на работния плот не може да отвори, монтиране, което изчезва при рестарт на задействащата услуга, и подкана за удостоверяване в контекст, в който никой не може да отговори. Куката и монтирането са две различни задачи и само една от тях се нуждае от привилегии.

Митът: мрежовите привилегии означават привилегии за монтиране

Вдигането на интерфейс и удостоверяването към файлов сървър са несвързани способности и обикновено принадлежат на различни акаунти. VPN компонентът се нуждае от достатъчно привилегии, за да променя маршрути и интерфейси. Акаунтът на файловия сървър се нуждае от ключ или парола, решение за ключа на хоста и домашна директория, в която да се монтира. Предаването на идентификационните данни на втората задача на първата самоличност е начинът, по който една мрежова услуга започва да пази ключа на потребителя.

На лаптоп с един потребител това може да е един и същ акаунт и това съвпадение не е дизайн.

Щом привилегирована кука извърши монтирането, три неща се объркват тихо. Монтирането се притежава от root, агентът на потребителя отсъства от тази среда, а отказите се появяват в журнала на мрежовата услуга, а не в сесията, на която им пука. Никое от това не се поправя чрез добавяне на опции към командата за монтиране. Поправя се, като задачата се даде на сесията, която притежава самоличността.

Защо монтирането принадлежи на влезлия потребител

Монтиране на SSHFS е монтиране на FUSE, притежавано от процеса, който го е създал, и достъпът следва това притежание, а не режима на родителската директория. Справочникът препоръчва обикновен потребител с точка на монтиране, притежавана от него, и точно затова монтиране, създадено от root процес, е неудобно за всички останали. Промяна на правата върху точката на монтиране не го поправя, защото пречката е самият собственик на монтирането.

Започнете от ръчна базова линия в сесията на потребителя: съществуваща празна точка на монтиране под домашната директория, оторизиран акаунт на сървъра и ключ на хоста, вече проверен чрез одобрения ви процес. Монтирайте го ръчно веднъж и го използвайте, защото това доказва, че пътят на самоличността работи преди да съществува автоматизация. Отбележете какво е било нужно на командата: името на акаунта, пътя за експорт и частното име на хоста. Запазете точно този контекст за автоматизираната версия, защото работещото ръчно монтиране е спецификацията, която задействащият механизъм трябва да възпроизведе.

sshfs [email protected]:/exports/team "$HOME/mnt/team"

Приемайте всяко име и път в този ред за заместител, включително акаунта и експорта. Паролата на VPN акаунт не е автоматично идентификационните данни на акаунта за съхранение.

Какво трябва да поиска задействащият механизъм от сесията

Поддържаното устройство е заявка от мрежовото събитие към потребителската сесия, а не заимствани идентификационни данни. Ограничете задействащия механизъм до връзката, която имате предвид, по име или UUID, а не до всеки интерфейс, който случайно се нарича tun0. Тази единствена промяна спира втори профил, тестов тунел или сесия за отстраняване на грешки на колега да стартира монтиране.

Действието от страна на сесията трябва да потърси предвиденото съществуващо монтиране и след това да направи един ограничен опит.

Не опитвайте отново при всяко запитване и не продължавайте да искате идентификационни данни, докато сървърът е недостъпен, защото и двете превръщат кратко прекъсване в заключване на акаунта. Услуга без надзор е отделен дизайн със свои одобрени идентификационни данни и собствена схема за проверка на хоста в собствен контекст на изпълнение и не може да разчита, че някой е отключил графичен агент. Решете кое от двете строите, преди да изберете къде да живее кодът. Повечето от объркването тук идва от това, че се строи едното, а се очаква другото.

Прекъсването е събитие на файловата система, а не събитие на куката

Планираното прекъсване трябва да завърши файловите операции и да демонтира от сесията на монтиращия потребител с поддържаната команда за този тип файлова система. Принудителното отделяне, за да се върне куката бързо, е начинът, по който приложенията губят работната си директория, а потребителите — доверието в автоматизацията. Заетото монтиране се нуждае от решение на ниво приложение, например затваряне на файла или спиране на записа, а не от по-силен сигнал. Статусът на изход на куката не е това, което се оптимизира.

fusermount3 -u "$HOME/mnt/team"

Неочакваната загуба е различен случай и SSHFS документира, че прекъсната операция може да блокира, докато транспортът се свързва отново.

Опцията за повторно свързване възстановява транспорта и файлове, отворени преди това свързване, все още могат да връщат грешки и да се нуждаят от повторно отваряне. Върнал се VPN не доказва нищо за по-ранни дескриптори или незаписана работа. Изберете желаното поведение при прекъсване — пауза, показване на грешка или умишлено повторно монтиране — и го тествайте с временни файлове, преди нещо да зависи от него.

Подобни статии