On Thursday 01 November 2007, Bernard Cafarelli wrote: > Le Thu, 1 Nov 2007 16:06:51 +0100 > > Marius Mauch a écrit: > > On Thu, 1 Nov 2007 15:43:18 +0100 > > > > Bernard Cafarelli wrote: > > > Le Wed, 31 Oct 2007 16:42:35 -0700 > > > > > > Donnie Berkholz a écrit: > > > > On 19:49 Wed 31 Oct , Bernard Cafarelli (voyageur) wrote: > > > > > 1.1 > > > > > net-misc/nxserver-freenx/nxserver-freenx-0.7.1.ebuild > > > > > > > > > > file : > > > > > http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-misc/nxserver-f > > > > >reenx/nxserver-freenx-0.7.1.ebuild?rev=1.1&view=markup plain: > > > > > http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-misc/nxserver-f > > > > >reenx/nxserver-freenx-0.7.1.ebuild?rev=1.1&content-type=text/plain > > > > > > > > > > pkg_postinst () { > > > > > usermod -s /usr/bin/nxserver nx || die "Unable to set > > > > > login shell of nx user!!" usermod -d ${NX_HOME_DIR} nx || die > > > > > "Unable to set home directory of nx user!!" > > > > > > > > This isn't safe with ROOT != / and it looks wrong too, you oughta > > > > be using enewuser for this stuff. > > > > > > > > Thanks, > > > > Donnie > > > > > > The problem is, enewuser can not be used to modify already existing > > > user accounts.This happens if another nxserver was installed before > > > (which uses the same account, but with different shell and home > > > directory). > > > > > > I'll fix ROOT handling in the meantime, this should be better: > > > usermod -s "${ROOT}"/usr/bin/nxserver nx > > > usermod -d "${ROOT}"{NX_HOME_DIR} nx > > > > Should it really? Wouldn't it modify /etc/passwd instead of the one in > > $ROOT, in which case it would actually be worse? > > Might be better to make it conditional on ROOT = /, and show a > > warning if ROOT != /, unless you can find a solution that is safe for > > ROOT != / > > Yes, as pointed out on IRC by zlin, this does not fix the problem at > all (and make it a little worse!). > > Making it conditional on ROOT != / is a good workaround in the > meantime: not breaking anything in all cases, and as the problem only > appears if a different nxserver was installed before, it still works in > most cases. Thanks! presumably you have init.d scripts which would start the daemons ? in that case, it'd make more sense i think to move the user account check to the init.d start() function and error out telling the user what to do instead of modifying things on them (which i think is bad form). see the cheesy check in openntpd's "ntpd" init.d script as an example. -mike