자신의 사용자 ID를 어떻게 변경할 수 있습니까?


49

내 시스템에는 한 명의 사용자 만 있습니다. 사용자 ID를 기본값 1000에서 어떻게 변경합니까?

일반적인 데스크탑 설치에서 로그인 프로세스가 중단되는 것을 피하기 위해 필요한 추가 단계가있는 경우 해당 단계를 답변의 일부로 포함해야합니다.


5
호기심으로 사용자 ID를 변경하는 이유는 무엇입니까?
— Olivier Lalonde

14
일반적으로 NFS를 통해 다른 시스템과 데이터를 교환하거나 UID를 유지하는 일부 복사 방법을 사용하는 경우 시스템 전체에서 동일한 사용자 이름으로 동일한 UID를 사용하면 도움이됩니다.
— João Pinto

João가 맞았습니다. 특히, 공유 파일 시스템이 운영 체제 전체에서 원하는 권한을 갖도록 UID를 Mac OS X의 사용자와 일치 시키려고합니다.
— ændrük

1
Nethack (3.6.0)의 현재 버전은 파일 이름에 현재 uid를 포함한 게임을 저장합니다. 컴퓨터간에 저장 게임을 동기화하려면 uid와 일치해야합니다. (symlink를 사용하는 것은 실용적이지 않습니다)
— Jonathan Hartley

답변:


27

문제는 언급했듯이 사용자가 세션에 로그인 할 때 UID를 변경할 수 없다는 것입니다. 계속하려면 다른 사용자 계정을 사용해야합니다.

그러나 새 사용자 계정을 만들거나 관리로 승격, 로그 아웃, 새 관리자 계정으로 로그인, 기본 계정의 UID 변경, 로그 아웃, 기본 계정으로 로그인 한 다음 새 관리자를 삭제할 필요는 없습니다. UID 만 변경하면됩니다. ;)

복구 모드 로 부팅 할 수 있습니다 (컴퓨터를 시작할 때 나타나는 옵션이거나 BIOS 메시지가 완료된 직후 Shift 키를 누르 ESC십시오 (OEM-Ubuntu를 실행하는 Dell 컴퓨터에서 사용 )). 루트 세션에 로그인됩니다. 일반적인 사용자 계정이 아닌 루트로 로그인 하면 UID를 수정할 수 있습니다.

복구 모드는 명령 행 인터페이스에서만 작동하므로 일단 루트 세션에 로그인하면 다음을 수행해야합니다.

  1. 사용하여 읽기 - 쓰기 모드에서 루트 파일 시스템을 다시 마운트 BubbaJ의 지침을 : mount -o remount,rw /.

  2. 사용 루이스 알바라도의 명령을 : usermod -u NEW_UID your_username.

  3. ddeimeke의 지침 에 따라 파일 권한을 업데이트하십시오.
  4. 그런 다음 컴퓨터를 재부팅하여 ( reboot) 일반 모드로 부팅 할 수 있습니다.

1
Ubuntu 14.04에서는 작동하지 않습니다. usermod -u NEW_UID your_username및을 수행 한 후 find / -uid 1000 -exec chown -h 5000 '{}' \+재부팅하면 추측 세션 전용 GUI 로그인이 발생합니다.
— Kay

어쩌면 집에 숨겨진 파일이 제대로 변경되지 않았습니까? 집에 암호화를 사용하십니까?
— math

해당 구성 파일에 제공된 정책 이외의 UI를 변경 한 경우 파일 /etc/login.defs과 /etc/adduser.conf파일 을 확인할 수 있습니다. 정책 제한을 벗어난 사용자는 로그인 루프에 표시되지 않지만 정책을 변경할 수 있습니다. 이 답변
— K Markey

usermod: user user_name is currently used by process 1118 @Alexandre P.
— alper

54

당신은 그것을에서 변경할 수 있습니다 /etc/passwd, /etc/group그리고 /etc/shadow하거나 위의 선호 possibilties 중 하나를 사용합니다. 그러나 가장 중요한 것은 사용자에게 속한 모든 파일의 소유권을 변경해야합니다.

예를 들어, 이전 사용자 ID가 1000이고 새 사용자 ID가 5000 인 경우 :

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

그리고 그룹 ID에 대해서도 동일합니다 (변경할 경우).

find / -gid 1000 -exec chgrp -h 5000 {} +

8
이것은 정말 중요한 포인트입니다. 이 작업을 수행하지 않고 다른 답변에 제공된 기술을 따르면 많은 일이 중단됩니다.
— poolie

4
난 그냥 하나 더 사용해야 배운 sudo find / -xdev -uid 1000 -exec chown 5000 '{}' \+다른 하나는 마운트 (데이터 포함 할 것, /mnt에서와 가능성 원치 않는 인) 파일 당신이 더 엉망 /proc와 /dev. 이 게시물
— Sebastian

2
이것은 좋은 생각이 아닙니다. / home이 다른 파일 시스템에있는 경우 자신의 파일 소유권도 변경하지 않습니다.
— ddeimeke

이 답변에서 / etc의 파일을 편집하기 전에 그룹 및 uid 권한을 변경해야합니다.
— MrDaniel

중요하지 않습니다. 먼저 무엇을해야합니다.
— ddeimeke

25

@AlexandreP를 기반으로 한 완벽한 솔루션. 그리고 @ddeimeke + 공식 문서. 재부팅이 필요 없습니다.

데비안 / 우분투 정책은 jim사용자 ID를 가진 사용자 가있는 경우 그룹 ID를 가진 그룹 1001도 있다는 것입니다 . 이 솔루션은 해당 그룹 ID도 업데이트합니다.jim1001

  1. 루트 계정을 활성화하십시오 :

    sudo passwd root
    
  2. 사용자가 로그인 한 경우 로그 아웃하십시오 (가상 터미널에서도).
  3. VT1로 이동 : Ctrl-Alt-F1
  4. 루트로 로그인하고 제공된 사용자 이름 및 이전 / 새 UID를 사용하여이를 실행하십시오.

    # 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. 로그 아웃
  6. 로 로그인 $username
  7. 루트 계정을 비활성화하십시오 .

    sudo passwd -dl root
    

루트 계정을 활성화 할 필요는 없습니다. 복구 모드 만 사용하십시오 .
— ændrük

2
재부팅보다 속도가 빠르므로 게시했습니다.
— l0b0

3
Ubuntu 14.04 및 14.10에서는 / media에서 확장 ACL 권한을 수정해야합니다. sudo setfacl -m "u:<NEWUID>:r-x" /media/<USERNAME> sudo setfacl -x "u:<OLDUID>" /media/<USERNAME>
— richud.com

이것은 저에게 매력처럼 작용했습니다. 그러나 UID 만 변경해야했습니다.
— chmike

복구 모드를 사용하는 것보다 루트 계정을 사용하는 것이 더 쉽고 무섭지 않습니다.
— Jonathan Hartley

7

콘솔로 이동하여 입력 usermod --help하면 다음과 같은 매개 변수 중 하나가 나타납니다.

-u, --uid UID 사용자 계정의 새 UID

cyrex 사용자의 UID를 변경하려면 다음을 수행하십시오.

usermod -u 1000 cyrex

그것은 cyrex의 uid를 이전의 값에서 1000으로 바꿀 것입니다.

시각적으로 수행하려면 다음을 수행하십시오.

이동

시스템-> 관리-> 사용자 및 그룹

목록에서 자신을 선택하고 고급 설정을 클릭하십시오

UID는 해당 창의 끝에 있습니다.


1
제안한 그래픽 방법을 시도했지만 "사용자가 로그인 한 상태에서 사용자 ID를 변경할 수 없습니다"라는 메시지가 나타납니다. 이 방법을 테스트 했습니까?
— ændrük

2
잘 그렇습니다. 다른 계정으로 시도했습니다. 루트 또는 다른 관리자 계정을 통해 로그인해야합니다. 그런 다음 그래픽 방식으로 수행하십시오. 그 죄송합니다.
— Luis Alvarado

2
  • Goto System >> 관리 >> 사용자 및 그룹

대체 텍스트

  • 클릭 고급 설정 및 고토 고급 당신이 당신의 사용자 ID를 볼 수 아래에서이 탭을.
  • 변경하고 확인을 클릭하십시오.
    대체 텍스트

1
스크린 샷에서 "사용자가 로그인 한 상태에서는 사용자 ID를 변경할 수 없습니다"라는 경고를 무시해야합니까?
— ændrük

이 경고를 제거하려면 다른 사용자 계정에서 변경해야합니다.
— karthick87

7
제 질문은 " 자신의 사용자 ID를 어떻게 변경할 수 있습니까?"입니다. 이 값을 편집하기 위해 새 사용자를 만들어야한다는 답변을 원한다면 답변을 편집하여 표시해야합니다.
— ændrük

0

KDE 사용 : 고급 사용자 설정 변경 메뉴에서 :

다른 사용자로부터 변경하면 기본 사용자 인 1000에서는 작동하지 않습니다.

수동으로해야합니다-내 경험


0

먼저 최소한 잠시 동안 루트로 로그인해야하므로이를 가능하게하십시오.

sudo passwd root

재부팅, ctrl + alt + f1 콘솔로 전환하고 루트로 로그인하여 다음을 수행하십시오 (home 디렉토리의 소유권은 자동으로 처리됩니다).

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

홈 디렉토리 이외의 장소에있는 파일의 경우 :

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

원하는 경우 루트 암호를 삭제하고 잠급니다. (나는 그것을 유지하는 경향이있다) :

passwd -dl root

0

다음 변경 사항으로 ddeimeke의 지침을 따랐 습니다 .

  1. 로그 아웃하지 않고 대신 sudo su
  2. 나는 만지지 않았다 /etc/shadow

다른 답변에서 부팅으로 부팅하거나로 로그인해야한다고 언급했습니다 root. 내 새로운 Ubuntu 14 설치 였으므로로 로그인하지 않고 작동하는지 테스트 할 의향이있었습니다 root. 또한 SSH를 통해 EC2 인스턴스 에서이 작업을 수행했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.