특정 작업 디렉토리 없이 시스템 사용자의 홈 디렉토리를 설정할 때 가장 좋은 방법은 무엇입니까?
특정 바이너리나 스크립트를 실행하려면 사용자를 생성해야 하는 경우가 많습니다. 내 바이너리가 /usr/bin에 있고 내 사용자가 바이너리를 실행하기 위해 내 init 스크립트에서만 사용된다고 가정하면 다음을 간단히 실행할 수 있습니다.
useradd --no-create-home
아니면 /var, /tmp 또는 다른 디렉터리에 디렉터리를 지정하는 것이 더 안전합니까?
답변1
유사한 것을 생성하여 모든 시스템 사용자에 대해 사용하거나 홈 디렉토리와 /var/empty
유사한 것을 지정할 수 있습니다. /dev/null
나는 하나의 바이너리(보통 서비스)만 실행하는 시스템 사용자를 위해 후자를 사용합니다. 프로그램이 무언가를 저장하려고 하면 프로그램 이름의 /srv/app
위치를 지정 app
하고 해당 디렉토리를 만듭니다.
이와 같은 프로그램에서 useradd
홈 디렉터리를 지정해야 하는 경우 /var/empty
디렉터리를 root:root 0755로 지정하고 만듭니다. 그렇지 않은 경우 파일이든 디렉터리이든 유효하지 않지만 분명히 존재하는 항목을 지정하세요. 또한 /bin/false
쉽게 재정의할 수 있지만 a를 로그인 셸로 지정하는 것이 좋습니다 .
또는 /
PWD 지점이 어디에 있든 관계없이 무언가를 작성하지 않으려면 in /
과 마찬가지로 정상입니다 /var/empty
.