/etc/passwd에서 HOME_DIR 필드가 완전히 비어 있는 사용자를 생성하는 방법은 무엇입니까?

/etc/passwd에서 HOME_DIR 필드가 완전히 비어 있는 사용자를 생성하는 방법은 무엇입니까?

내가 생각할 수 있는 가장 가까운 것은 다음과 같습니다.

useradd --home / -r --shell /sbin/nologin someuser

그러나 이렇게 하면 /etc/htpasswd에 다음과 같은 항목이 생성됩니다.

someuser:x:100:100::/:/sbin/nologin

"/"가 사라지도록 하여 다음과 같이 만들고 싶습니다.

someuser:x:100:100:::/sbin/nologin

이는 usermod를 통해 달성할 수 있습니다:

usermod -d '' someuser

그런데 제 생각에는 좀 거꾸로 된 것 같아요.

어떤 아이디어가 있나요?

답변1

우선, 저는 귀하가 그러한 사용자 계정을 만들려는 동기에 대해 매우 명확해야 한다는 Jim의 의견에 동의해야 합니다.

라고 한:

useradd -d /REPLACEME someuser && perl -p -i -e 's/\/REPLACEME//;' /etc/passwd



물론 이는 /REPLACEME가 다른 곳에서는 유효한 홈 디렉토리로 사용되지 않는다고 가정합니다. 더 복잡하지만 더 정확한 표현:

's/(someuser:.*:)\/REPLACEME(:.*)/$1$2/'

위의 useradd로 생성된 사용자만 수정되도록 합니다.

답변2

실제로 이것은 거꾸로가 아닙니다. 로그인 디렉토리가 없는 계정은 직접 로그인할 수 없습니다. 리소스와 파일을 소유할 수 있습니다. 뭐하고 지내?

useradd가 --home 없이 불평할까요?

vi 또는 vim을 사용하여 직접 사용자를 추가할 수 있습니다. 하지만 매우 조심해야 합니다. 또한 미리 그룹을 추가했습니다.

관련 정보