내가 생각할 수 있는 가장 가까운 것은 다음과 같습니다.
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을 사용하여 직접 사용자를 추가할 수 있습니다. 하지만 매우 조심해야 합니다. 또한 미리 그룹을 추가했습니다.