비밀번호를 보지 않고 스크립트에서 비대화식으로 사용자 계정을 만드는 방법은 무엇입니까?

비밀번호를 보지 않고 스크립트에서 비대화식으로 사용자 계정을 만드는 방법은 무엇입니까?

페이지에는 다음과 같은 내용이 있습니다.manuseradd

http://linux.die.net/man/8/adduser

-p, --password PASSWORD 암호화된 비밀번호, crypt(3)에 의해 반환됩니다. 기본값은 비밀번호를 비활성화하는 것입니다. 참고: 프로세스를 나열하는 사용자에게 비밀번호(또는 암호화된 비밀번호)가 표시되므로 이 옵션은 권장되지 않습니다.

비밀번호가 시스템의 비밀번호 정책을 준수하는지 확인해야 합니다.

하지만 계정을 만드는 것 외에 다른 방법은 없는 것 같습니다. 또한 기본적으로 비밀번호는 비활성화되어 있다고 합니다. 이는 무엇을 의미합니까?

나는 데비안 Wheezy를 사용하고 있습니다

답변1

이 스크립트에서 가져옴https://gist.github.com/Fluidbyte/6321547

프로그램과 상호작용할 수 있는 Expect라는 훌륭한 언어가 있습니다. 이것이 당신이 찾고 있는 것입니다. 언제든지 이 설정을 수정하여 외부 소스에서 사용자 이름과 비밀번호를 얻을 수 있습니다.

#!/usr/bin/expect

set user "username"
set password "password"

send "useradd -m $user\r"

# Expect prompt
expect "$"

# Set password
send "passwd $user\r"

# Expect password prompt and send pass
expect "ass"
send "$password\r"

# Expect confirm
expect "ass"
send "$password\r"

관련 정보