Можно использовать Proxychains для этого.
Сначала установите proxychains, с помощью команды:
$ apt-get install proxychains
Затем настройте свои настройки прокси в /etc/proxychains.conf
файл.
Добавьте наконец, эти строки для прокси HTTPS и HTTP.
http proxy-ip proxy-port username password
https proxy-ip proxy-port username password
Теперь можно сделать telnet при помощи следующей команды:
$ proxychains telnet www.google.com 80
В отношении Вашего обновления:
Когда процесс запускается, он имеет специализированную область памяти, где аргументы хранятся и интервал, который говорит, сколько аргументов был передан.
MEMORY
argc 2
argv[0] program_name
argv[1] foo
argv[2] bar
Проверка MySQL, если пароль был передан командной строке -p
, и если это была копия это к новой переменной, которая не видима, затем перезапишите тот регион памяти с x
'es.
Простыми словами, например:
argc 2
argv[1] -p
argv[2] p4ssw0rd
new_var = copy(argv[2]);
argv[2] = "xxxxx";
Можно найти его, например, в client/mysqladmin.cc
из исходного кода:
case 'p':
...
opt_password=my_strdup(argument,MYF(MY_FAE));
while (*argument)
*argument++= 'x'; /* Destroy argument */
Когда ps
работайте это читает регион памяти аргументов, (argv[N]
), и таким образом это xxxx
.
В течение очень короткого времени пароль видим, но только для нескольких циклов ЦП.
Можно обновить пароль MySQL с помощью специального предложения --init-file
опция и процедура. C.5.4.1.2. Изменение Пароля root: Системы Unix
mysqld_safe --init-file=/home/me/mysql-init &
Править:
Как @Gilles говорят, Вы можете echo
, printf
или используйте here
документ из сценария.
Можно также добавить это к .my.cnf
из Вашего корневого каталога или во (временном) файле и использовании --defaults-extra-file
опция. (Полагайте, что необходимо добавить что опция рано на командной строке.) дополнительно также включают пользователя. Также отметьте дополнительное на имя опции, если Вы не хотите использовать только что файл как конфигурация:
[client]
user=foo
password='password!'
shell> chmod 400 my_tmp.cnf
shell> mysql --defaults-extra-file=my_tmp.conf -...
Дополнительно [client]
группировка делает mysqld
пропустите конфигурацию.
Можно также использовать MYSQL_PWD
переменная среды, но это никогда не должно использоваться, поскольку можно перечислить среду во многих ps
реализации ps -e
, в /proc/<PID>/environ
файл на Linux и т.д.
tr '\0' '\n' < /proc/<PID>/environ
Больше по теме здесь.
Вы могли бы также хотеть взглянуть на MySQL Configuration Utility, который позволяет Вам сохранить пароль в зашифрованном файле в Вашем корневом каталоге – .mylogin.cnf
.
Стандартное решение состоит в том, чтобы считать пароль из файла или из стандартного входа (или от другого дескриптора файла, который должен был бы быть передан в качестве параметра).
Некоторые программы (командная строка ftp
например) пароли чтения от /dev/tty
, специальный файл для каждого процесса, который представляет управление процесса TTY. Это позволяет программе не повторить пароль назад на экран и иметь немного больше обеспечения о том, куда пароль прибывает из.
#!/bin/bash
stty -F /dev/tty -echo
read PASSWORD < /dev/tty
echo $PASSWORD
mysql-init
файл с паролем, который хранится в переменной удара? (не будучи показанным) – Dor 09.06.2013, 17:37echo 'password=p4ssw0rd' >>mysql.cnf
безопасно, потому чтоecho
встроенное, таким образом, пароль не появляется на командной строке никакого процесса. Здесь документ также безопасен. – Gilles 'SO- stop being evil' 10.06.2013, 01:32