Systemd init betiği için dosya izinleri


1

Ubuntu 16.04LTS'e yükselttikten sonra systemd init komut dosyalarını keşfetmeye yeni başladım. Sahiplik ve dosya izinleri benim üzerinde ne olmalı .service Dosyalar?

Şu anda varsayılan olarak:

-rw-rw-r-- 1 me me  225 Dec 20 21:57 my.service

Sembolik olarak systemd dizinine bağlandıktan sonra, diğer dosyalar tamamen açık (777), hatta benimki:

lrwxrwxrwx  1 root root   40 Dec 20 21:31 dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service

Yanıtlar:


1

Dosyalar çalıştırılabilir mi?

Sistem birimlerini komut dosyaları olarak değil, yapılandırma dosyaları olarak düşünün. Çekirdek tarafından çalıştırılmazlar; #! Shebang hattı ve bu nedenle çalıştırılabilir olması gerekmez. (Aslında eğer sen yap Onları çalıştırılabilir kılın, systemd sistem günlüklerine bir uyarı yazdıracaktır.)

Dosyalar root olmayan kullanıcılar tarafından okunabilir mi?

Evet, içeriği gizlemenin bir anlamı yoktur (bunlar üzerinden alınabilir) systemctl Neyse). Yine sistemd, birimleri halka açık olmayan yararsız girişimler konusunda uyaracaktır.

Dosyalar olmalı yazılabilir root olmayan kullanıcılar tarafından mı?

Yalnızca kullanıcı tamamen güvenilirse (örneğin, bir sistem yöneticisi). Neleri başarabileceklerini düşünün: ünite dosyasına rasgele komutlar koyabilir, sistemi yeniden başlatabilir ve bu komutlar tam olarak çalıştırılabilir. kök ayrıcalıkları.

Bu nedenle, güvenilmeyen bir kullanıcı sistem .service dosyalarına yazabilirse, çok hızlı bir şekilde kök olabilir.

Dosyalar root tarafından mı tutulmalı?

Bunlar sistem yapılandırma dosyalarıdır. /etc, bu yüzden kök doğal seçim olacaktır. (O kadar önemli değil - ama yap yazılabilirlik hakkında önceki bölüme bakınız.)

Diğer dosyalar gerçekten "tamamen açık" mı?

Onlar değil. Senin örnek symlink, dosya değil. Sembolik bağlantıların hiçbir şekilde kendi izinleri yoktur - sistem daima aynı kukla değeri verir, ancak hiçbir zaman hiçbir şey için kullanmaz. (Bu arada, rwx rwx rwx 0777, 0755 değil.)

Eğer hepsine bakarsan düzenli içindeki dosyalar /etc/systemd/system veya /usr/lib/systemd/system, hemen hemen hepsinin izinlere sahip olduğunu göreceksiniz 0644 ( rw- r-- r-- ).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.