'su' Komutu Güvenliği Artırmak için Kullanılabilir mi?

Merhabalar.

Güvenmediğimiz programların potansiyel zararlarından korunabilmek için özel bir kullanıcı hesabı açıp, programı su -lc <command> <username> komutu ile kısmen izole bir ortamda çalıştırmak güvende kalmamızı sağlar mı?

1 Beğeni

root kullanıcısı olunmadığı takdirde programlar sisteminize ve sistem dosyalarına zarar veremez.

Normal bir kullanıcıyla çalıştırdığınız program sadece o kullanıcının okuma ve yazma izni olan dosyalara müdahale edebilir. Örneğin erişebildiği bütün dosyaları silmeye programlanmış zararlı bir yazılımı normal kullanıcıyla çalıştırırsanız /home/kullanici/ dizini içindeki dosyaların hepsini silebilir.

Bu tarz bir şeyden kurtulmak için dediğiniz gibi test amaçlı ikinci bir kullanıcı oluşturulabilir ve programlar önce onda çalıştırılabilir. Ama böyle bir şeyin ne kadar gerekli olduğunu bilemiyorum, ben uğraşmazdım yani :).

Bir de “potansiyel zarar” olarak neyden korumak istediğiniz de önemli. Örneğin belirli bir ayar dosyasını diğer kullanıcılardan korumak istiyorsanız, yeni bir kullanıcı oluşturup o dosyanın bütün sahipliğini o kullanıcıya atayabilirsiniz. Böylece sadece o kullanıcı o dosyaya erişir ve normal kullanıcıyla çalıştırdığınız programlar zarar veremez.

4 Beğeni

Bunları biliyorum, Windows’tan göç edeli aylar oluyor. :slight_smile:

“Güvenmediğimiz programlar” derken herkesçe denetlenebilir olmayan kapalı kaynak yazılımlardan bahsediyorum.

Bu, istenmeyen herhangi bir olumsuz davranış olabilir.

Aslında benim istediğim bunun tam tersi, yani güvenmediğim programları sistemin geri kalanından izole etmek. Bunun için sanal makineleri de kullanılabilirdim ama pek pratik olmuyor.

Cevabınız için çok teşekkür ederim.

Aklıma takılan bir şey daha var, bu tür programların localhost üzerindeki aktif bağlantıları(protokol ve bağlantı noktası(port) farketmeksizin) kullanarak sisteme zarar vermesi veya sistemi ele geçirmesi mümkün olabilir mi?

cgroups ve capabilities (7) yardımıyla uygulamalara çeşitli kısıtlamalar getirebilirsiniz. Ayrıca linux containers (LXC) ile de uygulamaları izole edebilirsiniz diye okudum. LXC ile tecrübem yok. Docker gibi bir container sistemi olabilir. Biz daha önce cgroups (7) ve capabilties yardımıyla uygulamalarımızı kısıtlıyorduk. Kodu yazarken sadece ihtiyaç duyduğumuzda kabiliyetleri kazanıyor ve ihtiyaç bittiğinde yeniden kapatıyoruz. cgroups ve capabilities kullanmadan önce konuları okumanız ve deneme yapmanızı öneririm. Capabilities kullanarak root kullanıcısını da kısıtlayabiliyorsunuz. Uçbirime man 7 capabilities, man 7 cgroups ve man 7 cgroup_namespaces yazarak konularla ilgili daha fazla bilgi alabilirsiniz. Ben en son 2016 yılında kullanmıştım ve detayları hatırlamıyorum.

1 Beğeni

Bunun için Flatpak uygulamalarını kullanabilirsiniz. Flatpak uygulamaları kendine has sandbox’ta çalışır. Sanal bir ortamda yani. Flatpak paketindeki izinler dışında bir şey yapamaz. İzinlerini kontrol edebilirsiniz örneğin indirdiğiniz uygulamaların. Zamanla daha da gelişip Linux’ta standart bir paket yöneticisi olmasını bekliyorum uygulamalar için çünkü pek çok sorunu çözüyor.

Mesela benim sistemimde düzgün ama başka sistemde bozuk sorununu da çözüyor. Çünkü geliştirici nasıl paketlediyse flatpak uygulaması da o kütüphanelerle geliyor. Dolayısıyla her sistemde en uygun şekilde çalışıyor. Tek eksisi apt gibi paket yöneticilerine göre bir tık daha fazla yer kaplaması fakat bu günümüzde TB’lerin havada uçuştuğu bilgisayarlar için bence önemsiz bir şey.

Flatpak uygulamalarına Flathub.org’dan erişebilirsiniz.

2 Beğeni

Bu konu son cevaptan 10 gün sonra otomatik olarak kapatıldı. Yeni cevap girilmesine izin verilmiyor.