On Tue, Mar 25, 2014 at 08:24:13PM +0900, Kusanagi Kouichi wrote: > Configuration Information [Automatically generated, do not change]: > Machine: x86_64 > OS: linux-gnu > Compiler: gcc > Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' > -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu' > -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL > -DHAVE_CONFIG_H -I. -I../. -I.././include -I.././lib -D_FORTIFY_SOURCE=2 > -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat > -Werror=format-security -Wall > uname output: Linux crescent 3.14.0-rc7 #1 SMP Mon Mar 17 07:17:51 UTC 2014 > x86_64 GNU/Linux > Machine Type: x86_64-pc-linux-gnu > > Bash Version: 4.3 > Patch Level: 0 > Release Status: release > > Description: > Bash's builtin printf cannot write more than one line to > /proc/pid/uid_map because printf writes one line at a time > and uid_map can be written only once. I don't see why this is a bash bug though. printf works as documented. The fact that the way it works is incompatible with this /proc thing is *not* bash's fault. It just means that it's not flexible enough to tell it to write all at once, but that's not a bug.
> Repeat-By: > shell 1 > $ unshare -U > $ echo $$ > 31861 > > shell 2 > # printf '0 0 1\n1 1 1' > /proc/31861/uid_map > printf: write error: Operation not permitted > -- Eduardo Alan Bustamante López