O que é um UID e um GID apropriados para um proprietário de arquivo de pacote Debian?

2

Atualmente, estou construindo meu próprio repositório de aptitude, e no processo de garantir que todos os pacotes passem o máximo possível de verificações de Lintian. Atualmente eu estou lutando com 'arquivo-errado-proprietário-uid-ou-gid' (informação inicial aqui , informações mais detalhadas aqui ) e não tenho certeza de qual é o número adequado a ser usado para o UID e o GID.

Atualmente estou construindo pacotes em uma máquina Ubuntu da AWS:

$ id ubuntu
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),102(netdev)

Estes são todos como padrão na máquina. O primeiro link fornecido diz:

The set of the allowed, globally allocated IDs consists of the ranges 0-99, 64000-64999 and 65534.

Destes intervalos, o segundo link indica:

0-99: Globally allocated by the Debian project, the same on every Debian system. These ids will appear in the passwd and group files of all Debian systems, new ids in this range being added automatically as the base-passwd package is updated.

Packages which need a single statically allocated uid or gid should use one of these; their maintainers should ask the base-passwd maintainer for ids.

60000-64999: Globally allocated by the Debian project, but only created on demand. The ids are allocated centrally and statically, but the actual accounts are only created on users' systems on demand.

These ids are for packages which are obscure or which require many statically-allocated ids. These packages should check for and create the accounts in /etc/passwd or /etc/group (using adduser if it has this facility) if necessary. Packages which are likely to require further allocations should have a "hole" left after them in the allocation, to give them room to grow.

65534: User nobody. The corresponding gid refers to the group nogroup.

Alguém pode ajudar a explicar como se adequar a esta verificação de Lintian para pacotes Debian? É tão simples quanto mudar o UID e o GID do usuário? Qual é o número de identificação mais adequado para escolher?

    
por Mike Roberts 09.01.2016 / 13:00

1 resposta

2

A menos que você tenha uma necessidade particular de outro UID ou GID, os valores mais adequados são 0 e 0, respectivamente. Pacotes são instalados por root, ou alguém com poderes de root. Normalmente, espera-se que os arquivos que eles contêm sejam de propriedade de root, a menos que haja uma razão específica para os arquivos pertencerem a outro usuário ou grupo (arquivos de configuração, talvez). Meu palpite é que o seu debian/rules não está rodando dh_fixperms :

dh_fixperms is a debhelper program that is responsible for setting the
permissions of files and directories in package build directories to a
sane state -- a state that complies with Debian policy.

dh_fixperms makes all files in usr/share/doc in the package build
directory (excluding files in the examples/ directory) be mode 644. It
also changes the permissions of all man pages to mode 644. It makes all
files be owned by root, and it removes group and other write permission
from all files.
    
por 09.01.2016 / 17:55