chattr: Linux'taki dosyaların / klasörlerin öznitelikler veya bayraklarla maksimum koruması

Pekala ... her şey oyun olamaz, niyetim sadece oyunlardan bahseden gönderiler yayınlamak değil 😉 ... Çok oynayan bir kullanıcı değilim, evde bunu kız arkadaşıma bırakıyorum (şimdi bağımlı olan Sims 4), bu yüzden terminaldeki komutlar veya ipuçları hakkında daha fazla teknik makale yayınlamak için beni daha çok motive ediyor.

Linux'ta bazılarımız var izinler hemen hemen her sorunu kesinlikle çözecek şekilde, hangi kullanıcının veya kullanıcı grubunun belirli bir kaynağa, klasöre, hizmete erişimi olduğunu belirleyebiliriz. Bununla birlikte, köklerin bile belirli bir eylemi yapamamasını istediğimiz durumlar olduğu için, izinlerin tam olarak ihtiyacımız olan şey olmadığı zamanlar vardır.

Silinmesini istemediğimiz bir klasörümüz veya dosyamız olduğunu varsayalım, gidelim ... ne kullanıcımız ne de bilgisayardaki başka bir kişi tarafından (ehm ... kız arkadaşım örneğin haha) veya root bile silemez, bunu nasıl başarabilirim? ... izinler bize yardımcı olmayacak çünkü kök, lanet-usta, her şeyi silebilecek, bu yüzden dosya veya klasör öznitelikleri devreye giriyor.

chattr + i

Bir dosyayı silinemeyecek şekilde korumak istediğimizi varsayalım, bu: şifreler.txt , konumunuz (örneğin) $ HOME / passwords.txt

Salt okunur bir öznitelik ayarlamak için (yani, değişiklik ve silme yok) şu şekilde olur:

sudo chattr +i $HOME/passwords.txt

Gördüğünüz gibi, + i parametresi için yönetim izinlerine ihtiyacımız var, bu arada, + i dosyanın değişmez olacağı anlamına gelir, bilirsiniz, silinemez, hiçbir şekilde değişemez.

Ardından, sudo kullanarak bile dosyayı silmeyi deneyebilirsiniz ... bunu yapamayacağınızı göreceksiniz, işte bir ekran görüntüsü:

sohbet_1

Bir dosyanın sahip olduğu nitelikleri listelemek veya görmek için şu komutu kullanabiliriz: lsattr, örneğin:

lsattr passwords.txt

Daha sonra kullanmak yerine korumayı kaldırmak için +i kullanırız -i ve voila 😉

chattr + a

Daha önce gördüğümüz gibi, + i parametresi onu tamamen korumamıza izin veriyor, ancak orijinal içeriğini değiştirmeden, belirli bir dosyanın değiştirilmesine ihtiyaç duyduğum zamanlar oldu. Örneğin, bir listem var ve bunun için yankı kullanarak yeni satırların ve bilgilerin eklenmesini istiyorum, ancak bunun için öncekileri değiştirmeden:

sudo chattr +a $HOME/passwords.txt

Bunu yaptıktan sonra dosyaya yeni bir şeyler yazmayı deneyelim:

echo "Prueba" > $HOME/passwords.txt

Bir hatanın göründüğünü fark edeceksiniz… ancak, değiştirmek yerine içerik eklersek (> kullanarak değil>):

echo "Prueba" >> $HOME/passwords.txt

Burada yapabiliriz.

Son!

Bilgili birinin, kök ile bile bir dosyayı silebileceğini / değiştirebileceğini gördüklerinde, özniteliklerini kontrol edebileceğini biliyorum ... ama, hey! … Böyle bir şeyi fark ettiğinizde kaç kez öznitelikler hakkında düşünmeyi bırakıyorsunuz? ... Bunu söylüyorum çünkü genellikle sadece HDD'nin veya sektörünün bozuk olduğunu veya sistemin çıldırdığını düşünüyoruz 😀

Eklenecek çok şey yok ... Sanırım bunu kullanacağım +i kız arkadaşımın indirmekte olduğu bir şeyin indirilmesini durdurmak için ... ... ehm ... istemedi mi sims 4'ü indir Bedava? … Size lisanslar hakkında bir iki şey öğreteceğim ve bunların ihlal edilmemesi gerektiğini düşünüyorum 😀

Selamlar!


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   durdurmak dijo

    Bu araç hakkında bilmek ilginç, ya bana biraz merak uyandırırsa, bit izinlerine benzer bir şey olmayacak mı? Yani setuid, setgid ve yapışkan bit mi? Değilse neden? Oo

    Not: Bu yazıda kız arkadaşım dediğiniz zamanların sayısını kaybettim hahaha

    1.    Hugo dijo

      Bu da biraz, değişmezlik bitidir ve hiç kimsenin uygulandığı dosyayı (kök bile) değiştiremeyeceği veya silemeyeceği şekilde tasarlanmıştır. Örneğin, Zentyal gibi dağıtımlarda özellikle yararlı olan yapılandırma dosyalarını yazmaya karşı korumak için kullanıyorum (yapılandırmayı özelleştirmenin şablonları düzenlemekten veya oluşturmadan çok daha hızlı bir yoludur).

      Bu komutu chown, chmod ve setfacl ile birleştirerek ilginç şeyler başarılabilir.

      FreeBSD'de, pfSense'im için de kullandığım benzer bir şey var.

    2.    John dijo

      Hahaha bu bilinen bir aşama.
      http://www.xkcd.
      com.tr / 684 /

  2.   Niandekuera dijo

    [Dr. Bolivar Trask] $ sudo chattr + i * .human

  3.   Tesla dijo

    Çok iyi düzen. Onu tanımıyordum.

    Bir bilgisayarı paylaşıyorsak veya üzerinde çalıştığımız ve dünya için silmek istemediğimiz belirli bir belgeye sahipsek çok faydalı olabilir.

    Teşekkür ve saygılarımla!

  4.   Luis dijo

    Çok ilginç.

    ROOT'un ana sayfamızdaki belirli bir klasöre erişememesi için benzer bir şey yapılabilir mi?

    1.    Tesla dijo

      Makaleye göre bu komutla kök bile dosyaya erişemiyor. Sanırım aynısı klasörler için de geçerli, çünkü Linux'ta klasörler de dosyalardır, değil mi?

  5.   Joaquin dijo

    Ne tesadüf. Bu hafta sonu bir kök bölümü silmeye çalıştım ve / boot dizininden bir dosyayı silemedim. Baktığımda, gerçekten bilmediğim öznitelikleri buldum ve şimdi bir dosyadaki izinler ve özniteliklerin sorununun çok büyük olduğunu anlıyorum. Bu, "chmod" ve "chown" ile birlikte bilmemiz gereken temel komutlardan biridir.

  6.   Aguatemala dijo

    Bu son derece kullanışlıdır, özellikle örneğin ilgili ISS'mizin varsayılan DNS'sini değiştirmek istiyorsak ve bu, /etc/resolv.conf dosyasını değiştirmemiz gerektiğinde ve bunu yapmak için chattr -i yapmalıyız. / etc / resolv.conf, ücretsiz ve / veya ücretsiz DNS'imiz için görünen IP'leri (OpenDNS 208.67.222.222 ve 208.67.220.220 veya Google 8.8.8.8 ve 8.8.4.4'tekiler gibi) ve ardından dosya değiştirildi chattr + i /etc/resolv.conf, makine başladığında dosyanın değiştirilmemesi için yeniden.
    Harika bir makale… ve bu arada, kız arkadaşın da karım gibi, tıpkı oyunlara bağımlı, hahahahaha

  7.   hamBasic dijo

    Açıkça görülüyor ki "kahrolası usta" bu durumda senin kız arkadaşın. xD