루트가 아닌 사용자로 unison

루트가 아닌 사용자로 unison

두 EL6 상자 사이의 /home 디렉토리를 동기화하기 위해 unison을 사용하고 싶습니다.

대부분의 글에서는 unison이 루트로 실행되고 두 상자 사이를 루트로 ssh할 수 있다고 가정합니다. 그러나 /etc/passwd와 /etc/login.block 모두에서 루트 로그인을 비활성화했습니다. sshd_config에서는 루트로 SSH를 통한 연결이 비활성화되어 있습니다.

루트 로그인을 요구하지 않고 /home과 같은 것을 동기화하는 일반적이고 확립된 방법이 있습니까?

내가 가진 생각 중 하나는

  1. 두 상자 모두에 uid:gid unison:unison을 설정합니다.
  2. uid unison에 대한 SSH 키 쌍을 구성하십시오.
  3. 원격에서 unison만 실행할 수 있도록 unison/.ssh/authorized_keys를 설정하십시오.
  4. /home setfacl -R -md:g:unison:rwx,g:unison:rwx /home에서 ACL 설정
  5. uid 'unison'으로 실행되도록 cronjob을 설정합니다.

하지만 더 좋고, 더 일반적으로 받아들여지는 방법이 있기를 바랍니다.

감사해요!

답변1

무엇나는 보통한다역할 계정을 만드는 것입니다.

  1. 역할 계정을 만듭니다(실제로는 다른 사용자이지만 이를 위해 예약된 uid 공간이 있습니다).unison
  2. ~unison/.ssh/authorized/keys`force-command="/usr/local/bin/unison-homesync.sh"와 같은 제한 패턴과 함께 사용하세요 .
  3. 쓰다/usr/local/bin/unison-homesync.sh
  4. 필요한 권한 있는 작업에는 sudo를 사용하세요.

장점:

  • 루트로 로그인할 필요는 없습니다.
  • sudo를 사용하면 권한 있는 작업을 쉽게 사용할 수 있습니다.
  • 래퍼 스크립트를 작성하면 통제된 환경에 쉽게 들어갈 수 있습니다.

단점:

이 접근 방식은 수동으로 수행할 경우 확장이 잘 되지 않습니다. 일부 구성 관리가 이루어지면 문제가 되지 않습니다.

관련 정보