Здагадка лёгка засвойваецца і цяжка заўважаецца: кручок падлучэння 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, які вярнуўся, нічога не даказвае пра ранейшыя дэскрыптары або нявырашаныя запісы. Выберыце жаданыя паводзіны пры перапыненні — прыпынак, паказ памылкі або свядомае перамантаванне — і праверце яго на часовых файлах, перш чым ад яго што-небудзь залежыць.

Падобныя артыкулы