일부 사용자 정의가 포함된 Ubuntu 12.04를 사용하고 있습니다. 또한 이를 사용자 정의 우분투인 새로운 ISO로 만들겠습니다.
제가 묻고 싶은 것은 사용자 이름을 변경하는 방법입니다. 현재 홈 폴더에 많은 구성이 있습니다. 따라서 사용자 이름을 변경하여 문제를 일으키고 싶지 않습니다.
그렇다면 이를 수행하기 위한 모범 사례나 작업 흐름이 있습니까?
답변1
이것진짜올바른 방법은 무엇입니까? 사용자 "peter"를 "paul"로 변경한다고 가정해 보겠습니다.
groupadd paul
usermod -d /home/paul -m -g paul -l paul peter
이렇게 하면 해당 디렉터리와 모든 파일의 이름, 그룹, 홈 디렉터리 및 소유권과 그룹이 새 디렉터리로 변경됩니다. 원래 "paul"로 만든 사용자와 구별할 수 없는 사용자가 생성됩니다.
또 다른 방법은 파일에 있는 Peter 항목의 첫 번째 필드를 /etc/passwd
편집 하는 것입니다 . /etc/shadow
그런 다음 "peter"를 "paul"로 변경합니다 /etc/group
. 그런 다음 홈 디렉토리의 이름을 에서 으로 바꿉니다 /home/peter
. /home/paul
그런 다음 chown -R paul /home/paul
디렉토리와 그 아래의 모든 파일 및 디렉토리의 소유권과 그룹화 관계를 가져와 새 파일과 디렉토리를 얻습니다.
답변2
사용자 이름을 변경하지 않는 것이 좋습니다. 사용자 이름이 구성 파일에서 사용자의 홈 디렉터리로 정적으로 참조되는 경우 문제가 자주 발생합니다 /home/<username>
. 이는 일반적인 방식으로 작성된 경우가 거의 없으므로 일반적으로 새 사용자 이름을 만든 다음 사용자의 파일과 데이터를 새 계정으로 마이그레이션하는 것이 가장 좋습니다.
답변3
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
변화팀 이름그러나 usermod를 사용하지 마십시오. 먼저 다른 그룹(예: GID 1001)을 생성해야 하며, $HOME 디렉토리에 있는 모든 항목의 GID를 업데이트하더라도 다른 곳을 검색하고 다음을 사용하여 파일과 디렉토리를 변경해야 합니다. 이전 그룹 소유권. 대신 그룹 이름을 수동으로 변경하세요.
nano /etc/group
그리고 변화
peter:x:1000:
도착하다
paul:x:1000:
사용된 cron, at 및 파일 이름을 변경해야 합니다.다른 서비스UID 대신 사용자 이름을 사용하십시오. 사용
find /var -name "*peter*"
이 파일을 찾으려면.
너도 바꿔야지구성 파일메일 처리 애플리케이션과 같은 일부 서비스에서 사용됩니다.
마침내,스크립트"/home/peter/"를 사용하려면 편집이 필요합니다. "/home/peter/" 항목을 "$HOME"으로 변경합니다.
사용자 ID를 변경하는 데는 많은 작업이 필요하지 않으며 철저하게 수행하기만 하면 됩니다.
답변4
변경할 수 있습니다.사용자 이름을 어떻게 변경하나요?AskUbuntu에서. 이 지침은 나에게 큰 도움이 되었습니다. 구성을 유지하려면 이 질문에 대한 답변에 설명된 대로 이전 홈 디렉터리에 대한 심볼릭 링크를 만들기만 하면 됩니다.