메뉴 닫기

리눅스 passwd 명령어 사용법, 비밀번호 변경과 설정 완벽 가이드

리눅스 passwd 명령어 사용법, 비밀번호 변경과 설정 완벽 가이드

🔐 초보자도 쉽게 배우는 리눅스 사용자 비밀번호 변경 방법과 실전 팁

서버나 개발 환경에서 보안을 강화하려면 계정 비밀번호 관리는 필수입니다.
특히 리눅스에서는 passwd 명령어가 핵심 도구로, 본인 계정의 비밀번호뿐 아니라 루트 권한으로 다른 사용자의 비밀번호까지 설정할 수 있습니다.
하지만 초보자는 사용법이 낯설어 잘못 입력해 계정 잠금이나 로그인 불가 상황을 겪기도 하죠.
그래서 이번 글에서는 passwd 명령어의 기본 구조부터 다양한 활용법, 주의사항까지 친절하게 안내해 드립니다.
명령어를 처음 접하는 분도 실전에서 바로 적용할 수 있도록 단계별로 정리해 보겠습니다.

이 글에서는 passwd 명령어의 작동 원리, 옵션별 기능, 실제 비밀번호 변경 예시, 그리고 보안을 강화하기 위한 추가 팁까지 모두 다룹니다.
루트(root) 권한이 필요한 상황과 그렇지 않은 경우의 차이, 비밀번호 정책 설정 방법까지 살펴보며, 실무 환경에서 안전하게 활용하는 방법을 배울 수 있습니다.
마지막에는 자주 묻는 질문과 문제 해결 가이드도 함께 정리했으니, 읽고 나면 리눅스 계정 보안에 한층 자신감이 생길 것입니다.



🔍 passwd 명령어란?

리눅스에서 passwd 명령어는 사용자 계정의 비밀번호를 설정하거나 변경하는 기본 도구입니다.
이 명령어는 단순히 비밀번호를 바꾸는 기능뿐만 아니라, 계정의 보안 상태를 점검하고 비밀번호 만료일을 관리하는 기능도 함께 제공합니다.
보통 일반 사용자는 자신의 비밀번호를 변경할 때 사용하며, 루트(root) 권한을 가진 관리자는 다른 사용자의 비밀번호를 변경하거나 계정을 잠그는 등의 작업을 수행할 수 있습니다.

이 명령어를 실행하면, 입력한 새 비밀번호가 /etc/shadow 파일에 암호화된 형태로 저장됩니다.
이는 시스템 보안을 위해 매우 중요한 과정이며, SHA-512 같은 강력한 해시 알고리즘이 적용됩니다.
따라서 외부에서 비밀번호를 직접 확인하는 것은 불가능하며, 안전하게 관리됩니다.

📜 passwd 명령어 기본 구조

CODE BLOCK
passwd [옵션] [사용자명]

기본적으로 passwd만 입력하면 현재 로그인한 계정의 비밀번호 변경을 시도합니다.
사용자명을 지정하면 해당 계정의 비밀번호를 변경할 수 있으며, 이 경우 루트 권한이 필요합니다.

  • 🔑루트 권한이 있으면 모든 사용자 계정 비밀번호 변경 가능
  • 🛡️비밀번호는 /etc/shadow에 암호화되어 저장
  • 비밀번호 만료일 및 정책도 함께 관리 가능

💡 TIP: 보안을 위해 정기적으로 비밀번호를 변경하고, 동일한 비밀번호를 여러 계정에서 재사용하지 않는 습관이 필요합니다.

🖊️ 기본 비밀번호 변경 방법

리눅스에서 현재 로그인한 계정의 비밀번호를 변경하는 가장 간단한 방법은 passwd 명령어를 단독으로 실행하는 것입니다.
이 경우 루트 권한이 필요하지 않으며, 본인 계정의 비밀번호만 수정할 수 있습니다.
명령어를 실행하면 시스템은 현재 비밀번호를 먼저 확인하고, 이후 새 비밀번호를 두 번 입력하도록 요구합니다.

⌨️ 비밀번호 변경 절차

CODE BLOCK
$ passwd
Changing password for username.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

위와 같은 절차를 거치면 비밀번호 변경이 완료됩니다.
만약 현재 비밀번호를 잘못 입력하면 변경이 중단되며, 보안을 위해 화면에 비밀번호가 표시되지 않습니다.

📌 비밀번호 생성 시 주의사항

  • 🔒대문자, 소문자, 숫자, 특수문자를 조합
  • 📏최소 8자 이상 길이 권장
  • 🚫사전에 존재하는 단어나 연속된 숫자 사용 금지

⚠️ 주의: 동일한 비밀번호를 여러 서버나 계정에서 재사용하면 보안 위험이 크게 증가합니다.



👤 다른 사용자 비밀번호 변경

리눅스에서 다른 사용자의 비밀번호를 변경하려면 루트(root) 권한이 필요합니다.
이는 보안상의 이유로, 일반 사용자가 임의로 다른 계정의 비밀번호를 바꾸는 것을 방지하기 위해서입니다.
루트 권한으로 passwd 명령어를 실행하면, 해당 사용자의 현재 비밀번호를 몰라도 바로 새 비밀번호를 설정할 수 있습니다.

⚡ 다른 사용자 비밀번호 변경 명령어 예시

CODE BLOCK
# passwd username
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

위 명령어에서 username 부분은 비밀번호를 변경하려는 계정의 사용자명으로 바꿉니다.
이 경우 현재 비밀번호 입력 단계 없이 곧바로 새 비밀번호를 지정하게 됩니다.

🔒 계정 잠금 및 잠금 해제

루트 권한으로 passwd 명령어를 사용할 때는 계정을 잠그거나 잠금 해제하는 기능도 활용할 수 있습니다.
예를 들어, 특정 계정의 로그인을 일시적으로 제한하고 싶다면 -l 옵션을, 다시 활성화하려면 -u 옵션을 사용합니다.

CODE BLOCK
# passwd -l username   # 계정 잠금
# passwd -u username   # 계정 잠금 해제

💡 TIP: 계정을 장기간 사용하지 않거나, 의심스러운 로그인 시도가 있는 경우 계정을 잠궈 두면 보안을 강화할 수 있습니다.

⚙️ 비밀번호 정책과 보안 설정

리눅스 시스템에서는 passwd 명령어와 함께 비밀번호 정책을 설정해 보안을 강화할 수 있습니다.
비밀번호 변경 주기, 최소 길이, 복잡성 요구사항 등을 지정하면 무분별한 비밀번호 사용을 막고, 해킹 위험을 줄일 수 있습니다.
이러한 정책은 주로 /etc/login.defs/etc/pam.d/ 설정 파일을 통해 관리됩니다.

📆 비밀번호 만료일 설정

비밀번호를 일정 주기로 변경하도록 강제하려면 chage 명령어를 사용합니다.
이를 통해 비밀번호의 최대 사용 기간, 최소 변경 간격, 만료일 알림 시점을 지정할 수 있습니다.

CODE BLOCK
# chage -M 90 username   # 비밀번호 최대 사용일을 90일로 설정
# chage -m 7 username    # 최소 변경 간격 7일 설정
# chage -W 14 username   # 만료 14일 전부터 경고

🔐 PAM 모듈로 복잡성 강화

PAM(Pluggable Authentication Modules)을 사용하면 비밀번호에 대한 복잡성 규칙을 세부적으로 설정할 수 있습니다.
예를 들어 pam_pwquality.so 모듈을 사용하면 비밀번호에 대문자, 숫자, 특수문자 포함 여부와 최소 길이 등을 지정할 수 있습니다.

CODE BLOCK
# vi /etc/pam.d/common-password
password requisite pam_pwquality.so retry=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

  • 🔠대문자 최소 1개 포함
  • 🔢숫자 최소 1개 포함
  • 🔣특수문자 최소 1개 포함

💡 TIP: 비밀번호 정책을 너무 엄격하게 설정하면 사용자들이 규칙을 피하려고 쉽게 추측 가능한 패턴을 만들 수 있으니, 보안성과 편의성의 균형을 맞추는 것이 중요합니다.



💡 명령어 사용 시 주의사항

리눅스에서 passwd 명령어를 사용할 때는 단순히 비밀번호를 변경하는 것뿐만 아니라, 시스템 보안을 유지하기 위한 주의사항을 지켜야 합니다.
특히 다중 사용자 환경이나 서버 운영 시에는 비밀번호 관리 실수가 곧 보안 사고로 이어질 수 있으므로 세심한 관리가 필요합니다.

🔍 입력 시 화면에 표시되지 않음

비밀번호를 입력할 때는 화면에 아무런 문자가 표시되지 않는 것이 정상입니다.
이는 보안을 위한 조치이며, 실수로 입력이 안 된 것이 아니니 그대로 입력을 마친 후 엔터 키를 누르면 됩니다.

🛡️ 안전한 비밀번호 전송

원격 서버에서 비밀번호를 변경할 때는 SSH와 같이 암호화된 통신을 사용해야 합니다.
평문(plain text)으로 비밀번호가 전송되면 중간에서 가로채기 공격에 노출될 수 있습니다.

🚫 강제로 변경 시 주의

루트 권한으로 다른 사용자의 비밀번호를 강제로 변경하면, 해당 사용자가 기존 비밀번호를 더 이상 사용할 수 없습니다.
따라서 반드시 변경 사실을 사용자에게 알리고, 로그인 시 새 비밀번호로 변경할 수 있도록 안내해야 합니다.

  • 🔐정기적으로 비밀번호 변경 주기 점검
  • 📝비밀번호 변경 내역은 보안 로그에 기록
  • 👥다중 사용자 서버는 계정별 접근 권한 분리

⚠️ 주의: 비밀번호를 변경한 후에도 동일한 세션이 유지되는 경우가 있으므로, 로그아웃 후 재로그인하여 정상 적용 여부를 반드시 확인해야 합니다.

자주 묻는 질문 (FAQ)

passwd 명령어를 실행하면 화면에 입력이 표시되지 않는 이유는 무엇인가요?
보안을 위해 입력하는 비밀번호가 화면에 표시되지 않도록 설계되어 있습니다. 이는 해킹이나 엿보기 공격을 방지하기 위한 안전 장치입니다.
루트 권한 없이 다른 사용자의 비밀번호를 변경할 수 있나요?
불가능합니다. 다른 사용자의 비밀번호 변경은 반드시 루트 권한이 있어야 하며, 보안상 이유로 제한됩니다.
비밀번호 변경 시 최소 길이나 복잡성을 강제할 수 있나요?
가능합니다. PAM 모듈과 /etc/login.defs 파일을 이용해 최소 길이, 대소문자, 숫자, 특수문자 포함 여부 등을 설정할 수 있습니다.
비밀번호 만료일을 설정하려면 어떻게 해야 하나요?
chage 명령어를 사용하면 비밀번호 최대 사용 기간, 최소 변경 간격, 만료 알림 시점 등을 설정할 수 있습니다.
passwd 명령어로 계정을 잠글 수 있나요?
네, -l 옵션을 사용하면 계정을 잠글 수 있고, -u 옵션으로 잠금을 해제할 수 있습니다. 루트 권한이 필요합니다.
비밀번호 변경 후 기존 로그인 세션은 계속 사용할 수 있나요?
일부 경우 기존 세션이 유지될 수 있으나, 보안을 위해 로그아웃 후 재로그인하는 것을 권장합니다.
passwd 명령어가 작동하지 않는 경우 어떻게 해야 하나요?
PATH 환경 변수 문제, 권한 부족, 또는 PAM 설정 오류일 수 있습니다. 로그를 확인하고 문제를 해결해야 합니다.
비밀번호를 자주 변경하면 보안이 더 강화되나요?
일정 주기로 변경하는 것은 중요하지만, 너무 자주 변경하면 사용자가 예측 가능한 패턴을 만들 수 있어 오히려 보안이 약화될 수 있습니다.

🔐 리눅스 비밀번호 변경의 핵심 요약

리눅스에서 passwd 명령어는 계정 보안을 지키는 필수 도구입니다.
본인 계정의 비밀번호 변경부터 루트 권한을 통한 다른 사용자 비밀번호 관리까지 폭넓게 활용할 수 있습니다.
또한 PAM 모듈과 /etc/login.defs 설정을 통해 비밀번호 정책을 강화하면 해킹이나 무단 접근 위험을 크게 줄일 수 있습니다.
비밀번호 변경 시에는 안전한 통신 채널을 이용하고, 규칙에 맞는 복잡한 비밀번호를 사용해야 합니다.
정기적인 변경과 계정 잠금 기능을 병행하면 서버와 계정을 더욱 안전하게 운영할 수 있습니다.
이번 가이드에서 다룬 명령어 예시와 팁을 참고해, 실무 환경에서 보안 사고를 예방하는 습관을 꼭 들이시기 바랍니다.


🏷️ 관련 태그 : 리눅스명령어, passwd, 비밀번호변경, 리눅스보안, 서버관리, PAM, 계정관리, 루트권한, 리눅스기초, 시스템관리