루트 계정을 활성화하려면 어떻게합니까? 일반적으로 권장되지는 않지만 rsync를 사용하여 서버를 백업하기 위해 비 대화식 스크립트를 설정하고 싶습니다. 사용할 수는 --rsync-path="sudo rsync"
있지만 루트 계정을 사용하는 것보다 훨씬 나쁘게 보이는 sudo 비밀번호를 명확하게 저장해야합니다.
루트 계정을 활성화하려면 어떻게합니까? 일반적으로 권장되지는 않지만 rsync를 사용하여 서버를 백업하기 위해 비 대화식 스크립트를 설정하고 싶습니다. 사용할 수는 --rsync-path="sudo rsync"
있지만 루트 계정을 사용하는 것보다 훨씬 나쁘게 보이는 sudo 비밀번호를 명확하게 저장해야합니다.
답변:
mybackup
클라이언트와 서버에서 별도의 새 사용자 계정을 만듭니다.sudo passwd -l mybackup
직접 로그인을 방지하기 위해 이러한 계정으로 비밀번호를 잠그십시오sudo
, 그 새 계정은 매우 구체적인 실행 /usr/bin/rsync/ --some-long-command /from/here /to/there
하여 루트로 명령 NOPASSWD:
에 /etc/sudoers
사용sudo visudo
sudo -u mybackup ssh-keygen
sudo -u crontab -e
한쪽 또는 다른 쪽 끝에 추가 하여 키를 전송 장치로 rsync
사용 하여 리모컨을 실행하십시오.ssh
이 방법 으로 루트로 실행할 수 있는 유일한 명령 은 명시 적으로 허용 된 명령이며,이를 활성화 할 수있는 유일한 원격 사용자는 설치된 ssh 키 쌍의 나머지 절반의 소유자입니다. 암호도 잠겨 있기 때문입니다. sudo 액세스 권한이 있거나 자신이 설정 한 crontab을 가진 사람 만 가능합니다.
sudo rsync
가 rsync에 전달 된 옵션을 선택할 수있게하면 rsync를 사용하여 /etc/sudoers
파일 을 읽고 쓸 수 있으며 전체 sudo 액세스 권한을 부여 할 수 있습니다.
/etc/sudoers
명령을 실행하는 모든 사용자 (또는 모든 사용자)가 root
비밀번호없이 실행하도록 허용 할 수 있습니다 ( rsync에 약간 위험 할 수 있음).
전체 명령 / 스크립트 / 무엇이든 실행할 수 없습니까 root
? 나는 이것이 cron을 통해 실행될 것이라고 가정하므로 다음을 통해 root
작업을 추가하십시오 .
sudo crontab -e
참고 : cron 명령을 bash -e "..."
중괄호로 묶거나 별도의 스크립트로 수행하면 상당히 복잡한 작업을 수행 할 수 있습니다 . 설정되지 않았다고 가정하고 root
(를 통해 cron
) 실행하면 root
권한 문제를 해결할 수 있도록 실행됩니다 .
sudo
일반 사용자 가 스크립트를 실행할 수 있습니다. 그냥 허용하는 것보다 안전 rsync
합니다.
루트 사용자에게
sudo passwd root
편집 : Setuid 비트가 스크립트에서 작동하지 않습니다. 그렇지 않으면 백업 프로그램에서 setuid 비트를 사용할 수 있습니다.
sudo chown root backup
sudo chmod u+s backup
아마도 cron 작업으로 백업을 실행하고 싶습니까?
sudo whoami
반환, 루트) 그래서 그냥 sudo passwd
필요합니다.