View Single Post
  #1   (View Single Post)  
Old 13th May 2020
gustaf gustaf is offline
Fdisk Soldier
 
Join Date: Dec 2016
Posts: 59
Default userdel "must be a local user" error

After deleting gwenview and all leftover unused dependencies,
$ doas pkg_del -civ gwenview ; doas pkg_del -a,
the following messages appeared:
Code:
--- -polkit-0.116p1 -------------------
You should also run /usr/sbin/userdel _polkitd
--- -pulseaudio-13.0p0 -------------------
You should also run /usr/sbin/userdel _pulse
Running these commands yielded the following results:
Code:
$ doas /usr/sbin/userdel _polkitd
userdel: /etc/master.passwd: line `' too long (492 bytes), skipping
...
userdel: /etc/master.passwd: line `�S��z��yy�'' too long (515 bytes), skipping
...
userdel: User `_polkitd' must be a local user

$ doas /usr/sbin/userdel _pulse
userdel: /etc/master.passwd: line `' too long (492 bytes), skipping
...
userdel: /etc/master.passwd: line `�S��z��yy�'' too long (515 bytes), skipping
...
userdel: User `_pulse' must be a local user
Both _polkitd and _pulse show up as users:
Code:
$ less /etc/passwd
_polkitd:*:701:701:Polkit Daemon User:/var/empty:/sbin/nologin
_pulse:*:683:683:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
Code:
$ userinfo _polkitd
login   _polkitd
passwd  *
uid     701
groups  _polkitd
change  NEVER
class   daemon
gecos   Polkit Daemon User
dir     /var/empty
shell   /sbin/nologin
expire  NEVER

$ userinfo _pulse      
login   _pulse
passwd  *
uid     683
groups  683
change  NEVER
class   daemon
gecos   PulseAudio System Daemon
dir     /var/run/pulse
shell   /sbin/nologin
expire  NEVER
A NetBSD thread from 2013, pwd_mkdb exited with status 1, looked promising, but...

vipw(8) gives me a cryptic list of ^@ signs and what looks like hex notation for characters (\xad\x91F5, for example)--definitely not a human-readable, editable file.

Additional suggestions in this thread are to remove the possibly corrupted compiled password databases, and then rebuild them with pwd_mkdb(8).

Since these are password files and I have no experience working with them, aside from looking at /etc/passwd, I tried what seemed like the safest commands:
Code:
$ doas pwd_mkdb -c /etc/master.passwd
pwd_mkdb: line too long
pwd_mkdb: /etc/master.passwd: Inappropriate file type or format

$ doas pwd_mkdb -c /etc/passwd
pwd_mkdb: corrupted entry
pwd_mkdb: at line #1
pwd_mkdb: /etc/passwd: Inappropriate file type or format

$ doas pwd_mkdb -c /etc/pwd.db
pwd_mkdb: corrupted entry
pwd_mkdb: at line #1
pwd_mkdb: /etc/pwd.db: Inappropriate file type or format

$ doas pwd_mkdb -c /etc/spwd.db
pwd_mkdb: corrupted entry
pwd_mkdb: at line #1
pwd_mkdb: /etc/spwd.db: Inappropriate file type or format
Is this even the right approach and are these the right commands? I'd rather not find out what happens if I accidentally delete all my passwords.

Thanks in advance.

Last edited by gustaf; 14th May 2020 at 04:22 AM. Reason: formatting
Reply With Quote