파일 생성 시 사용자 및 그룹 소유권 변경

파일 생성 시 사용자 및 그룹 소유권 변경

문제가 있습니다. 매우 오래된 시스템(UNIX)을 새 시스템에 연결하고 싶습니다. 이전 시스템은 scp하드 코딩된 사용자로 로그인하여 oldsystemaccess새 서버의 webroot 하위 디렉터리에 파일을 복사했습니다 /var/www/newserver/test/import. 새 시스템은 Apache의 고급 구성 없이 Ubuntu 18 LAMP 스택을 실행하고 있으며 www-data마치 동일한 그룹에 있는 것처럼 실행됩니다.

새 서버에서 이 사용자를 그룹 oldsystemaccess에 추가 하고 디렉토리의 권한을 으로 변경 했습니다 . 이렇게 변경한 후 파일이 새 시스템에 성공적으로 복사되었습니다.www-datasudo usermod -aG www-data oldsystemaccessrwxrwxr-xsudo chmod 775 /var/www/newserver/test/import

이제 내가 해결하려는 실제 문제는 oldsystemaccess내 PHP 스크립트가 파일을 소유한 경우 파일을 올바르게 읽거나 처리할 수 없으며, 이전 서버에서 파일을 복사하는 방식을 변경할 수 없기 때문에 다음과 같은 경우 실행할 수 없다는 것입니다. 파일이 복사됩니다. 기타 명령. 디렉터리에 생성된 파일을 생성된 사용자와 그룹이 소유하도록 import변경 하는 방법을 찾고 있습니다 .www-data

crontab이제 1분마다 실행되는 항목을 추가했지만 chown -R www-data:www-data /var/www/newserver/test/import이것이 정말 나쁜 해결책인 것 같습니다. umask비슷하지만 파일 소유권이 있는 것을 찾고 있습니다 .

답변1

일부 시스템에서는(FreeBSD와 같은 경우)위키피디아), setuid디렉토리의 비트는 내가 원하는 동작을 갖게 됩니다(협회). 하지만 제가 실행 중인 Ubuntu의 기본 동작이 아니기 때문에 제가 겪고 있는 문제에 대한 해결책은 다음과 같습니다.

이 그룹이 새 파일을 소유하도록 이 setgid비트를 설정하는 데 사용됩니다 .chmodwww-data

sudo chmod 2775 /var/www/newserver/test/import

분명히 파일을 복사한 스크립트에는 권한이 있는 파일이 생성되도록 하는 권한 umask집합 이 있었지만 질문할 때 이를 간과했습니다.007rwxrwx---

디렉터리 내의 파일에 대한 쓰기 권한 비트를 설정해야 하는 경우 ACL을 설정하여 해당 파일을 소유한 그룹이 자동으로 파일을 쓸 수 있도록 만들 수 있습니다.

sudo setfacl -d -m group:www-data:rwx /var/www/newserver/import

관련 정보