Ubuntu 12.04를 사용하고 있으며 일부 사용자 정의를 수행했습니다. 또한 맞춤형 우분투 인 새로운 iso로 만들 것입니다.
묻고 싶은 것은 사용자 이름을 어떻게 바꿀 수 있는지입니다. 현재 홈 폴더에 많은 구성이 있습니다. 그래서 나는 사용자 이름 변경을 망쳐 놓고 싶지 않습니다.
그렇다면 모범 사례 나 워크 플로가 있습니까?
Ubuntu 12.04를 사용하고 있으며 일부 사용자 정의를 수행했습니다. 또한 맞춤형 우분투 인 새로운 iso로 만들 것입니다.
묻고 싶은 것은 사용자 이름을 어떻게 바꿀 수 있는지입니다. 현재 홈 폴더에 많은 구성이 있습니다. 그래서 나는 사용자 이름 변경을 망쳐 놓고 싶지 않습니다.
그렇다면 모범 사례 나 워크 플로가 있습니까?
답변:
정말 올바른 방법? 사용자 'peter'를 'paul'으로 변경한다고 가정하십시오.
groupadd paul
usermod -d /home/paul -m -g paul -l paul peter
그러면 모든 파일과 함께 해당 디렉토리의 이름, 그룹, 홈 디렉토리 및 소유권과 그룹이 새 디렉토리로 변경됩니다. 원래 'paul'으로 생성 된 것과 구별 할 수없는 사용자가됩니다.
또 다른 방법은 /etc/passwd
및 /etc/shadow
파일 에서 peter 항목의 첫 번째 필드를 편집하는 것 입니다. 그런 다음에서 'peter'의 모든 항목을 'paul'으로 변경하십시오 /etc/group
. 그런 다음에서 홈 디렉토리 이름을 변경 /home/peter
하는 /home/paul
. 그런 다음 chown -R paul /home/peter
디렉토리와 그 아래의 모든 파일과 디렉토리의 소유권과 그룹을 가져 와서 새로운 디렉토리를 갖습니다.
사용자 이름을 변경하지 않는 것이 좋습니다. 이것은 일반적으로 사용자의 홈 디렉토리 형식으로 구성 파일에서 사용자 이름이 정적으로 참조 될 때 문제가 발생합니다 /home/<username>
. 이것들은 거의 일반적인 방식으로 작성되지 않으므로 일반적으로 새 사용자 이름을 만든 다음 사용자의 파일과 데이터를 새 계정으로 마이그레이션하는 것이 가장 좋습니다.
usermod 명령을 시도하십시오 .
exec sudo su
usermod --login newname oldname
변경할 수 있습니다. 사용자 이름 은 어떻게 변경합니까?를 참조하십시오 . AskUbuntu에서. 그 지시 사항은 저에게 효과적이었습니다. 구성을 유지하려면 해당 질문에 대한 답변에 설명 된대로 기존 홈 디렉토리에 대한 심볼릭 링크를 만드십시오.
usermod를 사용하여 사용자 이름 및 홈 디렉토리 를 변경하십시오 . 사용자 peter를 paul로 변경하십시오.
usermod -l paul peter
grep paul /etc/passwd /etc/shadow # check
홈 디렉토리를 변경하고 모든 것을 이동하십시오 (필요한 경우 생성됨)
usermod -m -d /home/paul paul
grep paul /etc/passwd # check
그룹 이름을 변경 하되, 먼저 다른 그룹 (예 : GID 1001)을 만들어야하므로 $ HOME 디렉토리 내의 모든 항목에 대해 GID를 업데이트하지만 usermod를 사용하지 마십시오. 이전 그룹 소유권이있는 다른 파일 및 디렉토리 대신 그룹 이름을 수동으로 변경하십시오.
nano /etc/group
그리고 변화
peter:x:1000:
에
paul:x:1000:
cron, at 및 UID 대신 사용자 이름을 사용하는 기타 서비스 에서 사용하는 파일 이름을 변경해야합니다 . 용도
find /var -name "*peter*"
이 파일들을 찾으십시오.
메일 처리 응용 프로그램과 같은 일부 서비스에서 사용 하는 구성 파일도 변경해야 합니다.
마지막으로 "/ home / peter /"를 사용하는 스크립트 를 편집해야합니다. "/ home / peter /"의 발생을 "$ HOME"으로 변경하십시오.
사용자 아이덴티티를 변경하는 것은 많은 일이 아니므로 철저히해야합니다.
usermod
명령을 하나로 결합 할 수 /etc/gshadow
있으며 함께 편집해야합니다 /etc/group
. : GNU 변경할 수 있습니다 그들 중 두 사람은 나오지도 sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}
여전히 더 나은 또는 - sudo groupmod -n newname oldname
. 사용자의 crontab 이름 (있는 경우)을 수동으로 변경해야하는 등의 다른 문제를 강조하기 위해 잘 수행했습니다.