Os desenvolvedores de git falam sobre os comandos encanamento (baixo nível) e porcelana (alto nível).
useradd é o encanamento. Você deveria ter usado adduser (= porcelana).
Na página de manual do useradd :
useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
Ao usar useradd , você precisa especificar literalmente tudo, como um diretório inicial e um shell de login. Por outro lado, adduser tem padrões razoáveis para eles. A experiência que você fez é devido a ter / como o diretório inicial (sem permissões de gravação) e / ou errado sem shell de login, como anotado @steeldriver em um comentário. adduser lida com tudo isso. Assim:
adduser dsweb # create user with default settings (like $HOME, $SHELL)
adduser dsweb www-data # add him to group www-data
adduser dsweb sudo # ... and sudo
E sim, é uma verdadeira bagunça termos dois comandos adduser e useradd . Eu mesmo sempre tenho que procurar qual é qual.
Para remover seu usuário dsweb criado anteriormente, use deluser dsweb . Do não forneça a opção --remove-home porque você o criou com / como $ HOME e não quer que isso seja removido.