Linux에서 사용자에게 초기/기본 비밀번호를 할당하는 방법은 무엇입니까?

Linux에서 사용자에게 초기/기본 비밀번호를 할당하는 방법은 무엇입니까?

방법을 설명하는 가이드를 찾았습니다.사용자 비밀번호 설정. 나는 그것을 자동화하고 사용자에게 다음과 같은 이메일을 보내려고합니다.

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이 명령에 기능을 추가했습니다. 최신 버전은 -1MD5 기반 해시를 가져오는 옵션을 사용하는 대신 SHA256 기반 해시 및 SHA512 기반 해시도 지원합니다 .-5-6


신용이 필요한 신용: 비밀번호 생성은 다음에서 적용됩니다.유사한 방법/dev/urandom대신 사용하십시오 openssl.

답변3

사용자가 추가됨작동해야 합니다(우분투에서 수행했습니다). 각 매개변수가 올바른지 확인하세요(그룹이 존재하고 bash 경로가 올바른지). 비밀번호와 사용자만으로 명령을 실행한 다음 사용할 수 있습니다.사용자 삭제제거한 다음 더 많은 매개변수를 사용하여 다시 시도하여 문제의 원인을 확인하십시오(무차별 접근 방식).

게다가새로운 사용자(man 페이지 참조) 적어도 Ubuntu에서는 일반 텍스트 비밀번호를 포함하여 passwd 파일과 같은 정보가 포함된 파일을 제공하면 이러한 사용자가 생성됩니다. 한 번에 많은 사용자를 처리할 수 있는 좋은 방법입니다.

답변4

나는 다음과 같이 작업하고 다음을 시도했습니다. myfile.txt각 줄에는 기본 비밀번호가 포함된 2줄이 포함된 텍스트 파일(예:)을 만듭니다.

그런 다음 다음을 실행하십시오.

cat myfile.txt | sudo passwd <username>

나는 그것을 시도했고 우분투에서도 작동합니다!

관련 정보