그래서 저는 워드프레스 백업 가이드를 설정/백업 계획을 스스로 만들고 있습니다.
매일 MySQL 덤프를 수행하고 싶지만 명령에는 다음이 필요합니다.
-p then user input
또는
--password="plain text password"
보안 강화를 위해 MD5 이상으로 해시되고 보호되는 파일에 이를 전달할 수 있지만 명령에 사용자 입력이 필요하지 않게 할 수 있습니까?
도움을 주시면 감사하겠습니다!
참고로 제가 실행하고 싶은 명령어는 다음과 같습니다
mysqldump -u [username] --password=~/wp_backups/sqldumps/.sqlpwd [database name] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
답변1
다음과 같은 비밀번호 옵션이 있습니다.
-p
옵션을 통해 명령줄에 비밀번호 제공MYSQL_PWD
환경 변수를 통해 비밀번호 제공~/.my.cnf
섹션[mysqldump]
아래의 파일에 구성을 넣으십시오.
모든 경우에 클라이언트는 인증을 위해 일반 텍스트 비밀번호가 필요합니다. 해싱에 대해 말씀하셨는데, 해싱의 특성은 단방향 변환 기능(즉, 해시에서 원래 비밀번호를 복구할 수 없음)이므로 인증 토큰으로 사용할 수 없습니다.
WordPress를 호스팅하는 동일한 계정에서 WordPress 데이터베이스를 백업하는 것으로 알려져 있으므로 WordPress를 실행하는 사용자에게 비밀번호를 숨기려고 해도 보안이 향상되지 않습니다( wp-config.php
어쨌든 데이터베이스 자격 증명은 파일에서 쉽게 추출할 수 있습니다).
따라서 다음을 정의하는 것이 좋습니다 ~/.my.cnf
.
[mysqldump]
host = your_MySQL_server_name_or_IP
port = 3306
user = database_user_name
password = database_password
그런 다음 파일에 0600 권한이 있는지 확인하십시오. 이 접근 방식 mysqldump
에서는 명령줄에서 데이터베이스 자격 증명을 지정할 필요가 없습니다(파일에서 읽음) ~/.my.cnf
.
답변2
그러면 파일에서 비밀번호와 사용자 이름을 전달하는 파일(운영 체제의 모든 파일일 수 있음)이 생성됩니다. "해시"된 경우에도 누군가가 파일을 보유하면 아무런 영향을 미치지 않으며 그대로 사용할 수 있습니다. 나에게 효과가 있다면 그들에게도 효과가 있습니다.
따라서 내 질문의 보안 부분에 대답하기 위해 chmod 0600 & sudo chown $USER:nogroup 은 생성 후 파일에 대한 무단 액세스를 방지합니다.
mkdir ~/wp_backups/sqldumps && touch ~/wp_backups/.sqlpwd && nano ~/wp_backups/.sqlpwd && chmod 600 ~/wp_backups/.sqlpwd && sudo chown $USER:nogroup ~/wp_backups/.sqlpwd
--.sqlpwd 내용
[mysqldump] # NEEDED FOR DUMP
user=username
password=password
[mysql] # NEEDED FOR RESTORE
user=username
password=password
--SQL CLI 구문
mysqldump --defaults-extra-file=~/wp_backups/.sqlpwd [database] > ~/wp_backups/sqldumps/"$(date '+%F').sql"
답변3
당신은 볼 수 있습니다mysqldump-보안mysqldump
이는 (를 통해) 비밀번호 보안을 관리하는 래퍼 스크립트 역할을 하며 defaults-extra-file
비대칭 암호화를 통해 mysql 데이터베이스를 암호화할 수도 있습니다.