Debian

對於 Debian 軟體封包件所有者來說,合適的 UID 和 GID 是什麼?

  • January 9, 2016

我目前正在建構自己的 aptitude 儲存庫,並在確保所有包通過盡可能多的 Lintian 檢查的過程中。目前,我正在為“錯誤的文件所有者 uid 或 gid”(此處為初始資訊此處為更多詳細資訊)而苦苦掙扎,並且不確定用於 UID 和 GID 的合適數字是多少。

目前我正在 AWS Ubuntu 機器上建構包:

$ 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)

這些都是機器上的預設設置。提供的第一個連結說:

允許的、全域分配的 ID 集由 0-99、64000-64999 和 65534 範圍組成。

在這些範圍中,第二個連結指出:

0-99:由 Debian 項目全域分配,在每個 Debian 系統上都相同。這些 id 將出現在所有 Debian 系統的 passwd 和 group 文件中,此範圍內的新 id 會隨著 base-passwd 軟體包的更新而自動添加。

需要單個靜態分配的 uid 或 gid 的軟體包應使用其中之一;他們的維護者應該向 base-passwd 維護者詢問 ID。

60000-64999:由 Debian 項目全域分配,但僅按需創建。id 是集中靜態分配的,但實際帳戶僅在使用者系統上按需創建。

這些 id 用於不明確或需要許多靜態分配的 id 的包。如有必要,這些軟體包應檢查並在 /etc/passwd 或 /etc/group 中創建帳戶(如果有此功能,則使用 adduser)。可能需要進一步分配的包應該在分配後留下一個“洞”,給它們增長空間。

65534:使用者沒有人。對應的 gid 指的是組 nogroup。

有人可以幫助解釋如何遵守這個 Lintian 檢查 Debian 軟體包嗎?是不是跟修改使用者的UID和GID一樣簡單?什麼是最合適的身份證號碼?

除非您特別需要另一個 UID 或 GID,否則最合適的值分別是 0 和 0。軟體包由 root 或具有 root 權限的人安裝。通常,它們包含的文件應該由 root 擁有,除非有特定原因使文件由另一個使用者或組擁有(也許是配置文件)。我的猜測是你debian/rules沒有執行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.

引用自:https://unix.stackexchange.com/questions/254245