루트에 속한 파일이 여러 개 있고 다른 사용자를 사용하여 해당 파일을 백업하고 싶습니다. 나는 이 사용자에게 모든 루트 디렉터리에 대한 액세스 권한을 부여하고 싶지 않고 특정 디렉터리와 파일에만 액세스 권한을 부여하고 싶습니다.
예를 들어 /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
(디렉토리에 대한 읽기 권한이 있어야 내용에 액세스할 수 있는 것은 아니지만목록백업 소프트웨어에 필요할 수 있는 것 - 둘 다 할당하는 것이 가장 좋습니다.
모든 사용자에게 읽기 액세스 권한을 부여하고 싶지 않은 경우(하지만 이유를 모르겠습니다) 해당 사용자에게만 읽기 액세스 권한을 부여할 수 있습니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.
이 특정 사용자만 속한 그룹을 만들고 모든 관련 디렉터리와 파일을 그룹에 할당하고 그룹에 권한을 부여합니다. 예를 들면 다음과 같습니다.
chgrp somegroup /etc/httpd/conf/httpd.conf chmod g+r /etc/httpd/conf/httpd.conf
ACL을 사용하여 이 특정 사용자에게 권한을 부여합니다.
setfacl -m -u:someuser:r /etc/httpd/conf/httpd.conf
물론 모든 상위 디렉터리에 대한 권한을 갖는(또는) 동일한 규칙이 x
적용됩니다.rx