존재하지 않는 사용자의 홈 디렉토리를 이동하시겠습니까?

존재하지 않는 사용자의 홈 디렉토리를 이동하시겠습니까?

얼마 전 우리는 기존 CentOs 설치에서 RedHat으로 서비스를 마이그레이션했습니다. 이 프로세스의 일부는 /home디렉터리를 새 설치에 복사하는 것입니다.

새로운 RedHat 설치에는 이전 CentOs 설치보다 사용자 수가 적습니다. /home사용자가 없는 디렉토리 를 /home/abandoned.

이것이 어떻게 달성될 수 있습니까?

한 번의 수술로 끝내고 싶습니다. 이 /home/abandoned디렉토리는 임시 디렉토리입니다. 사용자가 아닌 모든 디렉터리가 필요하지 않다고 판단되면 결국 해당 디렉터리를 삭제하게 됩니다.

이는 일회성 프로세스이므로 매우 유연하거나 멋질 필요는 없습니다.

편집하다

나는 다음이 효과가 있을 것이라고 믿지만 여기 사람들의 의견 없이는 그것을 실행하고 싶지 않습니다. 이것이 받아들일 수 있는 것 같나요?find /home -maxdepth 1 -nouser -type d -exec mv {} /home/abandoned/. \;

/편집하다

답변1

집으로 cd하는 것을 잊지 마십시오. /에서 마지막 명령을 실행하고 싶지는 않을 것입니다.

사용자가 없는 모든 디렉터리를 나열합니다.

cd /home ; find -type d -maxdepth 1 -nouser

위험한다음 사항을 확인한 후 이동하세요.

cd /home ; mkdir abandoned; find -type d -maxdepth 1 -nouser -exec mv -iv \{\} 'abandoned' \;

답변2

일반적으로 사용자의 /home 디렉토리 이름은 사용자의 사용자 이름을 따서 지정됩니다. 간단한 사전 확인으로 /etc/passwd의 사용자 이름과 비교하여 /home의 디렉터리 이름을 확인할 수 있습니다. /etc/passwd에서 일치하는 레코드를 찾지 못한 경우 find 명령의 -nouser 매개변수를 사용하여 의사결정 프로세스를 추가로 확인할 수 있습니다.

관련 정보