| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- UNIX
- PackageManagement
- 정규표현식
- 리눅스명령어
- UnixCommand
- linuxcommand
- 쉘스크립트
- Unix명령어
- php
- JavaScript
- coreutils
- 명령어
- 리눅스
- sysadmin
- cups
- 유닉스
- 시스템관리
- 파일시스템
- 사용자관리
- js
- 터미널
- linux
- 자바스크립트
- terminal
- 유닉스명령어
- shell
- bash
- environment
- tcsh
- Solaris
Archives
- Today
- Total
ioerror
pw - 지정한 사용자의 비밀번호 또는 패스워드 에이징 정보를 변경 및 관리 본문
반응형

pw - Password Management Utility
FreeBSD 운영체제에서 시스템 사용자 및 그룹 계정을 생성, 삭제, 수정하고 관리하기 위해 사용하는 핵심 명령형 유틸리티이다. 리눅스의 passwd, useradd, usermod 등의 기능을 통합한 형태의 강력한 계정 관리 도구이며, 주로 스크립트를 통한 자동화 및 일괄 계정 처리에 활용된다.
1. 명령어 용도
- [FreeBSD]
- 새로운 사용자 계정을 특정 홈 디렉터리와 쉘을 지정하여 대화형 창 없이 한 줄의 명령어로 추가해야 할 때 사용된다.
- 특정 사용자의 패스워드 만료일이나 계정 잠금 상태를 변경하여 보안 정책을 강제해야 할 때 활용된다.
# 새로운 사용자 'developer'를 생성하고 홈 디렉터리를 자동으로 만들며 bash 쉘을 할당하는 예시
$ sudo pw useradd developer -m -s /usr/local/bin/bash
2. 명령어 서식
pw [command] [user|group] [options]
3. 명령어 옵션
pw 명령어는 계정(user)과 그룹(group) 관리를 위한 다양한 서브 명령과 옵션을 제공한다.
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| useradd | 새로운 사용자 계정을 시스템에 추가한다. | [FreeBSD] |
| userdel | 기존 사용자 계정을 시스템에서 삭제한다. | [FreeBSD] |
| usermod | 기존 사용자 계정의 정보(쉘, 홈 디렉터리, 그룹 등)를 수정한다. | [FreeBSD] |
| usershow | 특정 사용자 계정의 상세 설정 정보를 출력한다. | [FreeBSD] |
| -n | 대상이 되는 사용자명 또는 그룹명을 지정한다. | [FreeBSD] |
| -u | 사용자의 고유 ID(UID)를 직접 지정한다. | [FreeBSD] |
| -g | 사용자의 주 그룹(Primary Group)을 지정한다. | [FreeBSD] |
| -m | useradd 실행 시 사용자의 홈 디렉터리가 없으면 자동으로 생성한다. | [FreeBSD] |
| -d | 사용자의 홈 디렉터리 경로를 명시적으로 지정한다. | [FreeBSD] |
| -s | 사용자가 로그인할 때 사용할 기본 쉘의 경로를 지정한다. | [FreeBSD] |
| -h | 패스워드를 전달하는 방식을 지정한다. (-h 0은 표준 입력으로 암호화되지 않은 패스워드를 받음) | [FreeBSD] |
명령어 옵션 사용시 결과 예시
기존 사용자의 정보를 수정하고 계정 상태를 확인하는 표준적인 사용법과 실행 결과이다.
# 'developer' 사용자의 기본 로그인 쉘을 zsh로 변경
$ sudo pw usermod developer -s /usr/local/bin/zsh
# 'developer' 사용자의 현재 설정 상태를 조회
$ pw usershow developer
developer:*:1001:1001::0:0:Developer User:/home/developer:/usr/local/bin/zsh
# 출력된 결과의 세부 항목은 다음과 같다.
# developer: 사용자 계정 이름
# 1001:1001: 사용자의 UID와 기본 GID(그룹 ID)
# Developer User: 사용자의 전체 이름(Comment)
# /home/developer: 사용자의 홈 디렉터리 절대 경로
# /usr/local/bin/zsh: 사용자가 로그인 시 사용할 기본 쉘 경로
4. 명령어 특이사항(유의사항)
- 리눅스와의 차이점: Ubuntu나 CentOS 같은 일반적인 리눅스 배포판에는 pw 명령어가 기본적으로 존재하지 않으며, 유사한 이름의 pwconv(그림자 패스워드 변환)나 개별 계정 관리 명령어(useradd, passwd)를 사용해야 한다. StackOverflow 등에서 pw 관련 질문은 90% 이상 FreeBSD 환경을 대상으로 한다.
- 보안 위험: 스크립트 작성 시 -h 옵션 뒤에 패스워드를 평문으로 노출하여 실행하면 쉘 히스토리에 비밀번호가 그대로 남게 되므로, 실제 운영 환경에서는 표준 입력(stdin) 파이프라인을 연계하여 패스워드를 안전하게 전달하는 기법이 권장된다.
관련 명령어들
- useradd: 리눅스 시스템에서 새로운 사용자를 추가한다.
- passwd: 사용자 계정의 비밀번호를 변경하거나 잠근다.
- chsh: 사용자의 로그인 쉘을 변경한다.
- groupadd: 새로운 사용자 그룹을 생성한다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| pwd 사용법 및 옵션 - 현재 작업 디렉터리의 절대 경로 확인 (0) | 2026.07.16 |
|---|---|
| pwck 사용법 및 옵션 - 비밀번호 파일의 무결성 검사 (0) | 2026.07.16 |
| pushd 사용법 및 옵션 - 현재 디렉터리를 디렉터리 스택에 저장하고 새로운 디렉터리로 이동하는 명령어 (0) | 2026.07.16 |
| ps 사용법 및 옵션 - 현재 실행 중인 프로세스의 상태를 확인하는 명령어 (0) | 2026.07.16 |
| printenv 사용법 및 옵션 - 환경 변수의 값을 출력하거나 전체 환경 변수 목록을 조회하는 명령어 (0) | 2026.07.16 |
Comments