rsync에 루트 계정을 활성화해야합니까?


10

루트 계정을 활성화하려면 어떻게합니까? 일반적으로 권장되지는 않지만 rsync를 사용하여 서버를 백업하기 위해 비 대화식 스크립트를 설정하고 싶습니다. 사용할 수는 --rsync-path="sudo rsync"있지만 루트 계정을 사용하는 것보다 훨씬 나쁘게 보이는 sudo 비밀번호를 명확하게 저장해야합니다.

답변:


10
  1. mybackup클라이언트와 서버에서 별도의 새 사용자 계정을 만듭니다.
  2. sudo passwd -l mybackup직접 로그인을 방지하기 위해 이러한 계정으로 비밀번호를 잠그십시오
  3. 를 통해 허용 sudo, 그 새 계정은 매우 구체적인 실행 /usr/bin/rsync/ --some-long-command /from/here /to/there하여 루트로 명령 NOPASSWD:/etc/sudoers사용sudo visudo
  4. 다음을 사용하여 원격 호스트에 대한 로컬의 새 비밀번호없는 SSH 키를 작성하십시오. sudo -u mybackup ssh-keygen
  5. sudo -u crontab -e한쪽 또는 다른 쪽 끝에 추가 하여 키를 전송 장치로 rsync사용 하여 리모컨을 실행하십시오.ssh

이 방법 으로 루트로 실행할 있는 유일한 명령 은 명시 적으로 허용 된 명령이며,이를 활성화 할 수있는 유일한 원격 사용자는 설치된 ssh 키 쌍의 나머지 절반의 소유자입니다. 암호도 잠겨 있기 때문입니다. sudo 액세스 권한이 있거나 자신이 설정 한 crontab을 가진 사람 만 가능합니다.


그것이 sudoers에서 매우 구체적인 명령을 허용한다고 생각하지 않은 것입니다 ( 'rsync'를 허용했습니다). 좋은 제안!
Olivier Lalonde

2
"매우 특정한 ... 명령"에 주목하여 +1. 그렇지 않으면, 사용자에게 실행할 권한을 부여하고 사용자 sudo rsync가 rsync에 전달 된 옵션을 선택할 수있게하면 rsync를 사용하여 /etc/sudoers파일 을 읽고 쓸 수 있으며 전체 sudo 액세스 권한을 부여 할 수 있습니다.
Suzanne Dupéron 2016 년

7
  1. /etc/sudoers명령을 실행하는 모든 사용자 (또는 모든 사용자)가 root비밀번호없이 실행하도록 허용 할 수 있습니다 ( rsync에 약간 위험 할 수 있음).

  2. 전체 명령 / 스크립트 / 무엇이든 실행할 수 없습니까 root? 나는 이것이 cron을 통해 실행될 것이라고 가정하므로 다음을 통해 root작업을 추가하십시오 .

    sudo crontab -e
    

    참고 : cron 명령을 bash -e "..."중괄호로 묶거나 별도의 스크립트로 수행하면 상당히 복잡한 작업을 수행 할 수 있습니다 . 설정되지 않았다고 가정하고 root(를 통해 cron) 실행하면 root권한 문제를 해결할 수 있도록 실행됩니다 .


문제는 로컬 컴퓨터에서 스크립트를 설정하고 루트로 실행하면 서버에 대한 권한 문제가 있다는 것입니다. 서버에서 스크립트를 설정하고 루트로 실행하면 로컬 컴퓨터보다 권한 문제가있는 것입니다. 즉, 로컬 및 서버 시스템 모두에 대한 루트 권한이 필요합니다.
Olivier Lalonde

각 끝에 스크립트를 작성하고 sudo일반 사용자 가 스크립트를 실행할 수 있습니다. 그냥 허용하는 것보다 안전 rsync합니다.
Oli

Sudo는 좋은 생각입니다. 어떤 사용자가 어떤 명령을 실행할 수 있는지 정확하게 지정할 수 있습니다. 해.
Frank

6

루트 사용자에게

sudo passwd root

편집 : Setuid 비트가 스크립트에서 작동하지 않습니다. 그렇지 않으면 백업 프로그램에서 setuid 비트를 사용할 수 있습니다.

sudo chown root backup
sudo chmod u+s backup

아마도 cron 작업으로 백업을 실행하고 싶습니까?


1
sudo가 root의 env로 실행되므로 사용자 root 이므로 "root"를 지정할 필요가 없습니다 . ( sudo whoami반환, 루트) 그래서 그냥 sudo passwd필요합니다.
Marco Ceppi

setuid는 스크립트에서 작동하지 않습니다
enzotib

스크립트는 she-bang 줄에 이름이 지정된 쉘에 의해 실행됩니다. 잘못된 정보로 죄송합니다.
Frank
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.