catastrophic bug with deluser command -- destroys large number of system files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
adduser (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
I installed rygel and created a specific rygel user to run it with (as directed by the docs). I then realized a specific user was not needed. To reverse my steps, I ran deluser which proceeded to delete lots of files that have nothing to do with the rygel user:
root@host:~# adduser --home /home/rygel --disabled-password --disabled-login --gecos 'Rygel media server' rygel
root@host:~# sudo su - rygel
rygel@host:$ systemctl start rygel
rygel@host:$ exit
root@host:~# deluser --remove-home --remove-all-files rygel
Looking for files to backup/remove ...
/usr/sbin/deluser: Cannot handle special file /etc/systemd/
/usr/sbin/deluser: Cannot handle special file /etc/systemd/
/usr/sbin/deluser: Cannot handle special file /etc/systemd/
/usr/sbin/deluser: Cannot handle special file /etc/systemd/
/usr/sbin/deluser: Cannot handle special file /dev/vcsa7
/usr/sbin/deluser: Cannot handle special file /dev/vcsu7
/usr/sbin/deluser: Cannot handle special file /dev/vcs7
/usr/sbin/deluser: Cannot handle special file /dev/gpiochip0
/usr/sbin/deluser: Cannot handle special file /dev/dvdrw
/usr/sbin/deluser: Cannot handle special file /dev/dvd
/usr/sbin/deluser: Cannot handle special file /dev/cdrw
/usr/sbin/deluser: Cannot handle special file /dev/zfs
/usr/sbin/deluser: Cannot handle special file /dev/vhost-vsock
/usr/sbin/deluser: Cannot handle special file /dev/vhost-net
/usr/sbin/deluser: Cannot handle special file /dev/uhid
/usr/sbin/deluser: Cannot handle special file /dev/vhci
/usr/sbin/deluser: Cannot handle special file /dev/userio
/usr/sbin/deluser: Cannot handle special file /dev/nvram
/usr/sbin/deluser: Cannot handle special file /dev/btrfs-control
/usr/sbin/deluser: Cannot handle special file /dev/cuse
/usr/sbin/deluser: Cannot handle special file /dev/autofs
/usr/sbin/deluser: Cannot handle special file /dev/sde
/usr/sbin/deluser: Cannot handle special file /dev/sdd
/usr/sbin/deluser: Cannot handle special file /dev/sdc
/usr/sbin/deluser: Cannot handle special file /dev/sdb
/usr/sbin/deluser: Cannot handle special file /dev/sg5
/usr/sbin/deluser: Cannot handle special file /dev/sg4
/usr/sbin/deluser: Cannot handle special file /dev/sg3
/usr/sbin/deluser: Cannot handle special file /dev/sg2
/usr/sbin/deluser: Cannot handle special file /dev/vcsa6
/usr/sbin/deluser: Cannot handle special file /dev/vcsu6
/usr/sbin/deluser: Cannot handle special file /dev/vcs6
/usr/sbin/deluser: Cannot handle special file /dev/vcsa5
/usr/sbin/deluser: Cannot handle special file /dev/vcsu5
/usr/sbin/deluser: Cannot handle special file /dev/vcs5
/usr/sbin/deluser: Cannot handle special file /dev/vcsa4
/usr/sbin/deluser: Cannot handle special file /dev/vcsu4
/usr/sbin/deluser: Cannot handle special file /dev/vcs4
/usr/sbin/deluser: Cannot handle special file /dev/vcsa3
/usr/sbin/deluser: Cannot handle special file /dev/vcsu3
/usr/sbin/deluser: Cannot handle special file /dev/vcs3
/usr/sbin/deluser: Cannot handle special file /dev/vcsa2
/usr/sbin/deluser: Cannot handle special file /dev/vcsu2
/usr/sbin/deluser: Cannot handle special file /dev/vcs2
/usr/sbin/deluser: Cannot handle special file /dev/hidraw2
/usr/sbin/deluser: Cannot handle special file /dev/hidraw1
/usr/sbin/deluser: Cannot handle special file /dev/cdrom
/usr/sbin/deluser: Cannot handle special file /dev/hidraw0
/usr/sbin/deluser: Cannot handle special file /dev/fb0
/usr/sbin/deluser: Cannot handle special file /dev/i2c-5
/usr/sbin/deluser: Cannot handle special file /dev/i2c-4
/usr/sbin/deluser: Cannot handle special file /dev/i2c-3
/usr/sbin/deluser: Cannot handle special file /dev/i2c-2
/usr/sbin/deluser: Cannot handle special file /dev/i2c-1
/usr/sbin/deluser: Cannot handle special file /dev/i2c-0
/usr/sbin/deluser: Cannot handle special file /dev/rtc
/usr/sbin/deluser: Cannot handle special file /dev/stderr
/usr/sbin/deluser: Cannot handle special file /dev/stdout
/usr/sbin/deluser: Cannot handle special file /dev/stdin
/usr/sbin/deluser: Cannot handle special file /dev/sda6
/usr/sbin/deluser: Cannot handle special file /dev/sda5
/usr/sbin/deluser: Cannot handle special file /dev/sda3
/usr/sbin/deluser: Cannot handle special file /dev/sda2
/usr/sbin/deluser: Cannot handle special file /dev/sda1
/usr/sbin/deluser: Cannot handle special file /dev/sg1
/usr/sbin/deluser: Cannot handle special file /dev/sr0
/usr/sbin/deluser: Cannot handle special file /dev/sda
/usr/sbin/deluser: Cannot handle special file /dev/sg0
/usr/sbin/deluser: Cannot handle special file /dev/cpu_
/usr/sbin/deluser: Cannot handle special file /dev/mcelog
/usr/sbin/deluser: Cannot handle special file /dev/rtc0
/usr/sbin/deluser: Cannot handle special file /dev/uinput
/usr/sbin/deluser: Cannot handle special file /dev/psaux
/usr/sbin/deluser: Cannot handle special file /dev/ppp
/usr/sbin/deluser: Cannot handle special file /dev/udmabuf
/usr/sbin/deluser: Cannot handle special file /dev/loop7
/usr/sbin/deluser: Cannot handle special file /dev/loop6
/usr/sbin/deluser: Cannot handle special file /dev/loop5
/usr/sbin/deluser: Cannot handle special file /dev/loop4
/usr/sbin/deluser: Cannot handle special file /dev/loop3
/usr/sbin/deluser: Cannot handle special file /dev/loop2
/usr/sbin/deluser: Cannot handle special file /dev/loop1
/usr/sbin/deluser: Cannot handle special file /dev/loop0
/usr/sbin/deluser: Cannot handle special file /dev/loop-control
/usr/sbin/deluser: Cannot handle special file /dev/hwrng
/usr/sbin/deluser: Cannot handle special file /dev/hpet
/usr/sbin/deluser: Cannot handle special file /dev/ttyprintk
/usr/sbin/deluser: Cannot handle special file /dev/ttyS31
/usr/sbin/deluser: Cannot handle special file /dev/ttyS30
/usr/sbin/deluser: Cannot handle special file /dev/ttyS29
/usr/sbin/deluser: Cannot handle special file /dev/ttyS28
/usr/sbin/deluser: Cannot handle special file /dev/ttyS27
/usr/sbin/deluser: Cannot handle special file /dev/ttyS26
/usr/sbin/deluser: Cannot handle special file /dev/ttyS25
/usr/sbin/deluser: Cannot handle special file /dev/ttyS24
/usr/sbin/deluser: Cannot handle special file /dev/ttyS23
/usr/sbin/deluser: Cannot handle special file /dev/ttyS22
/usr/sbin/deluser: Cannot handle special file /dev/ttyS21
/usr/sbin/deluser: Cannot handle special file /dev/ttyS20
/usr/sbin/deluser: Cannot handle special file /dev/ttyS19
/usr/sbin/deluser: Cannot handle special file /dev/ttyS18
/usr/sbin/deluser: Cannot handle special file /dev/ttyS17
/usr/sbin/deluser: Cannot handle special file /dev/ttyS16
/usr/sbin/deluser: Cannot handle special file /dev/ttyS15
/usr/sbin/deluser: Cannot handle special file /dev/ttyS14
/usr/sbin/deluser: Cannot handle special file /dev/ttyS13
/usr/sbin/deluser: Cannot handle special file /dev/ttyS12
/usr/sbin/deluser: Cannot handle special file /dev/ttyS11
/usr/sbin/deluser: Cannot handle special file /dev/ttyS10
/usr/sbin/deluser: Cannot handle special file /dev/ttyS9
/usr/sbin/deluser: Cannot handle special file /dev/ttyS8
/usr/sbin/deluser: Cannot handle special file /dev/ttyS7
/usr/sbin/deluser: Cannot handle special file /dev/ttyS6
/usr/sbin/deluser: Cannot handle special file /dev/ttyS5
/usr/sbin/deluser: Cannot handle special file /dev/ttyS4
/usr/sbin/deluser: Cannot handle special file /dev/ttyS3
/usr/sbin/deluser: Cannot handle special file /dev/ttyS2
/usr/sbin/deluser: Cannot handle special file /dev/ttyS1
/usr/sbin/deluser: Cannot handle special file /dev/ttyS0
/usr/sbin/deluser: Cannot handle special file /dev/ptmx
/usr/sbin/deluser: Cannot handle special file /dev/fuse
/usr/sbin/deluser: Cannot handle special file /dev/ecryptfs
/usr/sbin/deluser: Cannot handle special file /dev/snapshot
/usr/sbin/deluser: Cannot handle special file /dev/tty63
/usr/sbin/deluser: Cannot handle special file /dev/tty62
/usr/sbin/deluser: Cannot handle special file /dev/tty61
/usr/sbin/deluser: Cannot handle special file /dev/tty60
/usr/sbin/deluser: Cannot handle special file /dev/tty59
/usr/sbin/deluser: Cannot handle special file /dev/tty58
/usr/sbin/deluser: Cannot handle special file /dev/tty57
/usr/sbin/deluser: Cannot handle special file /dev/tty56
/usr/sbin/deluser: Cannot handle special file /dev/tty55
/usr/sbin/deluser: Cannot handle special file /dev/tty54
/usr/sbin/deluser: Cannot handle special file /dev/tty53
/usr/sbin/deluser: Cannot handle special file /dev/tty52
/usr/sbin/deluser: Cannot handle special file /dev/tty51
/usr/sbin/deluser: Cannot handle special file /dev/tty50
/usr/sbin/deluser: Cannot handle special file /dev/tty49
/usr/sbin/deluser: Cannot handle special file /dev/tty48
/usr/sbin/deluser: Cannot handle special file /dev/tty47
/usr/sbin/deluser: Cannot handle special file /dev/tty46
/usr/sbin/deluser: Cannot handle special file /dev/tty45
/usr/sbin/deluser: Cannot handle special file /dev/tty44
/usr/sbin/deluser: Cannot handle special file /dev/tty43
/usr/sbin/deluser: Cannot handle special file /dev/tty42
/usr/sbin/deluser: Cannot handle special file /dev/tty41
/usr/sbin/deluser: Cannot handle special file /dev/tty40
/usr/sbin/deluser: Cannot handle special file /dev/tty39
/usr/sbin/deluser: Cannot handle special file /dev/tty38
/usr/sbin/deluser: Cannot handle special file /dev/tty37
/usr/sbin/deluser: Cannot handle special file /dev/tty36
/usr/sbin/deluser: Cannot handle special file /dev/tty35
/usr/sbin/deluser: Cannot handle special file /dev/tty34
/usr/sbin/deluser: Cannot handle special file /dev/tty33
/usr/sbin/deluser: Cannot handle special file /dev/tty32
/usr/sbin/deluser: Cannot handle special file /dev/tty31
/usr/sbin/deluser: Cannot handle special file /dev/tty30
/usr/sbin/deluser: Cannot handle special file /dev/tty29
/usr/sbin/deluser: Cannot handle special file /dev/tty28
...
etc.
affects: | nuvexport (Ubuntu) → ubuntu |
affects: | ubuntu → adduser (Ubuntu) |
Notice also there is a serious transparency problem. The output only shows files for which removal failed. This acutely heightens the destruction because it potentially destroyed *thousands* of files as I sat there and let it run. The tool gives no idea how what's being destroyed. The admin has to trust that their understanding of the scope of removal is accurate. In the absence of errors, an admin would let it run through to the end, resulting in maximum damage.
This tool badly needs a --simulate option. And regardless of simulation, it should show what files are affected.