** Description changed: + [ Impact ] + On Ubuntu Core 24 calling the command line useradd --extrausers --groups somegroup somenewuser ... fails with: useradd: cannot lock /etc/group; try again later. It worked on 22.04. /etc is not writable. It also fails if somegroup is a group in extrausers. + + [ Test Plan ] + + Part of the upload is adding an autopkgtest script testing useradd and + usermod in the extrausers+readonly-etc case. + + In addition, the following commands should be run as root in a fresh + container: + + ``` + # Install prerequisites + apt install libnss-extrausers + vim /etc/nsswitch.conf # enable extrausers in group, passwd, shadow and gshadow + + # Sanity checks of "normal" path + groupadd etcgroup + useradd --groups etcgroup etcuser + id etcuser | grep etcgroup + groupadd etcgroup2 + usermod --groups etcgroup2 etcuser + id etcuser | grep etcgroup2 + useradd --groups nullgroup etcuser || echo Successfully rejected invalid group + + ls /var/lib/extrausers/ # should be empty + + # Sanity checks of "extrausers" path in rw context + groupadd --extrausers extragroup + useradd --extrausers --groups extragroup extrauser # currently fails + id extrauser | grep extragroup + useradd --extrausers extrauser2 + id extrauser2 + usermod --extrausers --groups extragroup extrauser2 + id extrauser2 | grep extragroup + + # Sanity checks of "extrausers" path in ro context + mv /etc /etc-rw + mkdir /etc + mount -o bind,ro /etc-rw /etc + groupadd --extrausers extragroup2 + useradd --extrausers --groups etcgroup extrauser3 + id extrauser4 | grep etcgroup + usermod --extrausers --groups extragroup2 extrauser3 + id extrauser4 | grep extragroup2 + ``` + + + Furthermore, validation from the Ubuntu Core team that this actually fixes + their use case is required. + + [ Where problems could occur ] + + Regression potential is in the group validation stage of the `usermod` and + `useradd` tools. Besides the usual risks related to C code, the various failure + scenarios that come to mind are: + + * try to add the user to an non-existing local group, which would fail further + down with a different error message + * actually fail to identify a valid local group + * Fail to either add the user to the system, or the user to the group + * Update the wrong file (/var/lib/extrausers/* vs /etc/*)
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2063200 Title: useradd --extrausers --groups tries to lock /etc/group To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/shadow/+bug/2063200/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs