자신의 사용자 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.