Зашифрованный пароль против использования `cat` для извлечения из файла
Я использую Zentyal (ранее EBox) в качестве домашнего шлюза / сервера, чтобы оценить его для возможного использования в локальной организации. Я хотел изменить корневой пароль MySQL, что я и сделал, и по ошибке изменил пароль в Zentyal /var/lib/zentyal/conf
папка, чтобы соответствовать ему. Поэтому я изменил пароль Zentyal обратно на тот, который был, но проблема в том, что когда я редактировал этот файл, используя nano
он должен был добавить символ новой строки или что-то, потому что теперь скрипт Perl, который получает пароль (который использует cat
чтобы получить его из файла) вызывает ошибку отказа в доступе MySQL. Тем не менее, когда я жестко кодирую пароль в функции Perl db connect, он работает как шарм.
я пробовал nano -L
отредактировать файл, а также echo >
вывести пароль в файл, и не повезло ни с одним. Что является причиной проблемы, когда скрипт Perl выполняет cat
получить пароль?
1 ответ
Почему вы не используете собственные возможности ввода / вывода perl для чтения файла?
open FH, "/path/to/password.txt";
chomp(my $passwd = <FH>);
chomp
здесь откажитесь от новой строки в конце строки.
В чем причина проблемы, когда скрипт Perl заставляет кошку получить пароль?
Вы пытались просто распечатать пароль, который вы прочитали из файла? Что-то вроде:
print ":", $passwd, ":\n";
Здесь есть двоеточия, так что вы можете обнаружить любые посторонние пробелы (переводы строк и т. Д.). Вы также можете использовать xxd
(что у вас будет, если vim
установлен в вашей системе) или od -a
просмотреть все байты в файле. Например, дан файл, который содержитsecret\n
", od -a
покажет:
$ od -a file
0000000 s e c r e t nl
0000007
Я попытался nano -L, чтобы отредактировать файл, а также echo>, чтобы добавить пароль к файлу,
Я не знаю nano
, но echo
добавит новую строку в конец своего вывода. Если вы не хотите этого:
echo -n password > file
-n
подавляет завершающий перевод строки.