방법을 설명하는 가이드를 찾았습니다.사용자 비밀번호 설정. 나는 그것을 자동화하고 사용자에게 다음과 같은 이메일을 보내려고합니다.
userid created with password XYZ.
request to change the initial password.
위 문서에 따르면 Python을 사용하여 암호화된 비밀번호를 생성하고 이를 usermod
다음 명령에 입력해야 합니다.
usermod -p "<encrypted-password>" <username>
이 작업을 수행하는 다른 더 쉬운 방법이 있습니까? 이 작업을 수행하기 위해 특별한 유틸리티를 다운로드하고 싶지 않습니다. 이는 가능한 한 일반적이어야 합니다.
편집하다: 위 링크에 제공된 방법도 저에게는 효과가 없는 것 같습니다.
bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist. Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.
답변1
chpasswd
이 작업을 수행하는 데 다음과 같이 사용할 수 있습니다 .
echo "username:newpassword" | chpasswd
chpasswd
편리하다면 외부 프로그램에서 파이프로 연결할 수 있지만 echo
그렇게 하면 효과가 있습니다.
편집: 쉘 스크립트에서 비밀번호를 생성한 후 설정하려면 다음을 수행할 수 있습니다.
# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd
자세한 내용은 chpasswd
다음을 참조하세요.http://linux.die.net/man/8/chpasswd
(비밀번호를 생성하는 명령은 다음에서 나옵니다.http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html)
답변2
OpenSSL을 사용하여 임의의 비밀번호(이 경우 16자)를 생성할 수 있습니다.
# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')
그런 다음 해시된 비밀번호를 입력 useradd
하거나usermod
# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>
편집하다:
이 명령은 2012년에 게시된 이후 새 버전의 OpenSSL에서 openssl passwd
이 명령에 기능을 추가했습니다. 최신 버전은 -1
MD5 기반 해시를 가져오는 옵션을 사용하는 대신 SHA256 기반 해시 및 SHA512 기반 해시도 지원합니다 .-5
-6
신용이 필요한 신용: 비밀번호 생성은 다음에서 적용됩니다.유사한 방법/dev/urandom
대신 사용하십시오 openssl
.
답변3
사용자가 추가됨작동해야 합니다(우분투에서 수행했습니다). 각 매개변수가 올바른지 확인하세요(그룹이 존재하고 bash 경로가 올바른지). 비밀번호와 사용자만으로 명령을 실행한 다음 사용할 수 있습니다.사용자 삭제제거한 다음 더 많은 매개변수를 사용하여 다시 시도하여 문제의 원인을 확인하십시오(무차별 접근 방식).
게다가새로운 사용자(man 페이지 참조) 적어도 Ubuntu에서는 일반 텍스트 비밀번호를 포함하여 passwd 파일과 같은 정보가 포함된 파일을 제공하면 이러한 사용자가 생성됩니다. 한 번에 많은 사용자를 처리할 수 있는 좋은 방법입니다.
답변4
나는 다음과 같이 작업하고 다음을 시도했습니다. myfile.txt
각 줄에는 기본 비밀번호가 포함된 2줄이 포함된 텍스트 파일(예:)을 만듭니다.
그런 다음 다음을 실행하십시오.
cat myfile.txt | sudo passwd <username>
나는 그것을 시도했고 우분투에서도 작동합니다!