usermod를 사용하여 비밀번호를 변경하는 방법은 무엇입니까?


10

저는 서버의 최고 관리자이며 기존 사용자의 비밀번호를 변경하고 싶습니다. 어떻게해야합니까?

나는 시도했다

usermod -p 'new-password' john

그러나 그것은 효과가 없었습니까?


최선의 답은 여기에 있습니다 : askubuntu.com/a/80447/55435는 , 노트뿐만 아니라 코멘트를 체크 아웃
ryenus

답변:


17

usermod -p플래그는 암호화 된 형식에서 이미 암호로 데이터를 기대하고있다.

사용은 openssl passwd암호화 된 데이터를 생성하거나이처럼해야 할 일 :

usermod -p `openssl passwd` (USERNAME)

openssl passwd암호는 0-10 자입니다.
Onnonymous

6

작동하지 않는 이유는 usermod의 -p 옵션이 암호가 이미 암호화되어 있기 때문입니다.

에서 usermod의 매뉴얼 페이지

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

이런 식으로 암호를 설정하는 것은 권장되지 않습니다.

대신을 사용해야합니다 passwd <username>. usermod루트로 수행 해야합니다 ( 현재 로그인 한 사용자 비밀번호를 변경하지 않은 경우).

사용자 foo의 비밀번호를 변경합니다.

sudo passwd foo

새 비밀번호를 묻는 메시지가 나타납니다.

passwd만료 시간 등의 설정에 대한 자세한 내용 은 맨 페이지를 참조하십시오 .

행운을 빕니다!


6

당신은 사용할 수 있습니다 passwd:

sudo passwd USERNAME 

sudo수퍼 유저 인 경우 필요하지 않습니다


sudoroot 암호가 필요합니다 :)
Achu

@Achu : 현재 사용자 비밀번호가 필요합니다. 그러나 그는 수퍼 유저입니다.
RiaD

무엇을 superuser나타내는가?
Achu

3

usermod를 사용하여 암호를 할당하는 방법 (OP가 실제로 요청한 것)은 인수에 crypt()해시 된 암호 를 사용하는 것 -p입니다.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

그런 다음 usermod -p명령 행 인수 에서 사용하십시오 .

usermod -p ${HASH} john

2

사용자의 비밀번호를 변경하기위한 비 대화식 단일 행 명령 :

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -p작동하려면 암호화 된 비밀번호가 필요합니다. (가) 있습니다 new-password프로세스를 나열 할 수 있습니다를 누구나 볼 수 있습니다.


2

여기에 추가해야 할 것은 다음과 같습니다. 이 방법:

sudo usermod -p perl -e "print crypt("new-password","Q4")"john

매우 유사한 여러 개의 암호가 모두 작동 함을 의미합니다. 예를 들어, Oracle Linux 7.4 서버 및 Ubuntu 17.10 데스크탑에서 다음을 고려하십시오.

sudo usermod -p perl -e "print crypt("borkling","Q4")"orabuntu

지금이라면 :

수-오라 분투

"borkling"으로 시작하는 모든 암호가 작동합니다. 예 :

borkling88 borklingjars

"borkline"은 작동하지 않습니다. 이전에 언급했듯이 접두사로 "borkling"이있는 모든 암호는 암호가이 방식으로 설정 될 때도 작동하기 때문입니다.

afaik이 원하지 않는 부작용을 갖지 않는 방법은 다음과 같습니다.

(이에 대한 신용은 여기 "Sandeep"로 이동합니다 :
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )

RedHaty Linux에서 : (dodo priv를 허용하지 않으려면 "-G wheel"을 생략하십시오)

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G 휠 $ {USERNAME}

Debiany Linux에서 (Sudo priv를 원하지 않으면 -G sudo를 생략하십시오) :

sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}


1

그냥 입력

passwd

이런 식으로 일반 사용자는 루트 권한없이 자신의 암호를 변경할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.