¿Cómo puedo cambiar mi propia identificación de usuario?

49

Solo hay un usuario en mi sistema. ¿Cómo puedo cambiar su ID de usuario del valor predeterminado de 1000?

Si se requieren pasos adicionales para evitar interrumpir el proceso de inicio de sesión en una instalación de escritorio típica, se deben incluir como parte de la respuesta.

ændrük
fuente
55
Por curiosidad, ¿cuáles son las razones para cambiar una identificación de usuario?
Olivier Lalonde
14
Si normalmente intercambia datos con otros sistemas a través de NFS, o simplemente con algún método de copia que conserve el UID, será útil si usa el mismo UID para el mismo nombre de usuario en todos los sistemas.
João Pinto
João lo hizo bien. En particular, espero hacer coincidir los UID con los usuarios de Mac OS X para que un sistema de archivos compartido lleve los permisos previstos en todos los sistemas operativos.
ændrük
1
La versión actual de Nethack (3.6.0) guarda juegos que incluyen el uid actual en el nombre del archivo. Si desea sincronizar una partida guardada entre máquinas, debe hacer coincidir los uids. (usar un enlace simbólico no es práctico)
Jonathan Hartley

Respuestas:

27

El problema es que, como mencionó, no puede cambiar el UID de su usuario cuando se registra en una sesión. Tienes que usar otra cuenta de usuario para continuar.

Pero no tiene que crear una nueva cuenta de usuario, promocionarla a administrador, cerrar sesión, iniciar sesión en la nueva cuenta de administrador, cambiar el UID de su cuenta principal, cerrar sesión, iniciar sesión en su cuenta principal y luego eliminar el nuevo usuario administrador solo cambia tu UID. ;)

Puede iniciar en modo de recuperación (es una opción que aparece cuando enciende su computadora o mantiene presionada la tecla Mayús justo después de que se completen los mensajes del BIOS; Úselo ESCen máquinas Dell que ejecutan OEM-Ubuntu). Esto lo registrará en una sesión raíz. Al iniciar sesión en la raíz y no en su cuenta de usuario habitual , podrá modificar su UID.

Debido a que el modo de recuperación solo funciona en la interfaz de línea de comandos, una vez que haya iniciado sesión en una sesión raíz, deberá:

  1. Usar las instrucciones del BubbaJ para volver a montar el sistema de ficheros en modo lectura-escritura : mount -o remount,rw /.

  2. Uso de comandos de Luis Alvarado : usermod -u NEW_UID your_username.

  3. Siga las instrucciones de ddeimeke para actualizar los permisos de archivos.
  4. Luego, reinicie su computadora ( reboot), para que pueda arrancar en modo normal.
Alexandre P.
fuente
1
No funciona para Ubuntu 14.04. Después de hacer usermod -u NEW_UID your_usernamey find / -uid 1000 -exec chown -h 5000 '{}' \+, reiniciar conduce a un inicio de sesión GUI de solo sesión de conjetura.
Kay
Tal vez, los archivos ocultos en el hogar no se cambian correctamente? ¿Utiliza encriptación para su hogar?
matemáticas
Es posible que desee verificar sus archivos /etc/login.defsy /etc/adduser.confsi ha cambiado su uid fuera de las políticas proporcionadas en esos archivos de configuración. Los usuarios fuera de los límites de la política no se muestran en el bucle de inicio de sesión, pero puede cambiar la política. Ver esta respuesta
K Markey
usermod: user user_name is currently used by process 1118 @Alexandre P.
Alper
54

Puede cambiarlo en /etc/passwd, /etc/groupy /etc/shadowo utilizar una de las possibilties preferidas anteriores. Pero, lo más importante, debe cambiar la propiedad de todos los archivos que pertenecen al usuario.

Por ejemplo, si la identificación de usuario anterior es 1000 y la nueva es 5000:

find / -uid 1000 -exec chown -h 5000 {} +

Y lo mismo para la identificación del grupo (si también la cambia).

find / -gid 1000 -exec chgrp -h 5000 {} +
ddeimeke
fuente
8
Este es un punto realmente importante. Muchas cosas se romperán si sigue las técnicas dadas en las otras respuestas sin hacer esto también.
Poolie
44
Acabo de enterarme de que uno debería usar mejor sudo find / -xdev -uid 1000 -exec chown 5000 '{}' \+, de lo contrario uno incluiría datos montados ( /mntque posiblemente no sean deseados) y archivos con los que es mejor no meterse /procy /dev. Ver esta publicación
Sebastian
2
Esta no es una buena idea. Dado que / home está en un sistema de archivos diferente, ni siquiera cambiará la propiedad de sus propios archivos.
ddeimeke
En esta respuesta, debe cambiar los permisos de grupo y uid, antes de editar los archivos en / etc, ¿verdad?
MrDaniel
No importa lo que hagas primero.
ddeimeke
25

Solución completa basada en @AlexandreP. y @ddeimeke + documentación oficial. No es necesario reiniciar.

La política de Debian / Ubuntu es que si hay un usuario jimcon ID de usuario 1001, también hay un grupo jimcon ID de grupo 1001. Esta solución también actualiza esas ID de grupo.

  1. Habilite la cuenta raíz :

    sudo passwd root
    
  2. Si el usuario ha iniciado sesión, cierre sesión (también en terminales virtuales)
  3. Vaya a VT1: Ctrl-Alt-F1
  4. Inicie sesión como root y ejecútelo con el nombre de usuario y el UID antiguo / nuevo suministrado:

    # put the information we need in variables
    username=...
    old_uid=`id -u $username`  # looks up current (old) uid
    new_uid=...
    
    # update the user ID and group ID for $username
    usermod -u $new_uid $username
    groupmod -g $new_uid $username
    
    # update the file ownerships
    # NB: you cannot combine the next two chowns, or files where 
    # only the uid xor the gid matches won't be updated  
    chown -Rhc --from=$old_uid $new_uid /    # change the user IDs
    chown -Rhc --from=:$old_uid :$new_uid /  # change the group IDs
    
  5. Cerrar sesión
  6. Iniciar sesión como $username
  7. Deshabilitar la cuenta raíz :

    sudo passwd -dl root
    
l0b0
fuente
Habilitar la cuenta raíz no debería ser necesario; solo usa el modo de recuperación .
ændrük
2
Esto debería ser más rápido que reiniciar, por eso lo publiqué.
l0b0
3
En Ubuntu 14.04 y 14.10, también debe corregir los permisos de ACL extendidos en / media; de lo contrario, el montaje automático (en Nautilus / Nemo) se rompe ya que el UID anterior permanece. sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
richud.com
Esto funcionó como un encanto para mí. Sin embargo, solo tuve que cambiar el uid.
Chmike
habilitar la cuenta raíz me suena más fácil (y menos aterrador) que usar el modo de recuperación.
Jonathan Hartley
7

Si va a la consola y escribe: usermod --helpobtendrá uno de los parámetros que dice:

-u, --uid UID nuevo UID para la cuenta de usuario

así que si desea cambiar el UID para el usuario cyrex, haga lo siguiente:

usermod -u 1000 cyrex

eso cambiaría el uid para cyrex de cualquier valor que tuviera antes a 1000

Si quieres hacerlo visualmente, haz esto:

Ir

SISTEMA -> ADMINISTRACIÓN -> USUARIOS Y GRUPOS

Seleccione usted mismo de la lista y haga clic en AJUSTES AVANZADOS

UID está al final de esa ventana.

Luis Alvarado
fuente
1
Probé el método gráfico que sugirió, pero hay un mensaje que dice "No puede cambiar la identificación de usuario mientras el usuario está conectado". ¿Has probado este método?
ændrük
2
Jeje bueno eso es cierto. Lo intenté con otra cuenta. Debe iniciar sesión a través de root o cualquier otra cuenta de administrador. Luego haz la forma gráfica. Lo siento por eso.
Luis Alvarado
2
  • Ir al sistema >> Administración >> Usuarios y grupos

texto alternativo

  • Haga clic en Configuración avanzada y vaya a la pestaña Avanzada, en la parte inferior verá su identificación de usuario.
  • Cámbielo y haga clic en Aceptar.
    texto alternativo
karthick87
fuente
1
¿Debo ignorar la advertencia en su captura de pantalla, "No puede cambiar la identificación de usuario mientras el usuario está conectado"?
ændrük
Tiene que cambiarlo desde otra cuenta de usuario para deshacerse de esta advertencia.
karthick87
77
Mi pregunta es "¿Cómo puedo cambiar mi propia ID de usuario?". Si desea que su respuesta sea que debería crear un nuevo usuario solo para editar este valor, debe editar su respuesta para indicarlo.
ændrük
0

Con KDE: en el menú Cambiar configuración de usuario avanzada:

Cambiar de otro usuario no funciona para 1000, que es el usuario predeterminado.

tienes que hacerlo manualmente, mi experiencia

Skidzo
fuente
0

Primero debe iniciar sesión como root, al menos por un tiempo, así que hagamos esto posible:

sudo passwd root

Reinicie, ctrl + alt + f1 para cambiar a la consola, inicie sesión como root, haga lo siguiente (la propiedad en el directorio de inicio se encargará automáticamente):

groupmod --gid NEWGID username
usermod  --uid NEWUID username 

Para sus archivos en lugares que no sean su directorio de inicio, a esto:

sudo chown -R username:username /path/to/files

Elimine y bloquee la contraseña de root, si lo desea. (Tiendo a mantenerlo):

passwd -dl root
qed
fuente
0

He seguido de ddeimeke instrucciones con los siguientes cambios:

  1. No me desconecté y en su lugar sudo su
  2. No toqué /etc/shadow

He visto que se menciona en las otras respuestas que debe iniciar la recuperación o iniciar sesión como root. La mía era una nueva instalación de Ubuntu 14, así que estaba dispuesto a probar si funcionaría sin iniciar sesión como root. También estaba haciendo esto en una instancia EC2 sobre SSH.

KalenGi
fuente