Command-Line
將使用者名添加到組後,組和組 USERNAME 的不同輸出
我今天偶然發現了一個奇怪的行為。將使用者添加到新組後,如下所示:
# gpasswd -a test myuser
然後連接到一個新的 bash 會話,這是
groups
and的結果groups myuser
:myuser@mycomputer$ groups wheel myuser myuser@mycomputer$ groups myuser wheel myuser test
僅當我重新啟動時,輸出
groups
才會與 相同groups myuser
,但不必以相同的順序顯示組。所以我的問題很簡單:為什麼?
因為對組成員身份的更改只有在啟動新的登錄shell後才會生效。啟動一個新的非登錄互動式 shell 會話(這是您打開新終端時得到的)是無關緊要的。
因此,當您執行時
groups
,將列印您的使用者目前所在的組。但是,這些組是在您的使用者首次登錄時設置的,並且在您再次登錄之前無法更改。因此,groups
不包括您的新組。另一方面,當您執行時
groups myuser
,系統不會查找目前使用者所屬的組,它會查找使用者myuser
所屬的組,它通過讀取設置文件獲得(/etc/group
大概是) . 由於您的使用者已設置為屬於 中的新組/etc/groups
,因此該命令也顯示了這一點,即使您目前不在該組中,因為您還沒有再次登錄。