스크립트
일반적으로 불필요한 계정 목록
변군이글루
2025. 4. 1. 21:07
반응형
일반적으로 불필요한 계정 목록
1. 프린터, 메일, 뉴스 관련 (대부분 서버에서 불필요)
lp → 프린터 서비스 계정
mail → 메일 서버 계정
news → 뉴스 서버 관련 계정
uucp → 오래된 파일 전송 프로토콜 계정
list → 메일링 리스트 서비스 계정
2. 특정 서비스 관련 (안 쓰면 불필요)
irc → IRC 채팅 서버 계정
polkitd → GUI에서 관리자 권한 요청용 (CLI 서버에서는 불필요)
uuidd → UUID 생성 서비스 (대부분 서버에서 필요 없음)
3. 기타 불필요할 가능성이 높은 계정
games → 게임 실행용 계정 (일반 서버 불필요)
pollinate → 클라우드용 난수 생성 (클라우드 아닌 서버에서는 불필요)
dhcpcd → DHCP 클라이언트 (정적 IP 사용 시 불필요)
tss → TPM 보안 칩 관련 (사용하지 않으면 불필요)
landscape → Ubuntu 원격 관리 서비스 (사용하지 않으면 불필요)
fwupd-refresh → 펌웨어 업데이트 서비스 (자동 업데이트 안 하면 불필요)
usbmux → iPhone/iPad 연결용 (연결 안 하면 불필요)
728x90
불필요한 계정을 삭제하는 Bash 스크립트
스크립트 작성
vim remove_unused_users.sh
#!/bin/bash
# 삭제할 불필요한 계정 목록
UNUSED_USERS=(
lp mail news uucp list irc polkitd uuidd
games pollinate dhcpcd tss landscape fwupd-refresh usbmux
)
# 로그 파일 경로
LOG_FILE="/var/log/remove_unused_users.log"
# 로그 기록 함수
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG_FILE"
}
log "🔹 불필요한 계정 삭제 시작"
for user in "${UNUSED_USERS[@]}"; do
if id "$user" &>/dev/null; then
SHELL=$(getent passwd "$user" | cut -d: -f7)
if [[ "$SHELL" == "/usr/sbin/nologin" || "$SHELL" == "/bin/false" ]]; then
log "⚙️ 계정 삭제 중: $user"
userdel -r "$user" &>> "$LOG_FILE"
if [[ $? -eq 0 ]]; then
log "✅ 삭제 완료: $user"
else
log "❌ 삭제 실패: $user"
fi
else
log "⏩ 삭제하지 않음 (로그인 가능 계정): $user"
fi
else
log "🔹 존재하지 않는 계정: $user"
fi
done
log "✅ 불필요한 계정 삭제 완료"
실행 권한 부여
chmod +x remove_unused_users.sh
실행
bash remove_unused_users.sh
728x90
반응형