파일 소유자를 변경하지 않고 sudo 명령을 사용하는 방법은 무엇입니까?

파일 소유자를 변경하지 않고 sudo 명령을 사용하는 방법은 무엇입니까?

sudo를 사용하여 파일에 대한 특정 활동을 수행하면 파일 소유권이 변경됩니다. 파일 소유자를 변경하지 않고 sudo 명령을 사용하는 방법은 무엇입니까?

샘플 파일 archivevos35.sh는 Apache에서 가져온 것이지만 저는 sed를 사용합니다(usr admin sudo 사용).

$ ls -l
-rwxr-xrw-. 1 apache apache 181 Aug 5 11:56 archivos35.sh

sudo를 사용하는 사용자 admin---

sudo sed -i s/old/new/g archivos35.sh

그러나 sudo로 명령을 실행하면 파일 소유자가 변경됩니다.

$ ls -l
-rwxr-xrw-. 1 admin apache 181 Aug 5 11:56 archivos35.sh

파일 소유자를 변경하기 위해 sudo와 함께 명령을 사용하지 않는 방법은 무엇입니까? 소유자를 수정하지 않고 파일을 변경하고 싶습니다.

답변1

이 파일을 수정 해야 하는 경우 sudo이를 사용하여 올바른 사용자로 전환하십시오. 당신은하지 않습니다필요루트로 전환하세요. 이는 기본값일 뿐입니다. 따라서 귀하의 경우에는 다음을 수행해야 합니다.

sudo -iu apache sed -i 's/old/new/g' archivos35.sh

그러면 sed사용자로 명령이 실행 됩니다 apache.

답변2

실제로 파일의 소유권을 변경하는 것이 아니라 이전 파일을 삭제하고 새 파일을 만듭니다. 이렇게 하면 작성자의 uid가 소유한 새 파일이 생성됩니다. 이를 방지하려면 해당 위치에서 파일을 수정해야 합니다. 원본 파일을 덮어써 저장하는 텍스트 편집기를 사용하여 편집하세요. 또는 sed 명령을 실행하고 출력을 임시 파일로 출력한 다음 원본 파일 위에 임시 파일을 복사합니다.

관련 정보