crontab을 통한 MySQLdump - 일반 텍스트 비밀번호를 사용하지 않고 crontab을 통해 사용할 수 있도록 --password=/hashed/password/file을 전달합니다.

crontab을 통한 MySQLdump - 일반 텍스트 비밀번호를 사용하지 않고 crontab을 통해 사용할 수 있도록 --password=/hashed/password/file을 전달합니다.

그래서 저는 워드프레스 백업 가이드를 설정/백업 계획을 스스로 만들고 있습니다.

매일 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 데이터베이스를 암호화할 수도 있습니다.

관련 정보