일반 사용자로서 루트가 소유한 파일을 포함하는 tar를 생성합니다.

일반 사용자로서 루트가 소유한 파일을 포함하는 tar를 생성합니다.

tar 파일을 만들고 싶습니다.일반(루트가 아닌) 사용자준비된 일부 바이너리 및 구성 파일은 다음과 같습니다.

etc/binaries.conf
usr/bin/binary1
usr/bin/binary2

/이 디렉토리의 파일 시스템 에 추출한다는 의미입니다 .

기존 패키지 .deb, .rpm 등과 비슷하지만 "패키지 관리자 독립적"이어야 합니다. 따라서 아마도 .tar 파일만 갖게 될 것입니다(gzip, bzip, lzip 파일을 추가해야 할 수도 있지만 거기에 있습니다).

질문/질문

내 문제는 나야아니요이 tar를 다음과 같이 만들고 싶습니다.뿌리사용자님, 이 tar를 다음과 같이 빌드할 수 있는 방법이 있는지 알고 싶습니다.일반(루트가 아닌) 사용자그런 다음 .tar 파일이 컴퓨터에 배포되고 실제 root사용자가 이러한 바이너리를 추출하면 소유자 소유 파일로 설치됩니다.뿌리사용자입니까 아니면 바이너리를 추출한 사용자입니까?

왜냐하면 지금은 .tar 파일을 다음과 같이 생성했기 때문입니다.일반(루트가 아닌) 사용자그리고

$ tar cf dist.tar dist/

그런 다음 .tar의 압축을 풀어서뿌리사용자 및

# tar xf dist.tar -C /

바이너리와 구성 파일의 소유자는 루트가 아닌 일반 사용자인 것을 확인했습니다.

$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 user user 30232 jun  20 19:06 /usr/bin/binary1

가지고 싶다

$ ls -la /usr/bin/binary1
-rwxr-xr-x 1 root root 30232 jun  20 19:06 /usr/bin/binary1

명확히 하자면, 이 손으로 만든 패키징은 폐쇄형 인프라의 특정 작업에만 적용되므로 .deb, .rpm 또는 기타 더 정교한 패키징 시스템을 사용하는 것은 현재로서는 선택 사항이 아닙니다.

답변1

이것추출소유권을 결정하는 것이 아니라만들다보관. 예를 들어, 아카이브의 디렉토리를 보면 이를 확인할 수 있습니다.

tar tvf dist.tar

일반 사용자로 파일을 생성하는 경우

tar --owner 0 --group 0 dist.tar dist

마법을 시전하다

관련 정보