şifre ve güvenlik


11

Bazen yaparım echo "secret" | mysql -u root -p .... Şimdi burada güvenlik konusunda konser veriyorum: tüm işlemleri listeleyen biri şifreyi görebilir mi?

Kontrol etmek için denedim echo "test" | sleep 1000ve sır ile echo komutu "ps aux" çıkışında görünür değildi . Bu yüzden güvenli olduğunu düşünüyorum - ancak bir güvenlik uzmanı bunu onaylayabilir mi? :)


Sonsuz bir döngü çalıştırırken bunu işlem listesinde göremiyorum. İyi soru.
Tim

1
Buna ek olarak, çoğu mermiye yazdıklarınız bir yerde bir dosyada (gibi .history) saklanacağını unutmayın .
Alexander Bird

Yanıtlar:


13

Bunun cevabı hangi kabuğu kullandığınıza bağlıdır. Birçok kabukları var echobir şekilde yerleşik o listeleyen bir süreçte görünmez dolayısıyla ayrı bir işlem spawn ve yok anlamına gelir komutu. Ancak, yerleşikleri komutla yazarsanız /bin/echoveya ./echoveya devre dışı bırakırsanız enable -n echo, kabuk yerleşik komutunu kullanmayacak ve bunun yerine ikili sürümü kullanacaktır. Bu bir süreç listesinde görünecektir.

Kabuk yerleşkesi yerine binary kullanıyorsanız, echo komutu, verileri diğer işlemin STDIN arabelleğine taşımak için gereken süre boyunca görünecektir. Bu arabellek sonlu bir boyuta sahiptir, bu nedenle ara belleğe sığacakdan daha fazla veri varsa, echo komutu diğer işlem arabellekten bazı verileri okuyana kadar bir süre takılmak zorunda kalacaktır. Çoğu durumda (yukarıda verdiğiniz iki örnek gibi) bu süre mikrosaniye olacaktır. 20MB SQL dökümünü echo kullanarak MySQL'e yapıştırıyorsanız, bu daha uzun olabilir. Zaman ne kadar kısa olursa olsun, kabuk yerleşimi yerine ikili dosyayı kullanırsanız ve birileri zamanlamayı doğru yaparsa, süreci süreç listesinde görebilirler.

Gizli verileri bir dosyaya (uygun izinlerle) koyarak ve dosyayı şu şekilde STDIN olarak kullanarak bunu önleyebilirsiniz:

mysql -u root -p < file_with_secret.sql

5
Komut satırına parolayı yazarak büyük olasılıkla kabuğunuzun geçmiş dosyasına kaydedildiğini unutmayın, bu nedenle geçmiş dosyası iznini ve içeriğini kontrol etmeye değer.
aculich

3

MySQL için ~ / .my.cnf sırları saklamak için kullanılabilir, yani

[client]
user = DBUSERNAME
password = DBPASSWORD
host = DBSERVER

[mysql]
database = DBNAME

1

Sadece kullan

mysql -uroot -p

ve enter tuşuna basın. Ardından sizden parola istenir ve işlem listesinde veya geçmiş dosyalarında görünmez.


STDIN'de MySQL tarafından kabul edilen veriler, giriş yaptıktan sonra çalıştırılacak komuttur. Sorudaki "gizli" şifre değildir.
Ladadadada
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.