![비밀번호를 보지 않고 스크립트에서 비대화식으로 사용자 계정을 만드는 방법은 무엇입니까?](https://linux55.com/image/5339/%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EB%B3%B4%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20%EB%B9%84%EB%8C%80%ED%99%94%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EA%B3%84%EC%A0%95%EC%9D%84%20%EB%A7%8C%EB%93%9C%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
페이지에는 다음과 같은 내용이 있습니다.man
useradd
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"