it-swarm-ko.tech

유닉스 사용자 계정의 이름을 바꿀 수 있습니까?

다른 사람이 사용하는 컴퓨터에 우분투를 설치했습니다. 본인의 이름으로 계정 이름을 변경했지만 사용자 이름이 아닌 전체 이름 만 변경됩니다. 사용자 이름은 오른쪽 상단 (fast-user-switch-applet). Unix 사용자 계정의 이름을 바꾸는 명령이 있습니까?

새 이름으로 새 사용자 계정을 만든 다음 "오래된"홈의 모든 항목을 새 계정의 홈으로 복사하려고합니다. 충분할까요? 그러나 파일에 이전 계정의 권한 소유자가 있다고 생각합니까? 그러니 chown -R newuser ~?

이 작업을 수행하는 더 간단하고 권장되는 방법이 있습니까?

48
Yann Dìnendal

시험

usermod --move-home --login <new-login-name> --home <new-home-dir> <old-login-name>

--move-home 옵션은 이전 홈 디렉토리의 내용을 --home 옵션이 존재하지 않는 경우 생성됩니다.

기본 사용자 그룹이 new-login-name, --gid <new-login-name> 위 명령에 해당하지만 그룹이 이미 존재해야합니다.

자세한 내용은 매뉴얼 페이지를 참조하십시오.

man usermod
52
gvkv

사용자 이름을 바꿀 수는 있지만 usermod가 일부 작업을 수행함 이지만 문제가 발생할 수 있습니다. 다음은 사용자 이름이 나타날 수있는 장소 목록입니다. 나는이 목록이 철저하다고 주장하지는 않는다.

  • /etc/passwd 및 관련 파일의 사용자 항목 (예 : /etc/shadow, /etc/master.passwd).
  • /etc/group (및 /etc/gshadow)의 항목을 그룹화하십시오.
  • /etc/sudoers의 항목 일 수 있습니다.
  • 시스템 사서함 (일반적으로 /var/mail/$USER 또는 /var/spool/mail/$USER).
  • 크론 탭, 일반적으로 /var/spool/cron/crontabs/$USER
  • at 작업 (/var/spool/cron/atjobs/*)

홈 디렉토리는 훨씬 더 많은 위치에 나타날 수 있습니다. 많은 응용 프로그램이 다양한 도트 파일로 절대 경로를 작성합니다. 홈 디렉토리의 이름도 변경하기로 결정한 경우 (사용자 alice의 홈 디렉토리가 /home/alice 일 필요는 없지만 /home/bob가 혼동 될 수 있습니다) 그들을 돌봐야합니다. 전 세계 교체는 대부분의 응용 프로그램에서 작동하지만 약속하지는 않습니다. 가능하면 이전 홈 디렉토리 이름을 이름이 바뀐 디렉토리에 대한 심볼릭 링크로 유지하십시오.

데비안 시스템에서 사용한 명령을 요약하면 다음과 같습니다.

groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD

마지막 두 명령은 이전 홈 디렉토리의 이름에서 심볼릭 링크를 만듭니다 (/ home/OLD)를 새 이름 (/ home/신규).

4
Soul Singin

위의 모든 것은 우아한 방법이지만, 새로운 사용자를 만들고, 처음부터 모든 홈 컨텐츠를 복사하면 안되는 이유는 무엇입니까? 물론 서비스 (응용 프로그램) 계정에 관한 것이면 아마도 모범 사례가 아닐 것입니다.

1
AdrianP