ფრაზაში „გაუშვი ეს ფონზე“ ორი კითხვა იმალება. პირველია, შეუძლია თუ არა ამ მომხმარებელს საერთოდ პრივილეგირებული პროცესის დაწყება; მეორეა, შეუძლია თუ არა სესიას გაგრძელება იმის გარეშე, რომ ვინმემ ტერმინალში ჩაწეროს. Shell-ის ამპერსანდი არც ერთს არ პასუხობს, და სკრიპტი, რომელიც sudo-ის პაროლს ცვლადში ინახავს, პირველს ცუდად პასუხობს და მეორეს ხელუხლებლად ტოვებს. გამოყავით ისინი და ვარიანტების შედარება მარტივი გახდება.

შეადარეთ სამი კანდიდატი საკუთრების მიხედვით, და არა მოხერხებულობის.

ტერმინალის დატოვების სამი გზა, სამი განსხვავებული მფლობელი

ბრძანებაზე ამპერსანდის დამატება shell-ს სთხოვს, ის ფონურ დავალებად გაუშვას, და დავალება კვლავ იმავე shell-ს ეკუთვნის. sudo შეიძლება იკითხოს პროგრამის დაწყებამდე, და OpenVPN შეიძლება შემდეგ იკითხოს გასაღების პაროლური ფრაზის ან შესვლის შესახებ. input-ის მომლოდინე ბრძანების ფონზე გაშვება ქმნის პროცესს, რომელიც ელოდება ტერმინალს, რომელსაც არავინ აკვირდება. ტერმინალი თავისუფლდება; ინტერაქცია არა.

ეს არის ყველაზე იაფი ვარიანტი და ის, რომელიც ყველაზე დამაბნეველად ვარდება, რადგან მოთხოვნა ჩნდება იქ, საიდანაც ოპერატორი უკვე წავიდა.

sudo -b არ არის სამოწმებელი მონაცემების დამმუშავებელი

sudo -b sudo-ის საკუთარი თვალსაზრისით ბრძანებას ფონზე უშვებს, რაც ჟღერს როგორც დაკარგული ფუნქცია და ასე არ არის. sudo-ის სახელმძღვანელოს მიხედვით, ინტერაქტიული ბრძანებები ამ რეჟიმში ჩვეულებრივ ცუდად იქცევიან, და shell-ის დავალებათა კონტროლი ვერ მართავს მის მიერ შექმნილ პროცესებს. ის გადაადგილებს პროცესს ისე, რომ არ აძლევს კითხვებზე პასუხის გზას. მასში არაფერი იძლევა პირადი გასაღების პაროლურ ფრაზას ან კარიბჭეში შესვლას.

თუ კავშირს ინტერაქცია სჭირდება, გამოსავალია მხარდაჭერილი არაინტერაქტიული აუთენტიფიკაციის მოწყობა, და არა იმავე მოთხოვნის გაშვების სხვა გზა.

--daemon ცვლის პროგრამას და არა შესვლას

--daemon სთხოვს თავად OpenVPN-ს, ინიციალიზაციის შემდეგ გამოყოფილ იქნას. 2.6-ის სახელმძღვანელო აღნიშნავს, რომ syslog-ის გადამისამართება ხდება ოფციის ანალიზისას, თუმცა გამოყოფა მოგვიანებით ხდება, ამიტომ შეტყობინებებმა შეიძლება ტერმინალში ჩვენება მოსალოდნელზე ადრე შეწყვიტონ. ამ წერტილის შემდეგ სიჩუმე ტუნელის შესახებ არაფერს ამტკიცებს. დაამატეთ გამოკვეთილი --log ან --log-append რათა გამომავალი მოხვდეს ადგილას, სადაც შეგიძლიათ წაიკითხოთ იგი.

დემონის რეჟიმი ასევე სამუდამოდ შლის კონსოლს. დაცული პირადი გასაღები ამ რეჟიმში საჭიროებს askpass , და კონსოლიდან შეყვანილი სამოწმებელი მონაცემები ქეშირების ოფციებთან ერთად შეიძლება გვიანდელი ხელახალი აუთენტიფიკაცია დატოვოს კითხვის ადგილის გარეშე. შეამოწმეთ აუთენტიფიკაციის მოდელი დაყენებული ვერსიის წინააღმდეგ, სანამ ჩათვლით, რომ ფონური გაშვება გადაიტანს თავის პირველ გასაღების განახლებას.

რას იძენს sudo-ის ვალიდაცია და რას არა

sudo -v ამოწმებს ან აახლებს ქეშირებულ ლოკალურ მონაცემებს, აუთენტიფიცირდება, თუ პოლიტიკა ამას მოითხოვს. ის არ უშვებს OpenVPN-ს, არ აუთენტიფიცირდება კარიბჭესთან და არ იძლევა გარანტიას, რომ სკრიპტის შემდგომი ბრძანება დაშვებული იქნება. sudo -n ნიშნავს საწინააღმდეგოს: ნუ იკითხავ, ჩავარდი. ეს ლოკალური ავტორიზაციის წარუმატებლობას გამოკვეთილს ხდის, რაც სასარგებლოა, და არაფერს ამბობს იმაზე, რას იკითხავს OpenVPN მოგვიანებით.

არც ერთი ვარიანტი არ არის მიზეზი ყველასთვის პაროლის გარეშე ბრძანებების მიცემის ან ადმინისტრატორის პაროლის სკრიპტში გადაცემის.

უპირატესობა მიანიჭეთ დაკვირვებად მფლობელს

მანქანის საკუთრებაში არსებული ტუნელისთვის გამოიყენეთ სერვისის ის ინსტანცია, რომელსაც დისტრიბუტივი მხარს უჭერს. ასეთი მფლობელი იძლევა გაშვებას, გაჩერებას, სტატუსს და ჟურნალებს, და ის გადაურჩება თქვენი სესიის დასრულებას. Shell-ის ფონური გაშვების, დემონიზაციისა და გადატვირთვის ციკლის ერთმანეთის გარშემო აწყობა ერთი ტუნელისთვის ქმნის სამ მფლობელს და არ აქვს მკაფიო პასუხი, რომელი მუშაობს.

რასაც არ უნდა აირჩიოთ, გადაამოწმეთ ის რესურსი, რომლისთვისაც ტუნელი არსებობს. წარმატებული გაშვების მოთხოვნა პროცესის მოვლენაა და არა მუშა კავშირის მტკიცებულება.

დაკავშირებული სტატიები