PrivateTmp: hook faylı yazdı, bəs o hara getdi?
Şəxsi müvəqqəti ad sahəsi faylı silmək əvəzinə onu gizlədir. Vahidi dəyişməzdən əvvəl proses kökünü yoxlayın, sonra paylaşılan məlumata real yol verin.
Hook-lar uğur bildirir, lakin eyni yol qabıqdan baxanda hələ də boş görünür. Hər iki ifadə eyni vaxtda doğru ola bilər, çünki systemd xidməti öz mount ad sahəsində şəxsi müvəqqəti qovluqla yaşaya bilər. Bu başa düşüldükdən sonra maraqlı sual yazmanın ümumiyyətlə uğurlu olub-olmadığıdır.
İki müvəqqəti qovluq, bir yol
İzolyasiya parametri vahidə müvəqqəti qovluqların yalnız oxuna bilən deyil, şəxsi görünüşünü verir. Vahiddən kənar proseslər orada yazılanları görə bilməz və vahid dayandıqda arxada qalan hər şey atılır. Buna görə hook-un çap etdiyi yol ilə qabıqdan yoxlanan yol eyni adlı fərqli obyektlərə işarə edə bilər.
Bu görünmə problemidir və məlumat itkisi problemi kimi görünür. Heç nə silinməyib, çünki fayl sadəcə qabığın üzvü olmadığı ad sahəsindədir. Eyni əmr vahidin içində işlədildikdə fərqli davranır və mübahisəni adətən həll edən müşahidə elə budur. Yazma haqqında nəticə çıxarmazdan əvvəl vahidin parametrlərini oxuyun.
Görünməyəni yazıla bilməyəndən ayırın
Uğurlu yazma və uğursuz açma fərqli sübutlar verir və bu fərq təmiri müəyyən edir. Əgər hook faylın yaradıldığını deyirsə, amma kənar oxucu onu tapa bilmirsə, ad sahəsi sualınız var. Əgər hook icazə xətası və ya uğursuz açma bildirirsə, fayl heç vaxt yazılmayıb və heç bir ad sahəsi dəyişikliyi kömək etməyəcək.
systemctl show [email protected] -p PrivateTmp -p User -p Group -p RuntimeDirectory
systemctl show [email protected] -p MainPID --value
sudo ls -l /proc/PID/root/tmp/client-stateProses kökü yolu xidmətin öz fayl sistemi görünüşünü açır, bu da proses hələ işləyərkən onun icazə yoxlamalarından asılıdır. Vahidin jurnalını eyni sessiyada oxuyun, çünki yazma xətası ilə itkin faylı qarışdırmaq, kimsə səbəbi artıq qərarlaşdırdıqdan sonra çox asandır.
Paylaşılan məlumata açıq yer verin
Yalnız xidmətin ehtiyac duyduğu məlumat onun şəxsi müvəqqəti qovluğunda yer tutur. Başqa prosesin oxumalı olduğu məlumat hər ikisi üçün müəyyən edilmiş yol tələb edir: göstərilən sahib, rejim və bitmə müddəti ilə. Vahidi redaktə etməzdən əvvəl hansına sahib olduğunuza qərar verin. Bu hadisələrin çoxu şəxsi faylı paylaşılan fayl kimi rəftar etməkdən gəlir.
[Service]
RuntimeDirectory=openvpn-hook-office
RuntimeDirectoryMode=0750İşləmə qovluğu qovluğu sistemin işləmə sahəsi altında yerləşdirir, onu vahidin konfiqurasiya olunmuş istifadəçisi və qrupu üçün yaradır və vahid dayandıqda silir. Onu drop-in vasitəsilə əlavə edin ki, paketin vahidi toxunulmaz qalsın, sonra meneceri yenidən yükləyin və həmin nüsxəni yenidən başladın, müştərilərinin yenidən qoşulacağını qəbul edərək.
Quraşdırılmış vahidin artıq tələb etdiyi istənilən işləmə qovluğunu saxlayın. Siyahını əlavə etmək əvəzinə dəyişdirmək, heç kimin dəyişikliklə əlaqələndirmədiyi əlaqəsiz funksiyanı pozmağın geniş yayılmış yoludur.
İki imtiyaz qatı ziddiyyət təşkil edə bilər
Xidmət meneceri qovluğu vahidin konfiqurasiya olunmuş istifadəçisi üçün yaradır, VPN demonu isə bağlantı hook-unu işlətməzdən əvvəl ayrıca öz hesabına enə bilər. Bunlar fərqli qatlardır və fərqli kimliklər adlandıra bilərlər.
Məhdud rejimli, root-a məxsus qovluq artıq imtiyazlardan imtina etmiş demon üçün tamamilə görünəndir və yenə də onun üçün yazıla bilməzdir. Onda xəta icazə problemi kimi oxunur, halbuki yol tam gözlədiyiniz yerdə mövcuddur. Qovluğun sahibini hook-un bildirdiyi kimliklə müqayisə edin. Onlar fərqlənəndə rejim heç vaxt sual deyildi.
Mülkiyyəti dəyişməzdən əvvəl hook-un həqiqətən hansı kimliklə işlədiyini yoxlayın. Xidmətin icra istifadəçisini qovluğu düzəltmək üçün dəyişmək cihaz girişini və şəbəkə imtiyazlarını başqa yerlərdə dəyişə bilər, bu isə kiçik problem üçün böyük qiymətdir.
Bütün ötürməni yoxlayın
Dörd şeyi eyni vaxtda təsdiqləyin: hook öz real kimliyi altında yazır, nəzərdə tutulan oxucu faylı istehlak edə bilir, əlaqəsiz istifadəçilər edə bilmir və vahidin dayandırılması dizayn edildiyi kimi təmizləyir. Faylın host-un paylaşılan müvəqqəti qovluğunda görünməsi tələb deyil və bu, adətən mübadilənin heç vaxt öz yolunu almadığının əlamətidir. Oxucunu yenidən başlatmadan sonra sınayın, yalnız ilk işləmə zamanı deyil. Təmizləmə davranışı dizaynın bir hissəsidir, ona görə onu fərz etmək əvəzinə müşahidə edin.
Daimi vəziyyət ömrü uyğun olan yerdə olmalıdır, çünki işləmə qovluğu yox olmaq üçün nəzərdə tutulub. Yeri rahatlığa görə deyil, ömrə görə seçin. Bu vərdiş eyni araşdırmanın növbəti versiyasının qarşısını alır.