반응형
일반적으로 불필요한 계정 목록
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
반응형
'스크립트' 카테고리의 다른 글
파이썬 가상 환경을 설치하고 테스트하는 방법 (0) | 2025.04.01 |
---|---|
screwim을 사용하여 PHP 파일을 보호하고 이를 테스트하는 방법 (0) | 2024.09.10 |
scp 명령어를 사용하여 파일을 쉽게 업로드 및 다운로드할 수 있는 스크립트 (0) | 2024.05.27 |
[python] 운영 체제를 판별하는 코드 (0) | 2024.05.17 |
[python] 환경 변수를 .env 파일에서 로드하는 코드를 작성 (0) | 2024.05.14 |