현재 로그인한 사용자의 홈디렉토리를 변경하는 방법

현재 로그인한 사용자의 홈디렉토리를 변경하는 방법

/home/myuserName/현재 CentOS 서버에 로그인되어 있으며 홈 디렉터리를 CentOS 서버 에서 변경하고 싶습니다./var/www/html/

다음 명령을 시도했습니다.

> sudo usermod -d /var/www/html myuserName

하지만 이로 인해 오류가 발생했습니다.

usermod: user myUserName is currently logged in

답변1

짧은 답변: 당신은 할 수 없습니다.

긴 대답:

HOME디렉토리는 /etc/passwd6번째 필드에 설정됩니다. 로그인 시 읽으십시오. 쉘은 이 홈 디렉토리에서 시작됩니다.

Joe의 홈 디렉터리를 변경하는 올바른 방법은 다음과 같습니다.

  • 조를 로그오프하세요.
  • usermod -d /new/home joe 후속 세션의 홈 디렉터리를 변경 하는 데 사용됩니다 .

세션이 실행된 후 다음 두 가지 작업을 수행해야 합니다.

  • $HOME세션의 홈 디렉터리를 변경하려면 편집합니다 (모든 활성 세션에서 반복).
  • sudo vipw다음 세션 편집을 위한 홈 디렉터리

또한 권한/소유권 문제가 발생할 수 있다는 점에 유의하세요 /var/www/html.

답변2

/etc/passwd현재 로그인한 사용자의 홈 디렉터리를 변경하려면 이 파일을 편집해야 합니다 .

사용자의 홈 디렉토리를 편집하고 변경합니다 /etc/passwd.sudo vipw

vipw데이터 손상을 방지하기 위해 설정이 잠겨 있으므로 vim다른 편집기에 대한 대안을 적극 권장합니다 .vipw

답변3

변경하려는 사용자로 로그인한 경우 usermod 명령이 작동하지 않습니다.

usermod의 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

참고 usermod에서는 로그인한 사용자의 이름을 변경할 수 없습니다. 사용자의 숫자 사용자 ID를 변경하려면 이 명령을 실행할 때 지정된 사용자가 실행 중인 프로세스가 없는지 확인해야 합니다. crontab 파일의 소유자를 수동으로 변경해야 합니다. 모든 작업의 ​​소유자를 수동으로 변경해야 합니다. NIS 서버에서 NIS와 관련된 변경을 수행해야 합니다.

다른 사용자로 로그인하고 명령을 다시 실행해 보십시오.

이것이 불가능할 경우 /etc/passwd 파일을 수동으로 편집할 수 있습니다(실제로 usermod 명령이 수행하는 작업입니다). 이렇게 할 경우 실수로 어리석은 일을 저지를 경우를 대비해 파일을 반드시 백업해 두시기 바랍니다.

답변4

이 작업은 일시적으로만 수행할 수 있습니다. 이는 이 사용자로 로그인할 때마다 다음 명령을 실행해야 함을 의미합니다.

export HOME=/var/www/html

이렇게 하면 대부분의 응용 프로그램을 만들 수 있습니다.생각하다홈 디렉토리는 위에서 사용한 위치입니다.

~또한 가리키기 시작합니다 /var/www/html.

제가 사용하는 애플리케이션은 NPM과 Maven입니다.

관련 정보