루트 파일을 포함하여 시스템의 모든 파일에 대한 읽기 액세스 권한을 갖도록 계정을 구성하려면 어떻게 해야 합니까?

루트 파일을 포함하여 시스템의 모든 파일에 대한 읽기 액세스 권한을 갖도록 계정을 구성하려면 어떻게 해야 합니까?

에 속한 파일을 포함하여 시스템의 모든 파일을 수정하지 않고 백업 시스템에 읽고 복사할 수 있는 일종의 "백업 운영자" 계정을 만들어야 합니다 root.

root계정이 이 작업을 수행할 수 있는 유일한 계정인 것처럼 보이지만 root해당 계정이 원하는 작업을 실행하는 것을 막지는 않습니다. 제가 생각할 수 있는 또 다른 옵션은 읽기 권한이 있는 그룹에 계정을 배치하고 해당 계정을 모든 사용자 그룹의 구성원으로 만드는 것입니다. Linux에서는 rwx이를 위해 기본 권한이 생성되지 않는 것 같습니다.

Linux에는 ACL이 제공할 수 있는 것과 같이 이 목적을 위한 보다 정교한 기능이 있습니까?

이 권한은 원격 백업 서버에서 로그인하여 모든 파일을 원격 서버에 백업하는 사용자에게 제공됩니다. 백업 서버가 손상되면 해당 계정은 백업 중인 서버에 로그인할 수 없어 일부 피해가 발생할 수 있습니다. 백업 서버의 계정도 백업 서버에 로그인할 수 없어야 하며, 백업 서버가 손상되면 일부 피해가 발생해야 합니다.

답변1

일반적으로 사람들은 백업 유틸리티를 루트로 실행 cron하거나 SSH 키에 대한 무차별 대입 명령을 통해 실행하고 유틸리티가 위험한 작업을 수행하지 않을 것이라고 믿습니다.

ACL을 사용하여 권한 부여모두시스템의 파일은 각 파일에 대해 개별적으로 ACL을 설정해야 하기 때문에 약간 어색할 수 있습니다(POSIX ACL에는 실제로 하위 트리 액세스 권한을 부여하는 개념이 없으므로 기본 ACL이 자동으로 새 파일에 복사됩니다). ). 이러한 파일의 소유자는 실수로 또는 의도적으로 이러한 권한을 제거할 수 있습니다. 보안에 민감한 프로그램(예: SSH 또는 GPG)도 다른 사람이 귀하의 파일을 읽고 있다는 사실을 알게 되면 약간 화를 낼 수 있습니다. (이 작업을 수행하기 위해 ACL을 알 필요조차 없습니다. 기존 권한 비트가 ACL에서 부여한 권한을 마스크하므로 ACL에서 부여한 모든 액세스는 기존 권한 비트에서 명백하게 드러납니다.)

그러나 아직 방법이 있습니다. 리눅스능력시스템에는 특히 이러한 목적을 위한 기능이 포함되어 있습니다.

CAP_DAC_READ_SEARCH

  • 파일 읽기 권한 확인과 디렉터리 읽기 및 실행 권한 확인을 우회합니다.
  • 옮기다 open_by_handle_at(2);
  • linkat(2) AT_EMPTY_PATH파일 설명자가 참조하는 파일에 대한 링크를 생성하려면 이 플래그를 사용하십시오 .

(마지막 내용이 다른 내용과 무슨 관련이 있는지는 잘 모르겠지만 무시하겠습니다...)

해당 기능을 원하는 특정 유틸리티가 있는 경우 다음을 제공할 수 있습니다 setcap.

# setcap "CAP_DAC_READ_SEARCH+ep" /path/to/backupcmd

/path/to/backupcmd하지만 이제 이 기능은 바이너리를 실행할 수 있는 모든 사람이 사용할 수 있습니다. 따라서 임의의 사용자가 해당 특정 파일에 액세스하지 못하도록 보호할 수 있습니다. 예를 들어, 이를 실행할 수 있어야 하는 사용자 그룹인 권한 root:backup이 있는 이 소유하도록 합니다 .rwx--x---backup

# chown root:backup /path/to/backupcmd
# chmod 710 /path/to/backupcmd

답변2

당신은 sudo를 찾고 있습니다

sudo는 사용자가 다른 사용자의 보안 권한으로 프로그램을 실행할 수 있도록 하는 Unix 계열 컴퓨터 운영 체제의 프로그램입니다.

관련 정보