Güncellemenizle ilgili olarak:
Bir işlem başlatıldığında, bağımsız değişkenlerin depolandığı özel bir bellek alanına ve kaç bağımsız değişkenin geçtiğini bildiren bir int'e sahiptir.
MEMORY
argc 2
argv[0] program_name
argv[1] foo
argv[2] bar
MySQL, parolanın komut satırında geçirilip geçirilmediğini kontrol eder -p
ve görünmeyen yeni bir değişkene kopyalanmışsa, o bellek bölgesinin üzerine x
'es ile yazın.
Basit bir ifadeyle, örneğin:
argc 2
argv[1] -p
argv[2] p4ssw0rd
new_var = copy(argv[2]);
argv[2] = "xxxxx";
Örneğin client/mysqladmin.cc
kaynak kodunda bulabilirsiniz:
case 'p':
...
opt_password=my_strdup(argument,MYF(MY_FAE));
while (*argument)
*argument++= 'x'; /* Destroy argument */
Zaman ps
çalıştırmak bu argümanlar bellek bölgesini, (okur argv[N]
) ve bu yüzden o xxxx
.
Parola görünürken çok kısa bir süre için, ancak yalnızca birkaç CPU döngüsü için.
Özel --init-file
seçeneği ve prosedürü kullanarak MySQL şifresini güncelleyebilirsiniz . C.5.4.1.2. Kök Parolasını Sıfırlama: Unix Systems
mysqld_safe --init-file=/home/me/mysql-init &
Düzenle:
As @Gilles demek yapabilirsiniz echo
,printf
veya kullanım here
bir komut dosyasından belge.
Bunu .my.cnf
ana dizininize veya ( geçici ) bir dosyaya da ekleyebilir ve --defaults-extra-file
seçeneği kullanabilirsiniz . (Bu seçeneği komut satırına erken eklemeniz gerektiğine inanabilirsiniz.) İsteğe bağlı olarak kullanıcı da içerir. Ayrıca, yalnızca bu dosyayı yapılandırma olarak kullanmak istemiyorsanız, seçenek adındaki fazladan notu da unutmayın :
[client]
user=foo
password='password!'
shell> chmod 400 my_tmp.cnf
shell> mysql --defaults-extra-file=my_tmp.conf -...
İsteğe bağlı olarak [client]
gruplama mysqld
yapılandırmayı atlar.
MYSQL_PWD
Ortam değişkeni de kullanılabilir , ancak bu, ortamı, birçok uygulamada , Linux'taki dosyada vb. Listeleyebileceğiniz için asla kullanılmamalıdır .ps
ps -e
/proc/<PID>/environ
tr '\0' '\n' < /proc/<PID>/environ
Konu hakkında daha fazla bilgi burada .
Ayrıca , ana dizininizdeki şifreli bir dosyada parola depolamanızı sağlayan MySQL Yapılandırma Yardımcı Programı'na da göz atmak isteyebilirsiniz - .mylogin.cnf
.