12月 21, 2025
25 分で読める

ジュニアシステム管理者 面接対策:完全ガイド

interview
career-advice
job-search
entry-level
ジュニアシステム管理者 面接対策:完全ガイド
MB

Milad Bonakdar

著者

ジュニアシステム管理者向けの、Linux、Windows、Active Directory、トラブルシューティング、およびコアITコンセプトを網羅した面接対策の質問集です。システム管理の基礎をマスターしましょう。


はじめに

システム管理者は、コンピューターシステムとサーバーの保守、構成、および信頼性の高い運用を保証する責任があります。ジュニアシステム管理者として、ITインフラストラクチャをサポートするには、Linux、Windows、ネットワーク、およびトラブルシューティングに関する基礎知識が必要です。

このガイドでは、ジュニアシステム管理者向けの重要な面接の質問を取り上げ、実践的なスキルとコアコンセプトに焦点を当てています。


Linuxの基礎

1. 日常的に使用する最も一般的なLinuxコマンドは何ですか?

回答: システム管理に不可欠なコマンド:

# ファイルとディレクトリの管理
ls -la          # 詳細付きのファイルリスト
cd /path        # ディレクトリの変更
pwd             # 現在の作業ディレクトリの表示
mkdir folder    # ディレクトリの作成
rm -rf folder   # ディレクトリの削除
cp source dest  # ファイルのコピー
mv old new      # ファイルの移動/名前変更

# ファイルの表示と編集
cat file.txt    # ファイル内容の表示
less file.txt   # ページネーション付きのファイル表示
tail -f /var/log/syslog  # ログファイルの追跡
vi/nano file.txt  # ファイルの編集

# 権限
chmod 755 file  # 権限の変更
chown user:group file  # 所有者の変更
ls -l           # 権限の表示

# プロセスの管理
ps aux          # すべてのプロセスのリスト
top/htop        # プロセスの監視
kill PID        # プロセスの終了
systemctl status service  # サービスステータスの確認

# システム情報
df -h           # ディスク使用量
free -h         # メモリ使用量
uptime          # システム稼働時間
uname -a        # システム情報

頻度: 非常に一般的
難易度: 簡単


2. Linuxサーバーの動作が遅い場合のトラブルシューティング方法を教えてください。

回答: パフォーマンスの問題に対する体系的なアプローチ:

1. CPU使用率の確認:

top
# CPUを多く使用しているプロセスを探す
# 'P'を押してCPU使用率でソート

# またはhtopを使用して視覚化を改善
htop

2. メモリの確認:

free -h
# スワップが頻繁に使用されているか確認

# メモリを大量に消費するプロセスを検索
ps aux --sort=-%mem | head -10

3. ディスクI/Oの確認:

iostat -x 1
# 高い%utilを探す

# ディスク容量の確認
df -h

# 大きなファイルを探す
du -sh /* | sort -rh | head -10

4. ネットワークの確認:

netstat -tuln  # アクティブな接続
ss -s          # ソケット統計

5. ログの確認:

tail -f /var/log/syslog
journalctl -xe  # Systemdログ
dmesg | tail    # カーネルメッセージ

頻度: 非常に一般的
難易度: 中程度


3. cronを使用して自動タスクをスケジュールする方法を教えてください。

回答: Cronは、Unix系システムにおける時間ベースのジョブスケジューラです。

Cronの構文:

┌───────────── 分 (0-59)
│ ┌───────────── 時 (0-23)
│ │ ┌───────────── 月の日 (1-31)
│ │ │ ┌───────────── 月 (1-12)
│ │ │ │ ┌───────────── 曜日 (0-6, 日曜日=0)
│ │ │ │ │
* * * * * 実行するコマンド

一般的な例:

# crontabの編集
crontab -e

# 毎日午前2時にバックアップを実行
0 2 * * * /home/user/backup.sh

# 毎週月曜日の午前9時にスクリプトを実行
0 9 * * 1 /home/user/weekly-report.sh

# 15分ごとに実行
*/15 * * * * /home/user/check-status.sh

# 毎月1日に実行
0 0 1 * * /home/user/monthly-cleanup.sh

# 毎週平日の午後6時に実行
0 18 * * 1-5 /home/user/end-of-day.sh

# 現在のcronジョブのリスト
crontab -l

# すべてのcronジョブを削除
crontab -r

特別な文字列:

@reboot    # 起動時に一度実行
@daily     # 1日に1回実行 (0 0 * * *)
@hourly    # 1時間に1回実行 (0 * * * *)
@weekly    # 1週間に1回実行 (0 0 * * 0)
@monthly   # 1ヶ月に1回実行 (0 0 1 * *)

# 例
@daily /home/user/daily-backup.sh

Cronジョブログ:

# 出力をログファイルにリダイレクト
0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1

# エラー時のみメールを送信
0 2 * * * /home/user/backup.sh 2>&1 | mail -s "Backup Failed" [email protected]

Windowsタスクスケジューラ:

# スケジュールされたタスクの作成
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
Register-ScheduledTask -TaskName "Daily Backup" -Action $action -Trigger $trigger

# スケジュールされたタスクのリスト
Get-ScheduledTask

# タスクをすぐに実行
Start-ScheduledTask -TaskName "Daily Backup"

# タスクの無効化
Disable-ScheduledTask -TaskName "Daily Backup"

ベストプラクティス:

  • スクリプトでは絶対パスを使用する
  • crontabでPATH変数を設定する
  • スクリプトを手動でテストする
  • デバッグのために出力をログに記録する
  • ロックを使用して実行の重複を防ぐ

頻度: 非常に一般的
難易度: 簡単-中程度


WindowsとActive Directory

3. Active Directoryとは何ですか?その主なコンポーネントは何ですか?

回答: Active Directory (AD) は、Windowsネットワーク用のMicrosoftのディレクトリサービスです。

主なコンポーネント:

Loading diagram...

キーコンセプト:

  • ドメイン: 管理境界
  • ドメインコントローラー (DC): ADをホストするサーバー
  • 組織単位 (OU): オブジェクトのコンテナ
  • ユーザー/グループ: ID管理
  • グループポリシー: 集中型構成

一般的なタスク:

# ユーザーの作成
New-ADUser -Name "John Doe" -SamAccountName jdoe -UserPrincipalName [email protected]

# ユーザーをグループに追加
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# パスワードのリセット
Set-ADAccountPassword -Identity jdoe -Reset

# ロックされたアカウントの検索
Search-ADAccount -LockedOut

# ドメインコントローラーのリスト
Get-ADDomainController -Filter *

頻度: 非常に一般的
難易度: 簡単-中程度


5. LinuxとWindowsでユーザーアカウントを作成および管理する方法を教えてください。

回答: ユーザー管理は、システム管理者の重要な責任です。

Linuxユーザー管理:

# ユーザーの作成
sudo useradd -m -s /bin/bash john
# -m: ホームディレクトリの作成
# -s: シェルの設定

# パスワードの設定
sudo passwd john

# 特定のUIDとグループを持つユーザーの作成
sudo useradd -m -u 1500 -G sudo,developers john

# 既存のユーザーの変更
sudo usermod -aG docker john  # グループへの追加
sudo usermod -s /bin/zsh john  # シェルの変更
sudo usermod -L john  # アカウントのロック
sudo usermod -U john  # アカウントのロック解除

# ユーザーの削除
sudo userdel john  # ホームディレクトリの保持
sudo userdel -r john  # ホームディレクトリの削除

# ユーザー情報の表示
id john
finger john
cat /etc/passwd | grep john

グループ管理:

# グループの作成
sudo groupadd developers

# ユーザーをグループに追加
sudo usermod -aG developers john

# グループからユーザーを削除
sudo gpasswd -d john developers

# グループの削除
sudo groupdel developers

# ユーザーのグループのリスト
groups john

ファイル権限:

# 所有者の変更
sudo chown john:developers /var/www/project
sudo chown -R john:developers /var/www/project  # 再帰的

# 権限の変更
chmod 755 script.sh  # rwxr-xr-x
chmod u+x script.sh  # ユーザーに実行権限を追加
chmod g-w file.txt  # グループから書き込み権限を削除
chmod o-r file.txt  # 他のユーザーから読み取り権限を削除

# 特別な権限
chmod 4755 file  # SUID
chmod 2755 dir   # SGID
chmod 1777 /tmp  # スティッキービット

Windowsユーザー管理:

# ローカルユーザーの作成
New-LocalUser -Name "John" -Password (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force)

# ADユーザーの作成
New-ADUser -Name "John Doe" `
    -GivenName "John" `
    -Surname "Doe" `
    -SamAccountName "jdoe" `
    -UserPrincipalName "[email protected]" `
    -Path "OU=Users,DC=company,DC=com" `
    -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) `
    -Enabled $true

# グループに追加
Add-ADGroupMember -Identity "IT Staff" -Members jdoe

# ユーザーの変更
Set-ADUser -Identity jdoe -Department "IT" -Title "System Administrator"

# アカウントの無効化
Disable-ADAccount -Identity jdoe

# パスワードのリセット
Set-ADAccountPassword -Identity jdoe -Reset -NewPassword (ConvertTo-SecureString "NewP@ss" -AsPlainText -Force)

# ユーザーの削除
Remove-ADUser -Identity jdoe

一括ユーザー作成:

#!/bin/bash
# ファイルから複数のユーザーを作成
while IFS=, read -r username fullname; do
    sudo useradd -m -c "$fullname" "$username"
    echo "$username:TempPass123" | sudo chpasswd
    sudo chage -d 0 "$username"  # パスワード変更を強制
    echo "Created user: $username"
done < users.csv

頻度: 非常に一般的
難易度: 簡単


ネットワークの基礎

6. DNSとDHCPについて説明してください。

回答:

DNS (Domain Name System):

  • ドメイン名をIPアドレスに変換
  • 階層システム
  • ポート53を使用

DHCP (Dynamic Host Configuration Protocol):

  • IPアドレスを自動的に割り当て
  • サブネットマスク、ゲートウェイ、DNSサーバーを提供
  • ポート67(サーバー)および68(クライアント)を使用

DNSのトラブルシューティング:

# DNS解決のテスト
nslookup google.com

# 特定のDNSサーバーへのクエリ
dig @8.8.8.8 google.com

# DNSキャッシュの確認(Windows)
ipconfig /displaydns
ipconfig /flushdns

# DNSキャッシュの確認(Linux)
systemd-resolve --statistics
systemd-resolve --flush-caches

DHCPのトラブルシューティング:

# IPの解放と更新(Windows)
ipconfig /release
ipconfig /renew

# IPの解放と更新(Linux)
sudo dhclient -r
sudo dhclient

# DHCPリース情報の確認
cat /var/lib/dhcp/dhclient.leases

頻度: 非常に一般的
難易度: 簡単-中程度


バックアップとセキュリティ

7. どのようなバックアップ戦略を実装しますか?

回答: 3-2-1バックアップルール:

  • 3つのデータのコピー
  • 2つの異なるメディアタイプ
  • 1つのオフサイトコピー

バックアップの種類:

  • フル: 完全なコピー(遅い、大きい)
  • 増分: 最後のバックアップからの変更(速い、小さい)
  • 差分: 最後のフルバックアップからの変更(中程度)

バックアップスクリプトの例:

#!/bin/bash
# 簡単なバックアップスクリプト

BACKUP_DIR="/backup"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="backup_$DATE.tar.gz"

# バックアップの作成
tar -czf $BACKUP_DIR/$BACKUP_FILE $SOURCE_DIR

# 過去7日間のみ保持
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete

# リモートサーバーへのアップロード(オプション)
rsync -avz $BACKUP_DIR/$BACKUP_FILE user@backup-server:/backups/

echo "Backup completed: $BACKUP_FILE"

頻度: 一般的
難易度: 中程度


8. サーバーを保護するにはどうすればよいですか?

回答: 多層的なセキュリティアプローチ:

1. システムを最新の状態に保つ:

# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y

# CentOS/RHEL
sudo yum update -y

# Windows
Install-WindowsUpdate -AcceptAll

2. ファイアウォールの構成:

# UFW (Ubuntu)
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# firewalld (CentOS)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

3. Rootログインの無効化:

# SSH設定の編集
sudo vi /etc/ssh/sshd_config

# 設定:
PermitRootLogin no
PasswordAuthentication no  # SSHキーを使用

sudo systemctl restart sshd

4. ログの監視:

# fail2banのインストール
sudo apt install fail2ban

# fail2banの構成
sudo vi /etc/fail2ban/jail.local

頻度: 非常に一般的
難易度: 中程度


トラブルシューティング

9. ユーザーが共有ドライブにアクセスできません。どのようにトラブルシューティングしますか?

回答: 体系的なトラブルシューティングの手順:

1. 問題の検証:

  • 問題を再現できますか?
  • 1人のユーザーに影響を与えていますか、それとも複数ですか?

2. ネットワーク接続の確認:

# ファイルサーバーへのping
ping fileserver.domain.com

# SMB接続のテスト
telnet fileserver.domain.com 445

3. 権限の確認:

# Windows: 共有権限の確認
Get-SmbShareAccess -Name "SharedFolder"

# NTFS権限の確認
Get-Acl "\\server\share" | Format-List

4. ユーザーアカウントの確認:

# ユーザーが正しいグループに所属しているか確認
Get-ADUser username -Properties MemberOf

# アカウントがロックされているか確認
Get-ADUser username -Properties LockedOut

5. ドライブマッピングの確認:

# Windows: マップされたドライブのリスト
net use

# 削除と再マッピング
net use Z: /delete
net use Z: \\server\share /persistent:yes

6. サーバーの確認:

  • ファイルサーバーは実行されていますか?
  • 共有はまだ利用可能ですか?
  • サーバーログの確認

頻度: 非常に一般的
難易度: 簡単-中程度


10. システムログを管理および分析する方法を教えてください。

回答: ログ管理は、トラブルシューティングとセキュリティにとって非常に重要です。

一般的なログの場所(Linux):

/var/log/syslog          # システムログ (Debian/Ubuntu)
/var/log/messages        # システムログ (RHEL/CentOS)
/var/log/auth.log        # 認証ログ
/var/log/kern.log        # カーネルログ
/var/log/apache2/        # Apacheウェブサーバー
/var/log/nginx/          # Nginxウェブサーバー
/var/log/mysql/          # MySQLデータベース

ログの表示:

# ログ全体の表示
cat /var/log/syslog

# 最後の50行の表示
tail -n 50 /var/log/syslog

# リアルタイムでのログの追跡
tail -f /var/log/syslog

# ページネーション付きの表示
less /var/log/syslog

# ログの検索
grep "error" /var/log/syslog
grep -i "failed" /var/log/auth.log  # 大文字と小文字を区別しない

Systemd Journal:

# すべてのログの表示
journalctl

# 特定のサービスのログの表示
journalctl -u nginx
journalctl -u ssh

# ログの追跡
journalctl -f

# 起動時からのログの表示
journalctl -b

# 期間を指定してログの表示
journalctl --since "2024-01-01" --until "2024-01-02"
journalctl --since "1 hour ago"

# 優先度による表示
journalctl -p err  # エラーのみ
journalctl -p warning  # 警告以上

# ファイルへのエクスポート
journalctl -u nginx --since today > nginx-logs.txt

ログローテーション:

# logrotateの構成
sudo vi /etc/logrotate.d/myapp

# 構成例
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0644 www-data www-data
    sharedscripts
    postrotate
        systemctl reload myapp
    endscript
}

# logrotateのテスト
sudo logrotate -d /etc/logrotate.d/myapp  # ドライラン
sudo logrotate -f /etc/logrotate.d/myapp  # 強制ローテーション

Windowsイベントビューアー:

# アプリケーションログの表示
Get-EventLog -LogName Application -Newest 50

# システムログの表示
Get-EventLog -LogName System -Newest 50

# エラーレベルによるフィルタリング
Get-EventLog -LogName System -EntryType Error -Newest 20

# 特定のイベントの検索
Get-EventLog -LogName Security | Where-Object {$_.EventID -eq 4625}

# ログのエクスポート
Get-EventLog -LogName Application | Export-Csv -Path C:\logs\app-logs.csv

集中ログ:

# rsyslogクライアントのインストール
sudo apt install rsyslog

# リモートログの構成
sudo vi /etc/rsyslog.conf
# 追加: *.* @@log-server:514

sudo systemctl restart rsyslog

ログ分析ツール:

  • grep/awk/sed: コマンドライン解析
  • GoAccess: リアルタイムWebログアナライザー
  • ELK Stack: Elasticsearch, Logstash, Kibana
  • Splunk: エンタープライズログ管理

頻度: 一般的
難易度: 簡単-中程度


結論

ジュニアシステム管理者の面接の準備には、実践的な経験とコアコンセプトの理解が必要です。以下に焦点を当ててください。

  1. Linux: コマンド、ファイル権限、プロセス管理
  2. Windows: Active Directory、グループポリシー、PowerShellの基本
  3. ネットワーキング: DNS、DHCP、基本的なトラブルシューティング
  4. セキュリティ: ファイアウォール、更新、アクセス制御
  5. トラブルシューティング: 体系的なアプローチ、ログ分析

ラボ環境で練習し、学習内容を文書化してください。 頑張ってください!

Newsletter subscription

実際に機能する週次のキャリアのヒント

最新の洞察をメールボックスに直接お届けします

Decorative doodle

次の面接は履歴書一つで決まる

数分でプロフェッショナルで最適化された履歴書を作成。デザインスキルは不要—証明された結果だけ。

私の履歴書を作成

この投稿を共有

履歴書作成時間を90%短縮

平均的な求職者は履歴書のフォーマットに3時間以上費やしています。当社のAIは15分以内で完成させ、応募段階に12倍速く到達できます。