yazma izninin kaldırılması, kökün dosyaya yazılmasını engellemez


31

Ubuntu makinemde (ext3 dosya sistemi) bir dosyadan yazma izinlerinin kaldırılmasının root yazmasını engellemediğini fark ettim.

Bu, UNIX dosya izinlerinin genel bir kuralı mıdır? Veya Ubuntu’ya özgü mü? Veya makinemdeki bir yanlış yapılandırma?

# dokunmatik abc
# chmod ugo-w abc
# python
Python 2.6.4 (r264: 75706, 7 Aralık 2009, 18:45:15) 
[GCC 4.4.1] linux2'de
Daha fazla bilgi için "yardım", "telif hakkı", "kredi" veya "lisans" yazın.
>>> açık ('abc', 'w'). yaz ('AAA \ n')
>>> 
# kedi abc
AAA

Bunu normal kullanıcı hesabımdan yaparsam dosyaya yazma başarısız (beklendiği gibi).

  1. Bu normal davranış mı?

  2. Kökün yanlışlıkla bir dosyaya yazmasını engellemenin bir yolu var mı? (Tercihen AppArmor vb. Gibi normal dosya sistemi mekanizmaları kullanarak)

Lütfen bana kesinlikle anlamadığım bir şey hakkında bilgi verin.

NOT: Kökün sistem üzerinde tam kontrol sahibi olduğunu ve örneğin herhangi bir dosyadaki izinleri değiştirebileceğini biliyorum . Benim sorum şu anda ayarlanan izinlerin root olarak çalışan koda uygulanıp uygulanmadığıdır . Buradaki fikir, kullanıcının yanlışlıkla bir dosyaya yazmasını engelleyen kök kullanıcıdır.

NOT: Normal işlemler için birinin root olarak giriş yapmaması gerektiğini de biliyorum . Bu davranışı daha yeni fark ettim ve size soruyorum.

Yanıtlar:


46

1) Bu normal bir davranış. root her zaman tüm dosyalara rw erişimine sahiptir.

2) Bir dosyayı kullanarak kökten bile koruyabilirsiniz (kasıtlı eylem değil, ancak yanlışlıkla)

chattr +i filename.ext

"Değişim özniteliklerini değiştirilemez". Korumayı kaldırmak için:

chattr -i filename.ext

man chattrdaha fazla bilgi için göz atın


@brice: Çok teşekkürler. doğrudan sorumu ele alıyor. chattr hakkında bilmiyordum.
laramichaels

sistemimin çalışması için kök erişimine ihtiyacı var gibi görünüyor chattr. Bu niteliklerin ayarlanmasında kullanıcı modu var mı?
quack quixote

1
... sorusuna mükemmel bir cevap olmasına rağmen, " rootBir dosyayı o kadar iyi koruyabilir ki silemez"!
quack quixote

4
Daha doğrusu (Linux'ta zaten), root, CAP_DAC_OVERRIDEACL'leri ve izinleri görmezden gelmesini sağlar.
Grawity

1
FYI, bunun OS X üzerindeki eşdeğeri sudo chflags <s|u>chg <file>, sırasıyla sistem veya kullanıcı için değiştirilemez hale getirilmesi ve sırasıyla sistem veya kullanıcı sudo chflags no<s|u>chg <file>için değiştirilemez bayrağının ayarlanmasıdır.
GDP2 21:16

3
  1. Evet, bu normal. Kök tanrıdır.

  2. Evet, kök dosyaların üzerine yazmasını önlemenin yolları vardır.

    • Değişmez biti chattr( +iset, -iunsets) ile ayarlayın . Root erişimi gerektirir, yalnızca ext2 / ext3'te çalışır (muhtemelen ext4 de ext4), ancak bunun dışında pratiktir.
    • Uygulamaları kök olarak çalıştırmayın. Kök ayrıcalıkları yok, üzerine yazma dosyaları yok. sudoSistem işlevlerine erişmek için kullanın .
    • Dosya sistemini sökünüz. Bağlı fs yok, üzerine yazma dosyaları yok. [*]
    • Bilgisayarı Kapat. Elektrik yok, üzerine dosya yok.

Bu yöntemler # 1'den mantıksal olarak takip edilir. Gördüğünüz gibi, son iki yöntem genellikle kullanışlı değildir; aynı şekilde, ağın fişini çekerek Windows'u virüslere karşı korumak genellikle yararlı değildir. Bu yüzden kök tehlikelidir. [+]

[*] Elbette, doğrudan "blok" yazısına "yanlışlıkla" yazma olasılığını azaltmak. Evet, kök bunu yapabilir. Evet, bunu önleyebilirsiniz: cihazın bağlantısını kesin.

[+] Bu aynı zamanda BOfH mitlerinin geldiği yer. Hepsi efsane değiller.


@ ~ quack: brice'nin metodu, listelediğiniz üçten çok daha pratiktir. :)
laramichaels

@ ~ quack: Sorumu açıkça belirttim, çalışan komutları root olarak anlıyorum
laramichaels

3

Ayrıca, Linux çekirdeği "Yetenekler" seçeneğini kullanarak, kök kullanıcı için dosya erişimini kısıtlayabilirsiniz: http://www.securityfocus.com/infocus/1400

Ayrıca SE-Linux veya başka bir çekirdek yamasını kullanarak bazı dosyaları kökten bile farklı hale getirme imkanı vardır.


0

Bence kök süper kullanıcı olduğu ve bir şey yapabildiği sürece, kök sen olsan da, onu hiçbir şekilde kaldıramazsın. Bir operasyon yapıp yapmamasını (bir dosyaya yazmak veya bir başvuru açmak gibi) önlemek için kökün isteğinin olması gerekiyor.

Yani hayır, şansınızı kötüye kullanmak önlemek için, sadece kök hesabını devre dışı bırakırsınız.

Saygılarımızla

[kendine not: mütevazı olmalısın ... belki yanılıyorsun]

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.