사용자 이름을 변경하려고 하면 터미널에서 해당 사용자가 현재 프로세스에서 사용되고 있다고 알려줍니다.

사용자 이름을 변경하려고 하면 터미널에서 해당 사용자가 현재 프로세스에서 사용되고 있다고 알려줍니다.

제안된 대로 내 사용자 이름을 변경하려고 합니다.여기그러나 다음 명령을 실행한 후:

CurrentName@HostName ~ $ sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName

터미널 응답:

CurrentName@HostName ~ $ usermod: user CurrentName is currently used by process 2491

그리고 사용자 이름은 동일하게 유지됩니다. 이 문제를 해결하고 사용자 이름을 변경하는 방법을 아는 사람이 있나요?

답변1

인용하자면 man usermod:

지침

사용자의 숫자 사용자 ID, 사용자 이름 또는 사용자 홈 디렉터리를 변경하는 경우 이 명령을 실행할 때 지정된 사용자가 실행 중인 프로세스가 없는지 확인해야 합니다. Linux에서는 이를 확인하되, usermod다른 아키텍처를 기반으로 사용자가 로그인했는지만 확인하세요.utmp

따라서 이름을 바꾸려는 사용자가 로그인되어 있지 않은지 확인해야 합니다.

root또한 으로 실행하지 않았 root거나 sudo usermod.

답변2

다음 단계를 시도해 보세요.

  1. 루트 사용자의 비밀번호를 설정합니다:
    sudo passwd root
    
  2. 우분투 다시 시작
  3. root부팅 후 로그인하세요. 이렇게 하면 Ubuntu가 현재 사용자에 대한 프로세스를 생성하지 않습니다.
  4. 사용자 이름 변경
    usermod -l newuser -d /home/newuser -m olduser
    
  5. 디렉토리에서 새 사용자 이름의 폴더 이름을 확인하여 사용자 이름이 변경되었는지 확인하십시오 /home.

답변3

알고 있는 파일을 수동으로 편집하거나(나쁨) 비밀번호를 여는 대신 root(매우 나쁨) at.을 사용하여 파일을 읽고 man at전체 경로()를 사용하세요.usermodtype -p usermod

sudo at "now +5 minutes"
your usermod command goes here
^D

^DCtrl-D

그런 다음 빠르게 로그아웃하고 7분 정도 기다린 후 로그인하세요.

답변4

이것은 주로 Ubutu의 문제입니다. 로그인할 루트 계정이 없습니다. 그래서 이것은 모순을 만듭니다. 저는 sudoer 그룹의 사용자입니다. uid를 변경할 수 없습니다.

이것이 최선의 해결책인지 확실하지 않습니다. 먼저 가짜 계정인 foo를 만들어 sudo 목록에 추가합니다. 그런 다음 foo 계정에 로그인하고 usermod -g MYOWNGID mylogin을 실행했습니다.

관련 정보