주어진 디렉토리 계층 구조에서 이미지(예: ext3 이미지)를 생성하고 싶습니다. 이 디렉터리 계층 구조는 지정된 사용자가 소유합니다. 하지만 최종 이미지에서는 슈퍼유저가 파일을 소유하게 되기를 원합니다. 사용자 uid/gid를 0으로 변환하는 솔루션이 있습니까?
의사 작업 흐름은 다음과 같습니다.
사용자로 파일 계층 생성
/home/user/rootfs
파일에 ext3 img 생성
루프 마운트 빈 img(사용자 또는 루트로)
/somewhere/loopmount
cp -R --magic_uid_options 500=0 /home/user/rootfs /somewhere/loopmount
또는 4단계는 일반 복사일 수도 있고, 5단계는 chown
재귀적으로 수행할 수 있는 영리한 발견입니다 chgrp
. 이러한 유형의 문제에 대한 잘 알려진 해결책이 있습니까?
답변1
--magic_uid_options
나는 이 명령에 대해 ""를 전혀 모릅니다 cp
. 그리고 당신도 알 필요가 없습니다.영리한재귀 chown
또는 를 수행하는 데 사용됩니다 chgrp
.
실제로 나는:
복사본을 만들 때 최대한 많은 파일/디렉터리 속성(타임스탬프, ...)을 유지하세요.
cp -pR /home/users/rootfs /somewhere/loopmount/
chown
모두root:root
:chown -R root:root /somewhere/loopmount
답변2
루트로 4단계를 수행할 수 있습니다.
cd /home/user/rootfs
pax -rw -pp . /somewhere/loopmount
-pp
모드와 시간은 유지하지만 실행 중인 사용자와 그룹이 소유한 파일을 만듭니다 pax
.