უნდა ფლობდეს თუ არა მომხმარებლის სესია SSHFS-ის მონტაჟს VPN-ზე?
Root VPN კაუჭს არ შეუძლია სამუშაო მაგიდის აგენტის სესხება. დაამონტაჟეთ შესული მომხმარებლის სახით, შეზღუდეთ ტრიგერი ერთ კავშირზე და დაგეგმეთ გათიშვა, სანამ აიძულებთ.
VPN-ის აწევის შემდეგ საერთო საქაღალდის მონტაჟი მოიცავს ორ იდენტობას, რომლებიც ადვილად აირია: კომპონენტი, რომელსაც ქსელის კონფიგურაციის უფლება აქვს, და ანგარიში, რომელსაც ფაილების სერვერზე შესვლის უფლება აქვს. ისინი იშვიათად არიან ერთი და იგივე. Root-ის საკუთრებაში არსებული VPN კაუჭი ცუდი ადგილია სამუშაო მაგიდის მომხმარებლის SSHFS მონტაჟის დასაწყებად, რადგან მას არც მომხმარებლის აგენტი აქვს და არც მოსალოდნელი მონტაჟის საკუთრება. საკუთრების პირველად სწორად დაყენება ტრიგერს მარტივს ხდის.
ორი იდენტობა, ორი ცალკე ნებართვა
VPN კლიენტს მარშრუტებისა და ინტერფეისების შეცვლისთვის პრივილეგიები სჭირდება. SSHFS მონტაჟს სჭირდება SSH იდენტობა, რომელსაც ფაილების სერვერი მიიღებს, და FUSE მონტაჟი, რომელიც ეკუთვნის ფაილების წამკითხავ ანგარიშს. Root-ად მომუშავე ერთი სკრიპტი აკმაყოფილებს პირველ მოთხოვნას და ჩუმად არღვევს მეორეს.
Root-ად მონტაჟი ფაილებს ტოვებს სამუშაო მაგიდის სესიის გარეთ და შესაძლოა მომხმარებლის გასაღების მქონე აგენტზე წვდომის გარეშე. მონტაჟი არსებობს, მომხმარებელს მისი მეშვეობით წერა არ შეუძლია, და ჩავარდნა სერვერის მხარეს ნებართვის პრობლემას ჰგავს. ასეთი არასწორი დიაგნოზი ნახევარ დღეს და საცავის გუნდთან ერთ ბილეთს ხარჯავს.
გადაწყვიტეთ, რომელი ანგარიში ფლობს მონტაჟს, სანამ რაიმე ავტომატიზაციას დაწერთ, რადგან ეს არჩევანი განსაზღვრავს, სად ცხოვრობს ტრიგერი და რომელ სერტიფიკატებს შეუძლია მიაღწიოს.
ჯერ ხელით დაამყარეთ მომხმარებლის საკუთრებაში არსებული მონტაჟი
დაიწყეთ შესული მომხმარებლით, რომელსაც აქვს ცარიელი მონტაჟის წერტილი, ავტორიზებული SSH ანგარიში და გვირაბის გავლით სერვერთან მუშა გზა. ხელით მონტაჟი ადგენს იმ საფუძველს, რომელიც ნებისმიერმა ავტომატიზაციამ უნდა გაიმეოროს.
mkdir -p "$HOME/mnt/team" sshfs [email protected]:/exports/team "$HOME/mnt/team" mount | grep sshfs
სახელები მაგალითებია, ამიტომ შეცვალეთ ჰოსტი და ექსპორტის გზა, რომელსაც თქვენი სერვერი რეალურად გთავაზობთ. გადაამოწმეთ ჰოსტის გასაღები დამტკიცებული პროცესით პირველ კავშირზე. გაითვალისწინეთ, რომ VPN ანგარიშის პაროლი ავტომატურად არ არის საცავის ანგარიშის სერტიფიკატი, და ეს წარუმატებელი ცდების გავრცელებული მიზეზია.
გაუშვით ის ჩვეულებრივი მომხმარებლის სახით, მონტაჟის წერტილით, რომელიც ამ მომხმარებელს ეკუთვნის. ნაგულისხმევად მხოლოდ დამამონტაჟებელი ანგარიში აღწევს ფაილებს, და allow_other აფართოებს ამ საზღვარს ყველა ლოკალურ მომხმარებლამდე. ეს წვდომის განზრახ გაფართოებაა, არა ავტომატიზაციისთვის შემოვლითი გზა.
ნება დართეთ ტრიგერს იმავე სესიის კონტექსტში იმოქმედოს
ნება დართეთ მხარდაჭერილ VPN მოვლენების ინტეგრაციას მოითხოვოს მომხმარებლის სესიის მოქმედების გაშვება, იმის ნაცვლად, რომ ჩათვალოთ, თითქოს პრივილეგირებულ callback-ს შეუძლია სამუშაო მაგიდის სერტიფიკატის სესხება. შეზღუდეთ ტრიგერი მოსალოდნელ კავშირის იდენტიფიკატორზე და არა რომელიმე ინტერფეისზე, რომელსაც შემთხვევით tun0 ჰქვია. არასწორ საგანთან დამთხვეული დისპეტჩერის წესი ყოველ ქსელურ ცვლილებაზე ირთვება, მათ შორის იმაზეც, რასაც ამ მონტაჟთან კავშირი არ აქვს.
მოქმედებამ უნდა დაადასტუროს მოსალოდნელი ჰოსტის სახელი, შეამჩნიოს არსებული მონტაჟი და გააკეთოს ერთი შეზღუდული ცდა. გამოკითხვის ციკლი, რომელიც ყოველ რამდენიმე წამში იწყებს ახალ SSHFS პროცესს ან იმეორებს სერტიფიკატის მოთხოვნას, სანამ სერვერი გამორთულია, მოკლე შეფერხებას ჩარჩენილი პროცესების გროვად აქცევს. შეზღუდეთ ცდა ტაიმაუტით და ერთი ხელახალი ცდით.
nmcli -g UUID connection show --active systemctl --user list-units 'sshfs*' pgrep -a sshfs
პირველი ბრძანება გაძლევთ კავშირის იდენტიფიკატორს, რომელსაც დისპეტჩერი უნდა დაემთხვეს. დანარჩენი ორი გვიჩვენებს, უკვე მიდის თუ არა ცდა, და ეს არის შემოწმება, რომელიც ხელს უშლის დუბლირებას.
უყურადღებო სერვისს სჭირდება საკუთარი დამტკიცებული სერტიფიკატები და საკუთარი ჰოსტის შემოწმება საკუთარი შესრულების კონტექსტში. მას არ შეუძლია ჩათვალოს, რომ გრაფიკული აგენტი გახსნილია, და არც უნდა სცადოს მისი გახსნა.
დაგეგმეთ გათიშვა, სანამ აიძულებთ გასუფთავებას
დაგეგმილი გათიშვისთვის დაასრულეთ ფაილური ოპერაციები და გათიშეთ დამამონტაჟებელი მომხმარებლის საკუთარი სამუშაო ნაკადიდან. დამიზნეთ მონტაჟის წერტილი და არა პროცესი, და დაადასტურეთ შედეგი, სანამ წარმატებას შეატყობინებთ.
fusermount3 -u "$HOME/mnt/team" mountpoint "$HOME/mnt/team"
გათიშეთ მხოლოდ ის მონტაჟი, რომელიც ამ სამუშაო ნაკადმა შექმნა. თუ ის დაკავებულია, ეს აპლიკაციის გადაწყვეტილებაა: იძულებითი განცალკევება, რომელიც არსებობს იმისთვის, რომ კაუჭმა წარმატება დააბრუნოს, მალავს მონაცემთა დაკარგვას, ნაცვლად მისი თავიდან აცილებისა.
მოულოდნელი დაკარგვა სხვაგვარად იქცევა. SSHFS ადასტურებს, რომ ქსელის შეფერხებამ შეიძლება დაბლოკოს ფაილური სისტემის ოპერაცია, და reconnect პარამეტრი აღადგენს ტრანსპორტს ღილაკების აღდგენის გარეშე: ხელახალი დაკავშირების წინ გახსნილი ფაილი შეიძლება ჩავარდეს შემდეგ ჩაწერაზე, და შეწყვეტილი ჩაწერა არ ინახება. ეს განსხვავება ყველაზე მნიშვნელოვანია რედაქტორებისთვის, რომლებიც ერთ ფაილს საათობით ღიად ტოვებენ. დაგეგმეთ ხელახალი გახსნის ნაბიჯი, ნაცვლად აღდგენის ვარაუდისა.
სანამ დაეყრდნობით, გამოსცადეთ ქცევა ერთჯერადი ფაილებით. გვირაბის დაბრუნების შემდეგ ხელახლა გამოჩენილი საქაღალდე არ ამტკიცებს, რომ ადრინდელი ღილაკები ან შეუნახავი სამუშაო გადაურჩა.