리눅스를 사용하다 보면 보안을 강화하기 위해 주기적으로 사용자 비밀번호를 변경해야 할 때가 있다. 특히 서버 운영 환경에서는 강력한 비밀번호 정책을 유지하는 것이 필수다. 하지만 초보자들은 비밀번호 변경 방법을 잘 몰라 헤매는 경우가 많다.
이 글에서는 리눅스에서 사용자 비밀번호를 변경하는 다양한 방법을 다룰 것이다. 기본적인 passwd 명령어부터 루트 계정을 활용한 방법, 그리고 보안 강화를 위한 추가 설정까지 단계별로 설명하겠다.
1. 리눅스에서 사용자 비밀번호 변경의 기본 개념
리눅스의 사용자 관리 시스템 개요
리눅스는 다중 사용자 환경을 지원하는 운영체제다. 즉, 하나의 시스템에 여러 사용자가 계정을 만들고, 각각의 환경을 따로 관리할 수 있다. 이를 위해 리눅스는 사용자의 정보를 /etc/passwd 파일에 저장하고, 비밀번호 정보는 /etc/shadow 파일에 암호화된 형태로 보관한다.
사용자 계정과 비밀번호 저장 방식 이해
리눅스에서는 보안을 위해 비밀번호를 직접 저장하지 않고, 해시(hash) 형태로 변환하여 /etc/shadow 파일에 저장한다. 이 때문에 일반 사용자는 자신의 비밀번호를 직접 확인할 수 없으며, 새로운 비밀번호를 설정해야만 한다.
2. 현재 사용자 비밀번호 변경하기 (passwd 명령어 활용)
가장 기본적인 방법은 passwd 명령어를 사용하는 것이다. 일반 사용자는 자신의 비밀번호를 변경할 수 있으며, 루트 사용자는 다른 사용자의 비밀번호를 변경할 수도 있다.
passwd
위 명령어를 입력하면 현재 로그인한 사용자의 비밀번호를 변경할 수 있다. 실행하면 다음과 같은 메시지가 나타난다.
Changing password for user linuxuser.
Current password: (현재 비밀번호 입력)
New password: (새로운 비밀번호 입력)
Retype new password: (새 비밀번호 재입력)
비밀번호 입력 시 보안상 화면에 아무것도 표시되지 않지만, 정상적으로 입력되고 있다.
비밀번호 강도 설정 및 정책 확인
보안 강화를 위해 리눅스에서는 비밀번호 정책을 설정할 수 있다. 이를 위해 libpam-pwquality 패키지를 설치하고, /etc/security/pwquality.conf 파일을 수정하면 최소 길이, 특수 문자 포함 여부 등을 설정할 수 있다.
sudo nano /etc/security/pwquality.conf
설정 예시:
minlen = 12
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1
위 설정은 최소 12자리 이상의 비밀번호를 요구하고, 대문자, 소문자, 숫자, 특수문자를 최소 1개 이상 포함하도록 한다.
3. 루트 권한으로 다른 사용자의 비밀번호 변경하기
관리자는 시스템 내 다른 사용자의 비밀번호를 변경해야 할 수도 있다. 루트 계정 또는 sudo 권한을 사용하여 특정 사용자의 비밀번호를 변경할 수 있다.
sudo passwd 사용자이름
예를 들어, john이라는 사용자의 비밀번호를 변경하려면 다음과 같이 입력하면 된다.
sudo passwd john
그러면 새로운 비밀번호를 입력하라는 메시지가 나타나며, 정상적으로 설정이 완료된다.
4. 만료된 비밀번호 강제 변경하기
보안을 강화하려면 일정 기간이 지나면 비밀번호를 강제로 변경하도록 설정할 수 있다. 이를 위해 chage 명령어를 사용한다.
sudo chage -M 30 사용자이름
위 명령어는 해당 사용자의 비밀번호를 30일마다 변경하도록 설정한다.
비밀번호 만료일을 확인하려면 다음 명령어를 사용하면 된다.
chage -l 사용자이름
5. 비밀번호 보안 강화 및 정책 설정
리눅스에서는 비밀번호 정책을 더욱 엄격하게 설정할 수 있다. PAM(Pluggable Authentication Modules)을 활용하면 비밀번호 복잡도를 강화할 수 있다.
sudo nano /etc/pam.d/common-password
예를 들어, 최소 12자리 이상, 숫자 및 특수문자를 반드시 포함하도록 설정할 수 있다.
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1
이렇게 설정하면 사용자가 너무 단순한 비밀번호를 설정할 경우 경고 메시지가 표시되며, 강력한 비밀번호만 허용된다.
6. SSH 접속 시 비밀번호 문제 해결 및 복구 방법
원격 서버를 SSH로 관리할 때 비밀번호 문제로 인해 접속이 안 되는 경우가 있다. 이때, 로컬 콘솔에 직접 접근하여 비밀번호를 변경하면 된다.
sudo passwd 사용자이름
또한, 비밀번호 기반 인증을 완전히 없애고 SSH 키 인증을 설정하면 더욱 안전하게 관리할 수 있다.
ssh-keygen -t rsa -b 4096
이 명령어로 SSH 키를 생성한 후, 원격 서버에 배포하면 비밀번호 없이 접속할 수 있다.
리눅스에서 비밀번호 변경은 보안을 유지하는 중요한 작업이다. 기본적인 passwd 명령어부터 고급 보안 설정까지 익혀 두면, 더욱 안전한 시스템을 운영할 수 있다.
'Linux' 카테고리의 다른 글
리눅스에서 네트워크 연결 상태 확인하기 (ping, ifconfig) (0) | 2025.03.28 |
---|---|
리눅스에서 기본적인 네트워크 설정하기 (0) | 2025.03.27 |
리눅스에서 시스템에 사용자 추가 및 삭제하는 방법 (0) | 2025.03.25 |
리눅스에서 사용자 및 그룹 관리하기 (useradd, groupadd) (0) | 2025.03.24 |
리눅스에서 파일 권한 이해하기 (0) | 2025.03.23 |