1

В makefile я использовал команду 'install', как показано ниже

команда:'установить -o 1010 -g 100 -m 0755 -D путь'

вместо проверки имени пользователя и группы я хотел бы проверить uid и gid.

Рассмотрим следующий сценарий.

Шаг 1:

Система 1: пользователь, соответствующий UID 1010, - «XXXX». Используя «Систему 1», создайте установщик RPM.

Шаг 2:

Система 2: пользователь, соответствующий UID 1010, имеет значение «ГГГГ». При установке файла RPM мы получаем предупреждающее сообщение «предупреждение: пользователя XXXX не существует - используется root»

На этом этапе я предполагаю, что UID вошедшего в систему пользователя должно быть равно «1010» для успешной установки установщика RPM. Но на самом деле происходит следующее: установщик RPM ожидает, что имя пользователя в системе установки будет одинаковым

2 ответа2

1

Ну, на разных машинах uid/oid/gid может иметь разные значения, если вы не используете что-то вроде LDAP. Даже тогда пользователи, которые определены в вашей системе, будут иметь свои собственные идентификаторы. Нет гарантии, что пользователь будет существовать на другом компьютере.

Возможно, вам следует объяснить ваш вариант использования?

1

Используйте раздел %files вашего RPM-файла .spec чтобы установить ожидаемое право собственности на установленную систему (System 2 в вашем вопросе).

Вы также можете использовать раздел %pre файла .spec вашего RPM, чтобы определить, существуют ли ожидаемые пользователи и группы в установленной системе (System 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .