
Makefile에서는 아래와 같이 'install' 명령을 사용했습니다.
명령:'설치 -o 1010 -g 100 -m 0755 -D 경로'
사용자 이름과 그룹 이름을 확인하는 대신 uid와 gid를 확인하고 싶습니다.
다음 시나리오를 고려해보세요.
1 단계:
시스템 1: UID 1010에 해당하는 사용자는 "XXXX"입니다. "시스템 1"을 사용하여 RPM 설치 프로그램을 만듭니다.
2 단계:
시스템 2: UID 1010에 해당하는 사용자는 "YYYY"입니다. RPM 파일을 설치하는 동안 "경고: 사용자 XXXX가 존재하지 않습니다. 루트를 사용합니다"라는 경고 메시지가 나타납니다.
이 단계에서는 RPM 설치 프로그램을 성공적으로 설치하려면 로그인한 사용자의 UID가 "1010"과 동일해야 한다고 가정합니다. 그러나 실제로 일어나는 일은 RPM 설치 프로그램이 사용자 이름이 설치 시스템에서 동일할 것으로 예상한다는 것입니다.
답변1
글쎄, LDAP와 같은 것을 사용하지 않는 한 uid/oid/gid는 다른 시스템에서 다른 값을 가질 수 있습니다. 그렇더라도 시스템에 정의된 사용자는 자신의 ID를 갖게 됩니다. 사용자가 다른 컴퓨터에 존재한다는 보장은 없습니다.
사용 사례를 더 자세히 설명해야 할까요?
답변2
%files
RPM 파일의 섹션을 사용하여 .spec
설치된 시스템(질문의 경우 시스템 2)에서 예상되는 소유권을 설정하십시오.
또한 %pre
RPM .spec
파일의 섹션을 사용하여 예상되는 사용자 및 그룹이 설치된 시스템(질문의 경우 시스템 2)에 실제로 존재하는지 확인할 수도 있습니다.
%files
# Set file permissions and ownership
%pre
# Check if expected user 'myuser' exists. If not, exit with an error.
# Check if expected group 'mygroup' exists. If not, exit with an error
자세한 내용은 다음에서 확인하세요.rpm.org.