중복 가능성:
그룹 0에 속한다는 것은 무엇을 의미합니까?
원격 서버를 백업하기 위해 SSH 루트 로그인을 사용하지 않고 싶습니다. 그래서 서버에 루트가 아닌 사용자 계정을 설정하고 이를 루트 그룹 아래에 배치했습니다. 이 계정은 루트 사용자와 동일한 권한을 가질 것이라고 생각했습니다. 그러나 루트로 그룹화되지 않은 파일과 그룹 루트에서 읽기 권한이 없는 파일은 읽을 수 없다는 것을 곧 깨달았습니다. 지금 내 질문은: 그룹 루트에 특별한 목적이 있습니까? 원격 서버(루트 또는 비루트)를 백업하는 일반적인 방법은 무엇입니까?
답변1
"루트" 그룹은 특별한 목적이 아니라 일반적인 목적을 가지고 있습니다. 모든 파일은 사용자 및 그룹이 소유해야 하며 "루트"는 다른 사용자에 속하지 않는 파일이 소유된 기본 그룹입니다. 휠(세미 빈티지) 또는 쓰레기통과 같은 카테고리. (이것은 순전히 사실이 아니지만 경험에 근거한 많은 개인적인 의견입니다.) 백업의 경우 jordanm이 말했듯이 루트 사용자 권한을 사용해야 할 가능성이 높습니다.
답변2
이미 다룬 기사입니다질문의 파트 0.
상습
글쎄, 이것이 최선의 해결책인지는 확실하지 않지만 이것이 내가 한 일이며 의견/개선/제안을 환영합니다.
최근에 클라이언트의 drupal 웹사이트에 대한 원격 백업을 설정했는데 중앙 집중식 백업 서버가 원격 서버에 액세스하여 가져오고 있습니다. 나는 이 원칙을 따랐다.
- 관리자(원격에서)로 사용하고 ssh를 통해 로그인할 수 있지만 비밀번호는 사용하지 않고 공개/개인 키로만 로그인할 수 있는 사용자를 생성했습니다. (보안을 유지하고 관리 위치에 백업해야 합니다).
- SSH를 통해 원격으로 루트 로그인을 비활성화합니다.
- 내 관리자가 sudo를 통해 루트가 되도록 허용합니다.
이 기능을 사용하는 사용자는 바로 저이며, 저는 백업 서버에 앉아있지 않으니 참고하시기 바랍니다. 그래서 아래 백업을 설정하는데 사용했습니다.
이제 원격으로 관리할 수 있으므로 루트는 내 특수 관리자로만 로그인할 수 없으며 키 인증서를 통해서만 로그인할 수 있습니다.
원격 및 로컬에서 백업 사용자(백업을 수행할 사용자)를 생성했는데 사용자 이름이 동일하지 않습니다. 원격에서 그녀에게 약간 특이한 이름을 지정했기 때문에 키를 얻더라도 괜찮을 것입니다. 원격 사용자 이름을 추측하세요. 사용자에게는 권한이 없으며 원격 디렉토리에 액세스할 수 없습니다(또는 비밀번호 없이 데이터베이스를 덤프할 수 없습니다).
이 사용자가 원격에서 /etc/sudoers myobscurebackupuser ALL=NOPASSWD: /usr/bin/rsync에서 명령을 실행하도록 허용합니다.
중앙 백업 서버의 사용자(역시 권한 없음) 아래에 실행하려는 공개/개인 키와 백업 스크립트를 저장합니다. 이 사용자만이 읽기를 위해 스크립트/키에 액세스할 수 있습니다(루트와는 완전히 다름).
내 백업은 2단계입니다
1단계_
'ssh -i /path/to/key/file obscureuser@remote mysqldump [options] | gzip' | gunzip > local_dbdump.sql
첫 번째 절반은 원격으로(최대 gzip) 실행되고 두 번째 절반은 로컬로 실행된다는 점에 유의하세요.2단계 rsync 원격 디렉터리 구조
비밀번호와 데이터베이스 덤프는 원격으로 저장되지 않으며 SSH 연결을 통해 전달됩니다. db_dump는 gzip으로 직접 파이프하고 stdout을 통해 다시 보냅니다. 나는 그것을 gunzip을 통해 파이프하고 stdout을 로컬 데이터베이스 덤프 파일로 직접 출력했습니다.
답변3
일반적으로 루트로 작업해야 할 경우 다음과 같은 ssh 명령을 실행합니다.
# ssh [email protected] "hostname ; sudo -S some_backup_script.sh"
sudo 활동을 기록하고 sudo 권한을 사용하여 로그인한 "sudo" 사용자가 수행할 수 있는 작업을 엄격하게 제한할 수 있습니다. 이러한 작업을 자동화하고 시스템의 특정 사용자를 위해 이러한 특정 기능을 구현하는 것이 좋습니다. 즉, 백업 사용자는 tar 및 gzip을 사용할 수 있고 /tmp 디렉토리에 쓸 수 있지만 cat, vim 등에 대한 액세스는 거부됩니다(기본적으로 민감한 데이터를 인쇄할 수 있는 명령).