Linux에서 계정 비밀번호를 변경하는 방법

오랜 세월 동안, 비밀번호는 온라인 계정 보안의 핵심 요소였습니다. 유닉스 운영체제보다 약 10년 먼저 등장하여 60년 동안이나 사용되어 왔습니다. 리눅스 환경에서 명령줄 또는 GNOME 데스크톱 환경을 통해 비밀번호를 관리하는 방법을 알아보겠습니다.

강력한 비밀번호 설정 방법

컴퓨터 비밀번호는 필요에 의해 탄생했습니다. 다중 사용자 시분할 컴퓨터 시스템이 등장하면서 여러 사용자의 데이터를 분리하고 보호하는 것이 중요해졌고, 비밀번호가 그 해결책이 되었습니다.

비밀번호는 여전히 가장 흔한 계정 인증 방식입니다. 2단계 인증 및 다단계 인증은 비밀번호 보호를 강화하고 생체 인증과 같은 다른 인증 방법을 제공하지만, 강력한 비밀번호는 여전히 중요하며 앞으로도 오랫동안 사용될 것입니다. 따라서, 가장 효과적으로 만들고 사용하는 방법을 알아야 합니다. 과거의 일부 관행은 더 이상 유효하지 않습니다.

다음은 몇 가지 기본적인 비밀번호 규칙입니다.

  • 단어를 조합하여 사용하세요: 임의의 단어 3-4개를 구두점, 기호, 숫자와 함께 조합하여 암호를 만드세요. 단순히 무작위 문자열이나 모음을 숫자로 바꾼 형태는 피하세요.
  • 비밀번호 재사용 금지: 동일하거나 다른 시스템에서 비밀번호를 재사용하지 마십시오.
  • 비밀번호 공유 금지: 비밀번호는 개인 정보입니다. 다른 사람과 공유하지 마십시오.
  • 개인 정보 기반 비밀번호 금지: 가족 이름, 스포츠 팀, 좋아하는 밴드 등 소셜 미디어를 통해 추측하거나 조작될 수 있는 정보로 비밀번호를 설정하지 마십시오.
  • 패턴 기반 비밀번호 금지: 키보드 패턴(qwerty, 1q2w3e 등)을 기반으로 비밀번호를 만들지 마십시오.

비밀번호 만료 정책은 더 이상 권장되지 않습니다. 강력하고 안전한 비밀번호를 사용하는 경우, 해당 비밀번호가 유출되었다고 의심될 때만 변경하면 됩니다. 많은 사람들이 쉬운 비밀번호를 사용하고 날짜나 숫자를 추가하기 때문에 정기적인 비밀번호 변경은 오히려 보안성을 떨어뜨릴 수 있습니다.

미국 국립표준기술연구소(NIST)는 비밀번호와 사용자 식별 및 인증에 대해 광범위하게 연구했습니다. 자세한 내용은 특별 간행물 800-63-3: 디지털 인증 지침에서 확인할 수 있습니다.

비밀번호 파일 구조

과거에는 유닉스 계열 운영 체제가 “/etc/passwd” 파일에 각 계정 정보와 함께 비밀번호를 저장했습니다. 오늘날, “/etc/passwd” 파일에는 계정 정보가 남아 있지만, 암호화된 비밀번호는 접근이 제한된 “/etc/shadow” 파일에 저장됩니다. “/etc/passwd” 파일은 누구나 볼 수 있지만 “/etc/shadow” 파일은 관리자 권한이 필요합니다.

“/etc/passwd” 파일 내용을 확인하려면 다음 명령어를 사용하세요.

less /etc/passwd

파일 내용이 표시됩니다. “mary” 계정에 대한 세부 정보를 살펴보겠습니다.

각 줄은 하나의 계정(또는 사용자 계정을 가진 프로그램)을 나타냅니다. 각 줄은 콜론으로 구분된 7개의 필드로 구성됩니다.

사용자 이름 계정의 로그인 이름입니다.
비밀번호 “x”는 비밀번호가 /etc/shadow 파일에 저장되어 있음을 나타냅니다.
사용자 ID 사용자 식별자입니다.
그룹 ID 그룹 식별자입니다.
GECOS 원래는 General Electric Comprehensive Operating System의 약자였습니다. 현재는 GECOS 필드에 쉼표로 구분된 사용자 정보가 저장됩니다. 여기에는 전체 이름, 방 번호, 사무실 및 집 전화번호 등이 포함될 수 있습니다.
계정의 홈 디렉토리 경로입니다.
사용자가 컴퓨터에 로그인할 때 실행되는 셸 프로그램입니다.

빈 필드는 콜론으로 표시됩니다.

finger 명령어를 사용하면 GECOS 필드의 정보를 가져올 수 있습니다.

finger mary

그림자 파일의 구조

“/etc/shadow” 파일 내용을 확인하려면 sudo를 사용해야 합니다.

sudo less /etc/shadow

파일 내용이 표시됩니다. “/etc/passwd” 파일의 모든 항목은 “/etc/shadow” 파일에도 일치하는 항목이 있어야 합니다.

각 줄은 하나의 계정을 나타내며, 콜론으로 구분된 9개의 필드로 구성됩니다.

사용자 이름 계정의 로그인 이름입니다.
암호화된 비밀번호 계정의 암호화된 비밀번호입니다.
마지막 변경 비밀번호가 마지막으로 변경된 날짜입니다.
최소 일수 비밀번호 변경 사이에 필요한 최소 일수입니다. 이 일수를 기다려야 비밀번호를 변경할 수 있습니다. 0으로 설정하면 원하는 만큼 자주 변경할 수 있습니다.
최대 일수 비밀번호 변경 사이에 필요한 최대 일수입니다. 일반적으로 매우 큰 숫자로 설정됩니다. “mary”의 경우 99,999일로 설정되어 있으며, 이는 27년 이상입니다.
경고 일수 비밀번호 만료일 전에 미리 알림 메시지를 표시할 일수입니다.
잠금 재설정 비밀번호가 만료된 후 계정이 비활성화되기 전까지 기다리는 유예 기간입니다.
계정 만료 날짜 계정 소유자가 더 이상 로그인할 수 없는 날짜입니다. 비어 있으면 계정이 만료되지 않습니다.
예약 필드 향후 사용을 위한 빈 필드입니다.

빈 필드는 콜론으로 표시됩니다.

“마지막 변경” 필드를 날짜로 변환하기

“마지막 변경” 필드의 값은 유닉스 시간으로, 1970년 1월 1일 이후의 날짜 수를 나타냅니다. 예를 들어 “mary” 계정의 마지막 변경 날짜 값은 18,209입니다.

이 값을 날짜로 변환하려면 다음 명령어를 사용하십시오.

date -d "1970-01-01 18209 days"

이 명령어를 실행하면 비밀번호가 마지막으로 변경된 날짜의 자정이 표시됩니다. 이 예에서는 2019년 11월 9일입니다.

비밀번호 명령어

passwd 명령어를 사용하여 자신의 비밀번호를 변경하거나, sudo 권한이 있는 경우 다른 사람의 비밀번호를 변경할 수 있습니다.

자신의 비밀번호를 변경하려면 매개변수 없이 passwd 명령어를 사용하십시오.

passwd

현재 비밀번호와 새로운 비밀번호를 두 번 입력하라는 메시지가 표시됩니다.

다른 사용자 비밀번호 변경

다른 계정의 비밀번호를 변경하려면 sudo 명령어를 사용하고, 변경하려는 계정의 이름을 지정해야 합니다.

sudo passwd mary

수퍼 유저 권한을 확인하기 위해 비밀번호를 입력해야 합니다. 그 후, 변경하려는 계정의 새로운 비밀번호를 입력하고 다시 한번 입력하여 확인합니다.

강제 비밀번호 변경

특정 사용자가 다음 로그인 시 비밀번호를 변경하도록 하려면 -e (만료) 옵션을 사용합니다.

sudo passwd -e mary

비밀번호 만료일이 변경되었다는 메시지가 표시됩니다.

“mary” 계정의 소유자는 다음 로그인 시 비밀번호를 변경해야 합니다.

계정 잠금

계정을 잠그려면 -l (잠금) 옵션과 함께 passwd 명령어를 사용하십시오.

sudo passwd -l mary

비밀번호 만료일이 변경되었다는 메시지가 표시됩니다.

계정 소유자는 더 이상 자신의 비밀번호로 컴퓨터에 로그인할 수 없습니다. 계정 잠금을 해제하려면 -u (잠금 해제) 옵션을 사용하십시오.

sudo passwd -u mary

다시 한번 비밀번호 만료 데이터가 변경되었다는 메시지가 표시됩니다.

계정 소유자는 자신의 비밀번호로 컴퓨터에 로그인할 수 없지만, SSH 키와 같은 비밀번호가 필요 없는 인증 방법을 사용하면 계속 로그인할 수 있습니다. 완전히 계정 접근을 막으려면 계정을 만료시켜야 합니다.

chage 명령어

chage 명령어는 “나이 변경”을 의미합니다. 이 명령어를 사용하면 전체 계정의 만료일을 설정할 수 있습니다.

-l (목록) 옵션을 사용하여 “mary” 계정의 현재 설정을 확인해 보겠습니다.

sudo chage -l mary

계정의 만료 날짜는 “never”로 설정되어 있습니다.

만료 날짜를 변경하려면 -E (만료) 옵션을 사용하십시오. 값을 0으로 설정하면 유닉스 시간의 0일, 즉 1970년 1월 1일로 해석됩니다.

다음 명령어를 입력합니다.

sudo chage -E0 mary

계정 만료 날짜를 다시 확인해 봅시다.

sudo chage -l mary

만료 날짜가 과거로 설정되었기 때문에, 해당 계정은 소유자가 어떤 인증 방법을 사용하든 완전히 잠깁니다.

계정을 복원하려면 숫자 매개변수로 -1을 사용하여 동일한 명령을 사용하십시오.

sudo chage -E -1 mary

다음을 입력하여 다시 확인해 봅시다.

sudo chage -l mary

계정 만료 날짜가 “사용 안 함”으로 재설정됩니다.

GNOME에서 계정 비밀번호 변경

Ubuntu 및 기타 많은 Linux 배포판은 GNOME을 기본 데스크톱 환경으로 사용합니다. “설정” 대화 상자를 사용하여 계정의 비밀번호를 변경할 수 있습니다.

시스템 메뉴에서 설정 아이콘을 클릭합니다.

설정 대화 상자의 왼쪽 창에서 “세부 정보”를 클릭한 다음 “사용자”를 클릭하십시오.

비밀번호를 변경하려는 계정을 클릭합니다. 이 예에서는 “Mary Quinn”을 선택합니다. 계정을 클릭한 다음 “잠금 해제”를 클릭합니다.

비밀번호를 입력하라는 메시지가 표시됩니다. 인증이 완료되면 “Mary’s” 정보를 편집할 수 있습니다. “비밀번호” 필드를 클릭합니다.

“비밀번호 변경” 대화 상자에서 “지금 비밀번호 설정” 라디오 버튼을 클릭합니다.

“새 암호” 및 “새 암호 확인” 필드에 새 비밀번호를 입력합니다.

비밀번호 항목이 일치하면 “변경” 버튼이 녹색으로 바뀝니다. 새 비밀번호를 저장하려면 클릭하십시오.

다른 데스크톱 환경의 계정 도구도 GNOME 도구와 유사하게 작동합니다.

보안 유지, 안전 유지

비밀번호는 60년 동안 온라인 계정 보안의 필수적인 요소였으며 앞으로도 오랫동안 사용될 것입니다.

따라서, 비밀번호를 현명하게 관리하는 것이 중요합니다. 리눅스의 비밀번호 메커니즘을 이해하고 모범 사례를 적용하면 시스템을 안전하게 유지할 수 있습니다.