Yanıtlar:
TL; DR: Hayır, şifre (genelde) kurtarılamayan karmalar olarak kaydedilir.
Linux, düz metin şifrelerini varsayılan olarak hiçbir yerde saklamaz . Bunlar çeşitli algoritmalar yoluyla şifrelenir veya şifrelenir. Yani, genel olarak, hayır, bu saklanan verilerle mümkün değildir.
/etc/passwd
Veritabanından başka bir yerde saklanmış şifreleriniz varsa , buna izin verecek şekilde saklanabilirler. htpasswd
dosyalar zayıf şifreli şifreler içerebilir ve diğer uygulamalar çeşitli (genellikle kötü) nedenlerden dolayı daha zayıf karmaları veya düz metin şifrelerini saklayabilir.
Ayrıca, kullanıcı konfigürasyon dosyaları çeşitli nedenlerden dolayı şifrelenmemiş şifreler veya zayıf korumalı şifreler içerebilir - başka bir hizmetten içerik yakalama fetchmail .netrc
veya basit otomatik şeyler şifreyi içerebilir.
Parolalar daha eski, zayıf bir algoritma (3DES, MD5) ile şifrelenmiş veya şifrelenmişse, yalnızca dönüşümü tersine çevirmek yerine verilere saldırmakla birlikte, parolanın ne olduğunu etkili bir şekilde / ucuza hesaplamak mümkün olacaktır. (örneğin: http://project-rainbowcrack.com/ veya http://www.openwall.com/john/ gibi şeyler )
Kök olduğunuz için kullanıcı şifresine başka bir seviyede saldırmak da mümkündür - giriş ikili dosyasını veya sudo veya PAM'in bir kısmını vb. Girildiğinde şifreyi alacak bir şeyle değiştirin.
Yani, spesifik olarak, hayır, fakat genel olarak kök erişimine sahip olmak, kullanıcıların çeşitli yan kanallardan detaylara ulaşmasını kolaylaştırır.
Buradaki diğer cevapların aksine, basit cevabın, buna ve “kökün varsa” ile biten diğer birçok sorunun EVET olduğunu söyleyebilirim.
Temel olarak, kök makinede sistemin kendisinin yapabileceği her şeyi yapabilir. Sistem şifrenizi kabul edebilir, böylece root şifrenizi veya sizin yerine kendi şifrenizi kabul edebilir. Daha da önemlisi, sadece şifrenizi değiştirebilir ya da sizi OLABİLİR.
Özellikle, şifreler genellikle şifrelenir. Bu, genellikle şifreyi kontrol etmek için kullanılabilecek bir sayı (karma) oluşturan, ancak genellikle sayıyı ters çevirip şifreyi tekrar geri almak için kullanılabilecek bir tür "tek yönlü" algoritmadır. Yani, sadece birinin şifresini almak için bir dosyayı okumaktan ibaret değil.
Bununla birlikte, kabuk tarihçelerini ve kullanıcı adı yerine şifrelerini bir noktada yazdıkları veya şifre isteminde şifre yerine bir kabuk yazdıkları giriş tarihlerini okuyabiliyorsunuz. Bu durumda, düz metin olacaktır. Bu, metin tabanlı terminallerde rahatsız edici derecede yaygın, bildiğim kadar iyi bir çözüm bulunmuyor.
Bununla birlikte, bu sorunu bir kenara bırakmak bile, "tek yönlü" şifreleme gerçekten bir yol değildir. Çevrenizde pek çok parola birleşiminden geçecek ve bunları aynı tek yönlü işlemle şifreleyen, eşleşene kadar bulan birçok araç var. Daha sonra erişecek şifreyi biliyorlar (root olarak, THAT makinesinde zaten erişimi var).
Daha da kötüsü, yukarıdaki prosese önceden hesaplanmış cevapları olan gökkuşağı tabloları var: insanlar verilen şifreli şifreden gelen orijinal şifreyi çoktan üretti. Bunları kullanarak, basit bir arama - zaman alan bir çatlama girişimi gerekmez.
Yine, kök düzeyinde erişim korunacak şeydir. Bu taviz verdiğinde, makinenin tamamı ve üzerindeki her şey tehlikeye girer. Tüm kullanıcılarınıza, gizliliklerini korumak için işinizin artık güvenemeyeceğini bildirmek de dahil olmak üzere yeniden başlama zamanı. Ve, evet, bu işten çıkmak anlamına gelebilir.
Eğer varsa, root
karşı bir şifre kırıcı çalıştırabilirsiniz /etc/shadow
(LDAP veya Kerberos vb. Değil, yerel şifreler varsayarak). Bu, iyi şifreler seçerse ve sistem güçlü bir şifre karma sistemi kullanacak şekilde yapılandırılmışsa etkili olmayabilir. Ancak sistem parolaları düz metin içinde saklanmaz; şifreleri bile doğrudan kullanılamaz root
.
Tüm şifreler /etc/shadow
dosyada saklanır . Bu dosyayı root erişimi kullanarak açabilir ve hash value
her bir kullanıcı için (hatta root kullanıcısı) bu parolaların tümünü görebilirsiniz .
Herhangi bir parola şifre çözme yazılımınız yoksa, bu karma değeri normal metne geri döndüremezsiniz.
Ancak, root kullanıcısına erişiminiz varsa, aşağıdaki komutu kullanarak normal kullanıcı şifresini değiştirebilir ve hesaplarına erişebilirsiniz.
root@localhost$ passwd pradeep
Bu sizden kullanıcı için ayarlamak istediğiniz yeni şifrenizi isteyecektir pradeep
. Bu şekilde pradeep için şifre değiştirebilirsin.
Artık hesabından şu adresten erişebilirsiniz:
root@localhost$ su pradeep
Bu pradeep kullanıcısına geçerek sonuçlanacak ve şöyle bir terminal alacaksınız:
pradeep@localhost$