사용자 이름을 변경하려고 할 때 터미널은 사용자가 현재 프로세스에서 사용 중임을 알려줍니다


16

그러나 다음 명령을 실행 한 후 여기의 조언에 따라 사용자 이름을 변경하려고합니다 .

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

터미널은 다음과 같이 응답합니다.

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

그리고 사용자 이름은 동일하게 유지됩니다. 아무도 내가 어떻게 고칠 수 있고 결국 내 사용자 이름을 변경할 수 있는지 알고 있습니까?

답변:


8

인용 man usermod:

CAVEATS
   You must make certain that the named user is not executing any 
   processes when this command is being executed
   if the user's numerical user ID, the user's name, or the user's home 
   directory is being changed.  usermod
   checks this on Linux, but only check if the user is logged in 
   according to utmp on other architectures.

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

또한 루트로 실행하지 않는 것에 주목합니다. 루트로 실행하거나 "sudo usermod"로 실행하십시오.


3
다시 시작하지 않고 프로세스를 종료 할 수 없으면 다음 명령을 결합하십시오.kill -9 23162 && sudo usermod -l TheNameIWantToChange -d /home/TheNameIWantToChange -m CurrentName
Richard Frank

2
프로그램 usermod이 의도적으로 중단 된 것 같습니다. 사용자 관리가 LDAP 서버에서 수행되는 경우 사용자 속성 변경은 항상 가능하며 실행중인 시스템에 의존하지 않습니다. 내가 사용 Ansible 사용하고 usermod사용자가 차단 된 변경에 기록하기 때문에, 구멍 시스템이 신뢰할하고 있습니다.
ceving

1

다른 사용자와 명령을 실행해야한다고 생각합니다. 루트 또는 다른 사용자로 로그인 한 후 다시 시도하십시오. 변경하려는 사용자와 함께 x 창에 있으면 명령이 실패한 것으로 논리적으로 들립니다.


1

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

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


0

usermod를 사용하는 것과 동일한 문제가 발생했습니다. 홈 디렉토리의 내용을 새 현지화로 이동시키는 -m 매개 변수를 사용하여 수정했습니다. 이 옵션을 -d와 함께 사용하십시오 (user 기본 디렉토리를 수정하십시오).

man usermod 명령을 볼 것을 제안합니다


0

다음 단계를 시도하십시오 :

  1. 루트 사용자의 비밀번호를 설정하십시오.

sudo passwd 루트

  1. 우분투 재부팅
  2. 부팅 후 "루트"로 로그인-> 우분투는 현재 사용자에 대한 프로세스를 생성하지 않습니다.
  3. 사용자 이름 변경

    usermod -l newuser -d / home / newuser -m olduser

  4. / home 디렉토리에서 새 사용자 이름으로 폴더 이름을 확인하여 사용자 이름이 변경되었는지 확인하십시오.

-1

로그인 한 사용자의 사용자 이름을 변경해서는 안됩니다. 대신 모든 사용자 프로세스를 종료하고 연결을 끊고 다른 사용자로 로그인 한 다음 이름을 바꿔야합니다.

작업이 너무 많은 것 같으면 변경 사항을 핫 와이어 할 수 있습니다. https://medium.com/@deltazero/linux-howto-rename-currently-operating-user-f8fae62db110

다음과 같이 작동합니다.

# your new username
newuser=dave

# root-run these all at once
sudo su -c "\
  sed -i s/$USER/$newuser/g /etc/group \
  && sed -i s/$USER/$newuser/g /etc/shadow \
  && sed -i s/$USER/$newuser/g /etc/passwd \
  && mv /home/$USER/ /home/$newuser"

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