Hace algún tiempo, cuando instalé Ubuntu, elegí un nombre de usuario bastante estúpido para mi cuenta que ya no quiero usar.
¿Cómo cambio esto (incluido el nombre de mi directorio de inicio y el nombre en el terminal) sin perder la configuración de las aplicaciones?
¿Cómo guardo los permisos y mis claves para varias autentificaciones (por ejemplo, correo electrónico, SSH, GPG y más)?
¿Qué configuración podría perderse si cambiara mi nombre de usuario?
permissions
keyrings
gnupg
ssh
user-profile
Takkat
fuente
fuente
Respuestas:
Los sistemas operativos tipo Unix desacoplan el nombre de usuario de la identidad del usuario, por lo que puede cambiar el nombre de manera segura sin afectar la ID. Todos los permisos, archivos, etc. están vinculados a su identidad (uid), no a su nombre de usuario.
Para administrar todos los aspectos de la base de datos de usuarios, utiliza la
usermod
herramienta.Para cambiar el nombre de usuario (probablemente sea mejor hacer esto sin haber iniciado sesión):
Sin embargo, esto no cambia el nombre de la carpeta de inicio.
Para cambiar la carpeta de inicio, use
después de cambiar el nombre de usuario.
Por ejemplo, podría cerrar sesión, acceder a una consola ( Ctrl+ Alt+ F1) y
sudo su -
convertirse en root verdadero (en lugar desudo -s
, donde $ HOME todavía es / home / yourname). Quizás también deba eliminar algunos procesos aún en ejecución de este usuario primero. Para hacerlo, ingreseps -u username
, busque el PID correspondiente y elimíneloskill PID-number
.Actualización: como se mencionó, algunos archivos pueden hacer referencia a su antiguo directorio de inicio. Puede mantener un enlace simbólico para compatibilidad con versiones anteriores, por ejemplo,
ln -s /home/newname /home/oldname
o puede cambiar el contenido del archivo consed -i.bak 's/*oldname*/*newname*/g' *list of files*
Crea una copia de seguridad para cada archivo con una extensión .bak.Alguna información adicional para usuarios no tan experimentados como yo:
como solo tengo UNA cuenta de usuario (administrador), no me permitió cambiar el nombre de usuario ("ya has iniciado sesión" fue la respuesta en TTY1 ( Ctrl+ Alt+ F1). alrededor de esto:
Inicie sesión con sus credenciales anteriores y agregue un nuevo usuario, por ejemplo, "temporal" en TTY1:
establecer la contraseña
Permita que el usuario temporal ejecute sudo agregando el usuario al grupo sudo:
exit
.exit
(hasta que aparezca el mensaje de inicio de sesión)Eliminar usuario temporal y carpeta:
fuente
grep -IRFl /home/username ~
y verá cuántas referencias a su directorio de inicio se almacenan allí./home/.ecryptfs/oldusername/.ecryptfs/Private.mnt
para apuntar a su nueva carpeta de inicio, de lo contrario no podrá iniciar sesión a través de Unity.sudo usermod -d /home/edge -m edge
rendimientos:usermod: Directory /home/empedokles could not be renamed in /home/edge
es decir, el paso 4 no funcionará.sudoers
con plainnano
. Siempre usovisudo
.Para poner todo junto:
Establezca una contraseña para la cuenta "raíz".
Cerrar sesión.
Inicie sesión con la cuenta "root" y la contraseña que estableció anteriormente.
Cambie el nombre de usuario y la carpeta de inicio al nuevo nombre que desee.
Cambie el nombre del grupo al nuevo nombre que desee.
Bloquee la cuenta "raíz".
Si estaba utilizando ecryptfs (directorio de inicio encriptado). Monte su directorio encriptado usando
ecryptfs-recover-private
y edite<mountpoint>/.ecryptfs/Private.mnt
para reflejar su nuevo directorio de inicio.Cerrar sesión.
Presione Ctrl+ Alt+ F7.
Y ahora puede iniciar sesión con su nuevo nombre de usuario.
fuente
usermod -l
obtener unuser <oldname> is currently used by process <processno>
, puede encontrar ese proceso (probablemente un demonio o tmux / screen) usandops aux | grep <processno>
. Es posible que desee detener ese proceso con gracia, de lo contrario puede hacerlokill <processno>
.Reinicie en modo de recuperación y vaya al intérprete de comandos de la raíz ("Soltar al intérprete de comandos de la raíz")
Primero remonta la raíz
Para cambiar el nombre de usuario y el nombre de la carpeta de inicio,
Para el nombre del grupo,
fuente
usermod -l <newname> -d /home/<newname> -m <oldname>
esto me da un errorusermod: user oldusername is currently used by process 3170
y si aún mato el proceso, me da el mismo error. usando ubuntu 13.10En Ubuntu 13.10, 14.04, 16.04:
fuente
Al recibir
usermod: can't change /etc/password
simplemente ejecute los siguientes comandos:En la consola de recuperación raíz, ejecute:
Luego vuelva a ejecutar:
fuente
La respuesta enumerada aquí por @ karthick87 funciona perfectamente bien, pero esto es lo que haría para estar seguro y evitar todos los problemas técnicos:
fuente
cuando lo haga
usermod -l <newname> -d /home/<newname> -m <oldname>
, recibiráuseradd: can't change /etc/passwd
un mensaje de error para evitar esto, simplemente agregue elsudo --
comando anterior comoy
fuente
Como no todas las PC tienen la
usermod
aplicación, puedes hacerlo manualmente. A partir de la raíz abierta/etc/passwd
para editar:y cambie el nombre del usuario al comienzo de una línea:
a:
luego, si trabajó en root, simplemente inicie sesión y si ha iniciado
user
sesión, cierre sesión y vuelva a iniciar sesión.fuente
usermod
comando) y la contraseña del usuario ya no se acepta.usermod
su instalación está rota, ya que es parte delpasswd
paquete, que es obligatorio .