현재 다른 사람이 사용하고 있는 컴퓨터에 Ubuntu를 설치했습니다. 나는 그녀의 이름을 따서 계정 이름을 바꾸었지만 사용자 이름은 변경되지 않고 전체 이름만 변경되었습니다. 사용자 이름은 여전히 오른쪽 상단(가운데 fast-user-switch-applet
)에 표시됩니다. Unix 사용자 계정의 이름을 바꾸는 명령이 있습니까?
새 이름으로 새 사용자 계정을 만든 다음 "이전" 홈 디렉터리의 모든 내용을 새 계정의 홈 디렉터리로 복사하는 방법을 생각했습니다. 충분한가? 그런데 그 파일이 이전 계정의 권한 소유자를 갖게 될 것이라고 생각했습니까? 그래서 내가 무엇을해야하니 chown -R newuser ~
?
이 작업을 수행하는 더 쉽고 권장되는 방법이 있습니까?
답변1
노력하다
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
답변2
사용자의 이름을 바꿀 수 있지만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
). 전역 교체는 대부분의 애플리케이션에서 작동하지만 약속할 수는 없습니다. 가능하다면 이전 홈 디렉토리 이름을 이름이 바뀐 디렉토리에 대한 심볼릭 링크로 유지하십시오.
답변3
다음은 데비안 시스템에서 사용하는 명령을 요약한 것입니다:
groupadd NEW
usermod -l NEW -m -d /home/NEW -g NEW OLD
chfn -f "New Fullname" NEW
cd /home
ln -s NEW OLD
마지막 두 명령은 이전 홈 디렉터리의 이름에서 심볼릭 링크를 만듭니다(/집/오래된)를 새 이름(/홈/새).
답변4
위의 방법은 모두 훌륭한 접근 방식입니다. 하지만 새 사용자를 만들고 첫 번째 사용자의 모든 홈페이지 콘텐츠를 복사하면 그게 끝이겠습니까? 물론 서비스(애플리케이션) 계정에 관한 것이라면 이는 모범 사례가 아닐 수도 있습니다.