Neden / etc / shadow için dosya izni 600 olarak ayarlanmış?


25

İzinleri /etc/shadow600'dür, bu da kök dışındaki hiç kimse için okunamayacağı anlamına gelir.

Ancak, içindeki tüm şifreler açık metin olarak değil, karma olarak saklandığından (bu, orijinal şifreyi karma değerinden hesaplamanın mümkün olmadığı anlamına gelir), neden herkes tarafından okunamayabilir?


İzinlerini de emin misin /etc/shadowvardır 600?
edwinksl

4
Stackoverflow hesabınızın bir şifresinin şifrelenmiş olması halinde, şifrelenmiş şifrenizi başkalarına göstermek ister misiniz?
Jeon,

5
@ByteCommander. Bazen düzenlemeleri yenmek için bir yol istiyorum.
TRiG 21:16

Yanıtlar:


60

Çevrimdışı kaba kuvvet saldırılarını önlemek için.

Bir karmayı tersine çeviremeseniz bile, bir eşleşme bulana kadar her olası şifreyi birleştirmeyi deneyebilirsiniz ve dosyaya iyi bir donanım ve yerel erişim ile saniyede milyonlarca deneme yapabilirsiniz.

Dosyanın 644izinleri varsa, o zaman sisteminize giriş yapan bir misafir, hatta bir misafir oturumunda bile, bu dosyayı bilgisayarınızdan kopyalayabilir (bir USB belleğe veya uzaktan kumandayla scp) ve çevrimdışı bir kaba kuvvet saldırısı girişiminde bulunabilir , bilgisayarınızda herhangi bir kanıt bırakmadan .


Ubuntu’daki izinlerin aslında 640olmadığını unutmayın 600:

$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1239 Jun 25 04:35 /etc/shadow

Yine de, başkaları için hala izin olmadığından ve varsayılan olarak shadowgrupta hiç kimse olmadığından önemli değildir .


Başlangıçta, Linux'ta yaratıldığı zamanki gibi hash'ler /etc/passwd(bu nedenle denir passwd) saklanırdı, bir hastayı kırmak, o zamanlar kullanılan zayıf tipleri bile, neredeyse imkansızdı. Nihayetinde, işlem gücü, en azından nispeten zayıf bir parolanın bir karmasını kırmanın mümkün olduğu noktaya ilerlemiştir.

İzinlerini değiştirme /etc/passwdiçin 640veya 600olmaz eser, birçok geçerli nedeni okumak için muktedir olduğu gibi /etc/passwdkarmaları taşındı bu yüzden, (vb, kullanıcı adları için UID'leri dönüştürerek bir kullanıcının tam adı, telefon numarası alma) normal bir kullanıcı olarak /etc/shadow, 640izin verildi . Bir xkullanıcının şifre şifresi alanının yerine, kullanıcının şifresinin /etc/passwdsaklandığını belirtmek için /etc/shadowkullanılır.


1
Dosyanın kopyalanması üzerine iyi çağrı!
Rinzwind

1
ve rep; ihtiyacım yok ;-) edit: hmm o benim üzerine ayarlamak: P üzgünüm: D edit2 ve şimdi tekrar geri döndü. eh: D
Rinzwind

6
En son kontrol ettiğimde, şifreli şifreyi tekrar / etc / passwd içine koyabilir ve / etc / shadow satırını kaldırabilir ve oturum açmayı bekleyebilirsiniz. / Etc / shadow var, böylece belirtilen nedenden dolayı 600 değerine ayarlanabilir bu cevapta.
Joshua,

8
/ Etc / passwd dosyasının izinlerinin 644 olduğunu belirtmekte fayda var. Tarihsel olarak, parola karma değerlerinin burada depolandığına inanıyorum. Bununla birlikte, bu dosyanın 640 olarak değiştirilmesi, her türlü uyumluluk sorununa neden olmuş olabilir; bu nedenle, parola sağlama kodları gölgeye taşındı ve paroladan kaldırıldı; farklı dosya
Rodney

4
@ BSD 4.3 ile büyümüş biri olarak @Rodney, haklısın. Hash'ler / etc / passwd dosyasında saklandı. Vax 11/780 son teknoloji ürünü olduğunda, dosyadaki şifrelere kaba bir kuvvet saldırısı yapılması imkansızdı. Belki daha da önemlisi, İnternet [Arpanet] uykulu bir küçük durgun su idi ve bu gibi şeyler pek düşünülmedi; ssh-only rlogin / telnet yoktu. 644 numaralı şifre dosyasının saklanması ls, kullanıcı adından isme çevirmek için setuid root olması gibi yardımcı programların kullanılması anlamına gelir .
Mike S

13

Aslında, / etc / shadow, herkes tarafından okunabilen bir kullanıcı adı ve şifre listesinden uzaklaşmaya izin vermek için yaratıldı .

İçeride kalın, bu asıl cevaba ulaşmadan önce biraz tarih dersi olacak. Geçmişi umursamıyorsan, sadece biraz aşağı kaydır.

Eski günlerde, Linux dahil Unix benzeri işletim sistemleri genellikle şifreleri / etc / passwd konumunda tutuyordu. Bu dosya dünyaca okunabiliyordu ve yine de, örneğin sayısal kullanıcı kimlikleri ve kullanıcı adları arasında eşlemeye izin veren bilgiler içerdiğinden dolayı. Bu bilgiler, sıradan kullanıcılar için bile tamamen meşru amaçlar için bile son derece kullanışlıdır, bu nedenle dosya dünyasının okunabilir olması, kullanım açısından büyük yarar sağladı.

O zamanlar bile insanlar şifreleri düz metin olarak bilinen bir yerde bir dosyada oturum açacak birinin özgürce okuyabildiğinin kötü bir fikir olduğunu anladılar. Yani bir bakıma şifreler karıştırıldı. Bu, neredeyse hiçbir zaman modern sistemlerde kullanılmayan, ancak genellikle eski amaçlar için desteklenen eski "kripto" şifre toplama mekanizmasıdır.

Sisteminizde / etc / passwd dosyasına bakın. xHer yerde yazan ikinci alanı gördün mü? Söz konusu hesap için karma şifreyi tutardı.

Sorun, insanların / etc / passwd dosyasını indirebileceği veya indiremeyeceği ve şifreleri kırmaya çalıştığıydı. Bilgisayarlar çok güçlü olmasa da bu büyük bir sorun değildi ( The Cuckoo's Egg'teki Clifford Stoll, hatırladığım kadarıyla, 1980'lerin ortalarında bir IBM PC sınıfı sistemde bir saniyelik bir şifreye sahip olmanın zamanını veriyor.) ) ancak işlem gücü arttıkça sorun ortaya çıktı. Bir noktada, iyi bir kelime listesi ile, bu şifreleri kırmak çok kolay oldu. Teknik nedenlerden dolayı, bu şema sekiz bayttan daha uzun şifreleri de destekleyemedi.

Bunu çözmek için iki şey yapıldı:

  • Daha güçlü karma işlevlerine geçme. Eski kripti () faydalı ömrünü uzatmıştı ve hem geleceğe hazır hem de hesaplama açısından daha güçlü olan daha modern şemalar tasarlandı.
  • Özetlenmiş şifreleri sadece herkes tarafından okunamayan bir dosyaya taşıyın. Bu şekilde, bir şifre karma fonksiyonu beklenenden daha zayıf olduğu halde birisinin başlaması için zayıf bir şifresi olsa bile, bir saldırganın başlamak için karma değerlerine erişmesi için başka bir engel vardı. Artık herkes için özgür değildi.

Bu dosya / etc / shadow.

/ Etc / shadow ile çalışan yazılım genellikle çok küçük, çok odaklı ve sorunlara neden olabileceği için incelemelerde fazladan inceleme alma eğiliminde. Ayrıca, sıradan kullanıcıları bu dosyaya bakamayacak şekilde tutarken / etc / shadow dosyasını okuyup değiştirmesine izin veren özel izinlerle çalışır .

Bu yüzden orada var: / etc / shadow üzerindeki izinler kısıtlayıcıdır (yine de belirtildiği gibi, belirttiğiniz kadar kısıtlayıcı değildir) çünkü bu dosyanın tüm amacı hassas verilere erişimi kısıtlamaktır.

Bir şifre karma değerinin güçlü olması beklenir, ancak şifreniz İnternet listelerindeki En İyi 500 Şifrelerde ise, şifreye erişimi olan herkes şifreyi hızlı bir şekilde bulabilir. Karmaları korumak, basit bir saldırıyı önler ve başarılı bir saldırı için çıtayı basit gözetlemeden birinin zaten ana bilgisayarda sistem yöneticisi olmasını isteme veya önce bir ayrıcalık yükseltme saldırısından geçmesi için çıtayı yükseltir. Özellikle doğru uygulandığında çok kullanıcılı sistemde, bunların her ikisi de önemli ölçüde sadece herkesin okuyabileceği bir dosyaya bakarak daha zor.


her şeyi tarif etme şeklini gerçekten seviyorum :) (y)
Shubhanshu Vishwakarma 21:16

Terminoloji / etimoloji: /etc/shadow"gölge parolaları" içermez (çünkü bu bir şey değildir). Tüm dosya gölgesidir /etc/passwd. Terminolojinin Linux Gölge Parolasında nasıl kullanıldığını görün NASIL : Passwd dosyanızı neden gölgeleyin? . Bilgisayarda "Gölge" teriminin diğer bazı kullanımlarından farklı olarak, bu bir gölge kopya değildir (BIOS'tan RAM’e ROM’dan çalışmak yerine RAM’i gölgelendirmek gibi). / Etc / passwd içindeki alan "gerçek parola hash / etc / shadow içinde" anlamına gelen özel bir karakter içeren bir yer tutucudur.
Peter Cordes

İyi geçmiş ama 1 saniye. Her bir insanın% 1'inden fazlası tarafından en iyi şifreler kullanıldığında değil, şifre başına 1980'lerde bile pek kısıtlayıcı değildi.
Warren Dew,

1
@WarrenDew Bir gerçek veya fikir beyanı yaptığınızdan emin değilsiniz. crypt (), sekiz baytlık bir şifre için 12 bitlik bir tuz ve 12 + 64 bitlik çıkışa sahiptir (daha sonra genellikle base64 ile kodlanmıştır). Genel şifreler için, evet, muhtemelen kaba kuvvetle onlara saldırabilirsin, ancak her şifre kontrolü bir saniye sürerse, kaba kuvvetle kırılmayı olanaksız kılmak için bu kadar fazla parola almadın. Tuzlu bir tabloyu tek bir parola için önceden hesaplamak, saniyede bir şifreleme hızında bir saat sürecek, ayrıca sınırlı bir depolama alanıyla uğraşmak zorunda kalacaksınız (40-80 MB, o günlerde çok fazlaydı).
bir CVn

@PeterCordes İyi nokta. Bu pasajı siliyorum çünkü özellikle OP'nin sorusunu cevaplamakla alakalı değil.
bir CVn

10

Neden / etc / shadow dosyasının izni 600 olarak ayarlanmış?

Bunu sana kim söyledi?

$ls -l /etc/shadow
-rw-r----- 1 root shadow 1407 mei 18 10:05 /etc/shadow
  • 640.

Basit cevap: Linux'taki izinler ciddiye alınır. Başkalarının bir şey yapması için hiçbir sebep yok /etc/shadow. Ve "gölge" grubunun buna yazması için hiçbir sebep yok. Ve yürütme emri dışında.

Ancak, içindeki tüm şifreler açık metin olarak değil, karma olarak saklandığından (bu, orijinal şifreyi karma değerinden hesaplamanın mümkün olmadığı anlamına gelir), neden herkes tarafından okunamayabilir?

Çünkü bunu yapmak için tek bir sebep yok.

Hash'ler tek yönlüdür. Birine okuma erişimi verilmesi, bu tek yönlü kötüye kullanımı için bir komut dosyası kullanmasını mümkün kılar: sadece hayal edebileceğiniz herhangi bir kelimeyi listeleyin ve karma oluşturun. Bir noktada şifre ile eşleşebilir. Yine de biraz zaman alabilir.

Bu cevap ilginç ve kaba zorlama konusunda bazı tahminlerde bulunuyor.


640 normal kullanıcı içindir? grup kullanıcısı gölge dosyasını okuyabilir mi?
Shubhanshu Vishwakarma

Üzgünüm? Dosya 640'dır. Öyleyse oku, "root" kullanıcısına yaz ve "shadow" grubunu oku. "shadow" bu özel amaç için oluşturulmuş ayrıcalıklı bir sistemdir.
Rinzwind

2

Önemli arka plan: /etc/shadowYalnızca şifre karma değerlerini gizli tutmak amacıyla mevcuttur. Siz Unix'in Erken Günlerinde, parola eşlemeleri saklandı /etc/passwd. Bilgisayarlar daha güçlüleştikçe, ağ bağlantıları daha kalıcı ve güvenlik avantajları daha karmaşık hale geldikçe, insanlar şifre karma değerlerini kelimeden okunabilir tutmanın sorun istediğini anladılar. (Suistimalleri detaylandırmayacağım; bununla ilgili yeterince iyi cevaplar var.)

Ancak /etc/passwdokuma korumalı olamaz: Sayısal kullanıcı kimliklerini kullanıcı adlarıyla eşleştirmek ve ev dizinlerini, varsayılan kabuklarını, kullanıcının tam adını (ve ofis numarasını vb. - araştırmak man finger) aramak için kullanılır. . Böylece hassas kısım, şifre karma, taşındı /etc/shadowve geri kalanlar olduğu gibi kaldı. Bu nedenle /etc/passwd, adı despide (karma) şifresi dışındaki her şeyi içerir .


Soruma cevabınız için teşekkürler, şimdi / etc / passwd ve / etc / shadow dosyasının tam bir fikrini aldım.
Shubhanshu Vishwakarma 21:16
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.