권한 문제 - 루트 소유권으로 복사된 파일에 대한 액세스 권한 부여

권한 문제 - 루트 소유권으로 복사된 파일에 대한 액세스 권한 부여

루트에 속한 파일이 여러 개 있고 다른 사용자를 사용하여 해당 파일을 백업하고 싶습니다. 나는 이 사용자에게 모든 루트 디렉터리에 대한 액세스 권한을 부여하고 싶지 않고 특정 디렉터리와 파일에만 액세스 권한을 부여하고 싶습니다.

예를 들어 /etc/httpd/conf/httpd.conf, /etc/httpd/conf.d/ssl.conf잠깐만요.

파일의 소유권을 유지하면서 특정 사용자에게 루트 액세스 권한을 부여하지 않고 이 작업을 수행하려면 어떻게 해야 합니까?

특정 파일을 추가하려고 시도했지만 /etc/sudoers.d/user_sudoers성공하지 못했습니다.

user  ALL=(ALL)       NOPASSWD:       /etc/httpd/conf/httpd.conf

쉘 스크립트에서 일일 백업을 생성하려면 다음을 호출합니다.

cp -rp /etc/httpd/conf/httpd.conf /archive/DailyExport/today/httpd/ >> /archive/logs/DRLog.txt 2>&1

하지만 난 계속...

cp: cannot stat '/etc/httpd/conf/httpd.conf': Permission denied

sudo스크립트에 복사문을 추가 하면 ...

sudo cp -rp /etc/httpd/conf/httpd.conf /archive/DailyExport/today/httpd/ >> /archive/logs/DRLog.txt 2>&1

sudo를 호출하기 위해 사용자에게 비밀번호를 묻는 메시지가 표시됩니다. cron에서 실행하려고 하므로 대화형이 작동하지 않습니다.

답변1

sudoers파일을 지정하는 데 사용됩니다.주문하다사용자는 루트(또는 다른 사용자)로 실행할 수 있습니다 sudo. 파일 권한과는 아무런 관련이 없습니다.

사용자에게 파일에 대한 액세스 권한을 부여하려면 표준 Unix/Linux 권한 시스템을 사용할 수 있습니다.

대부분의 시스템의 구성 파일은 일반적으로 기본적으로 모든 사용자가 읽을 수 있으므로 /etc/httpd/conf/httpd.conf해를 끼치지 않습니다. 어떻게든 이러한 권한을 제한했을 것입니다. 모든 사용자가 파일을 다시 읽을 수 있도록 간단히 설정할 수 있습니다.

chmod a+r /etc/httpd/conf/httpd.conf

또한 모든 디렉터리 /etc/httpd/conf(즉, 디렉터리 자체 /etc/httpd/etc접근성(즉, x해당 사용자의 권한을 가지고 있어야 합니다.) 일반적으로 기본적으로 모든 사용자에 대해 이러한 권한이 있지만 제한하는 경우 권한을 다시 설정해야 합니다. 예를 들면 다음과 같습니다.

chmod a+rx /etc /etc/httpd /etc/httpd/conf

(디렉토리에 대한 읽기 권한이 있어야 내용에 액세스할 수 있는 것은 아니지만목록백업 소프트웨어에 필요할 수 있는 것 - 둘 다 할당하는 것이 가장 좋습니다.

모든 사용자에게 읽기 액세스 권한을 부여하고 싶지 않은 경우(하지만 이유를 모르겠습니다) 해당 사용자에게만 읽기 액세스 권한을 부여할 수 있습니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.

  1. 이 특정 사용자만 속한 그룹을 만들고 모든 관련 디렉터리와 파일을 그룹에 할당하고 그룹에 권한을 부여합니다. 예를 들면 다음과 같습니다.

     chgrp somegroup /etc/httpd/conf/httpd.conf
     chmod g+r /etc/httpd/conf/httpd.conf
    
  2. ACL을 사용하여 이 특정 사용자에게 권한을 부여합니다.

     setfacl -m -u:someuser:r /etc/httpd/conf/httpd.conf
    

물론 모든 상위 디렉터리에 대한 권한을 갖는(또는) 동일한 규칙이 x적용됩니다.rx

관련 정보