Group

coreos上定義的核心組在哪裡?

  • August 21, 2014

在 CoreOS EC2 實例上,我發現以下內容:

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
core:x:500:500:CoreOS Admin:/home/core:/bin/bash
$ cat /etc/group    
wheel:x:10:root,core
sudo:x:150:
docker:x:233:core
$ id
uid=500(core) gid=500(core) groups=500(core),10(wheel),233(docker),248(systemd-journal),250(portage)
  1. 組在哪裡core定義?
  2. 我可以使用哪些命令來更改使用者/組的 uidgid core,比如在啟動時執行的 systemd 單元中?

**更新:**這似乎與/usr/share/baselayout/group包含該core組的 的內容有關,但我在任何地方都找不到指向該文件的任何連結。

鑑於您發布的passwdgroup文件,您的系統上沒有呼叫任何組core。有一個名為 的使用者core,使用者 ID 為 500,其主要組的組 ID 為 500。組 500 在這些文件中沒有給出名稱。

組 500 可能具有在另一個數據庫中給出的名稱。使用者和組的數據庫在/etc/nsswitch.conf. getent您可以使用以下命令查詢它們:

getent group 500

在 CoreOS 上,/etc/nsswitch.conf containsusrfiles似乎是 CoreOS 擴展。它的工作原理類似於files,但在下面/usr/share/baselayout而不是/etc. 因此files usrfiles意味著/etc/group將被諮詢,然後/usr/share/baselayout/group

使用者和組通常不是在啟動時或其他時間動態創建的;它們是持久的系統配置。您可以從 Systemd 單元呼叫諸如adduseraddgroup等命令,但這種情況相當罕見。我不熟悉 CoreOS,但我非常懷疑創建一個core在啟動時呼叫的使用者或組會取得任何有用的效果。如果要為組 500 命名,請在 中創建一個/etc/group條目addgroup。如果您想為自己的目的創建使用者或組,請使用adduserand addgroup,並且不要重複使用已使用的名稱或號碼。

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