GNU bug report logs -
#38800
Non-existent setuid programs make "guix system reconfigure" break mid-generation-switch
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#38800: Non-existent setuid programs make "guix system reconfigure" break mid-generation-switch
which was filed against the guix package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 38800 <at> debbugs.gnu.org.
--
38800: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=38800
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hello,
Jakub Kądziołka <kuba <at> kadziolka.net> skribis:
> Steps to reproduce:
>
> 0. [IMPORTANT] Make sure you will be able to reconfigure your system
> when all setuid binaries stop working (this includes sudo, which
> makes this, IMHO, a serious bug).
>
> Namely, either make sure you can log in as root, or keep a "sudo -s"
> shell open. The latter is slightly more dangerous in the event of a
> power outage.
>
> I would also recommend running "guix pull" in this recovery shell, as
> a root login shell will use root's profile, and not your own.
> 1. Add a non-existant file to your system configuration's
> setuid-programs. For example,
>
> (setuid-programs (cons*
> #~(string-append #$bash "/bin/enoent")
> %setuid-programs))
>
> 2. Reconfigure your system.
>
> $ sudo guix system reconfigure /etc/config.scm
>
> Actual behavior:
>
> activating system...
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> building /gnu/store/0ay9wd3wz4x0f5mgmbdfs72w98qvm68z-switch-to-system.scm.drv...
> making '/gnu/store/7vwa2xd378fgwrkgwif7pi6ymshsf2jc-system' the current system...
> setting up setuid programs in '/run/setuid-programs'...
> guix system: error: copy-file: No such file or directory: "/run/setuid-programs/enoent"
> $ sudoedit /etc/config.scm
> -bash: /run/setuid-programs/sudoedit: No such file or directory
> $ ls -l /run/setuid-programs
> total 0
Good catch, I believe commit 7c4e4bac876190eae90635ba7d7f59892c31bcc6
fixes it.
> 3. [OPTIONAL] Run a rollback.
>
> # guix system roll-back
>
> Expected behavior: /run/setuid-programs gets populated again.
> Actual behavior: /run/setuid-programs is still empty.
>
> (Is this a separate bug with roll-back not restoring setuid-programs? No
> idea, didn't test)
It looks like a separate bug, yes. Could you report it separately?
Thanks!
Ludo’.
[Message part 3 (message/rfc822, inline)]
Steps to reproduce:
0. [IMPORTANT] Make sure you will be able to reconfigure your system
when all setuid binaries stop working (this includes sudo, which
makes this, IMHO, a serious bug).
Namely, either make sure you can log in as root, or keep a "sudo -s"
shell open. The latter is slightly more dangerous in the event of a
power outage.
I would also recommend running "guix pull" in this recovery shell, as
a root login shell will use root's profile, and not your own.
1. Add a non-existant file to your system configuration's
setuid-programs. For example,
(setuid-programs (cons*
#~(string-append #$bash "/bin/enoent")
%setuid-programs))
2. Reconfigure your system.
$ sudo guix system reconfigure /etc/config.scm
Actual behavior:
activating system...
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
building /gnu/store/0ay9wd3wz4x0f5mgmbdfs72w98qvm68z-switch-to-system.scm.drv...
making '/gnu/store/7vwa2xd378fgwrkgwif7pi6ymshsf2jc-system' the current system...
setting up setuid programs in '/run/setuid-programs'...
guix system: error: copy-file: No such file or directory: "/run/setuid-programs/enoent"
$ sudoedit /etc/config.scm
-bash: /run/setuid-programs/sudoedit: No such file or directory
$ ls -l /run/setuid-programs
total 0
Expected behavior: the running system is left untouched.
/run/setuid-programs is still populated with the previous generation's
setuid programs. The error message says that the source of the copy-file
doesn't exist, not the destination. (While the latter is technically
correct, it's utterly unhelpful)
3. [OPTIONAL] Run a rollback.
# guix system roll-back
Expected behavior: /run/setuid-programs gets populated again.
Actual behavior: /run/setuid-programs is still empty.
(Is this a separate bug with roll-back not restoring setuid-programs? No
idea, didn't test)
4. Remove the changes made to the configuration and run reconfigure
again.
# guix system reconfigure /etc/config.scm
Expected & actual behavior: system is back in (AFAIK) a well-defined
state.
Regards,
Jakub Kądziołka
This bug report was last modified 5 years and 200 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.