Oracle Solaris 11 System Administration (1Z0-821)サンプル問題

対話型インストーラを使用するOracle Solaris 11 のインストール

問題1:

以下のようなコマンドの実行結果があります。リモートホストのIPアドレスは192.168.0.100であると仮定しています。

$ ssh 192.168.0.100
ssh: connect to host 192.168.0.100 port 22: Connection refused

この結果の説明として正しいものを1つ選択してください。

1.      リモートホスト(192.168.0.100)の公開鍵が$HOME/.ssh/known_hostsファイルに登録されていない。

2.      ローカルホストの公開鍵がリモートホストの/etc/ssh/known_hostsファイルに登録されていない。

3.      リモートホストでsshのサービスが動作していない可能性がある。

4.      ローカルホストでsshのサービスが適切に構成されていない可能性がある。

5.      ローカルホストの/etc/ssh/sshd_configファイルを修正する必要がある。


解答: 3

解説:
1.
この場合以下のようなメッセージになります。yesと入力するとknown_hostsファイルにリモートホストの公開鍵(/etc/ssh/*.pub)が登録されます。
-------------------------------------------------------------------------
ホスト '10.190.96.242 (10.190.96.242)' の認証を確立できません.
RSA
鍵フィンガープリントは af:b3:f4:4e:89:e6:34:ee:c2:33:45:9a:5b:ba:cc:48 です
本当に接続を継続してもよろしいですか (yes/no)? Yes
警告: 既知ホストのリストに '10.190.96.242' (RSA) を追加しました。
-------------------------------------------------------------------------
2. /etc/ssh/known_hosts
ファイルはホスト認証時にクライアントの公開ホスト鍵を登録するときに使用します。
3.
正解です。Connection refusedというメッセージはリモートホスト側でsshdサービスが動作していない場合に表示されます。
4.
ローカルホストのsshサービスはアクセス時には関係ありません。
5. /etc/ssh/sshd_config
ファイルはsshサービスの構成ファイルですが、このアクセスにおいて、ローカルのファイルは関係ありません。

問題2:

Oracle Solaris 11で用意されている様々なインストーラについて正しい説明を4つ選択してください。

1.      LiveメディアによるインストールはSPARCシステムのみサポートされている

2.      Liveメディアによるインストールではネットワークの構成の自動/手動を選択できる

3.      Liveメディアによるインストールではインストールするソフトウェアパッケージは選べないがデスクトップベースのパッケージ(ブラウザや各種デスクトップツール)は標準でインストールされる

4.      Liveメディアによるインストールでは管理ユーザーの作成が必須でインストール後にrootで直接ログインすることはできない

5.      テキストインストーラと自動インストーラ(AI)x86/64SPARC用にそれぞれ用意されている

6.      テキストインストーラと自動インストーラ(AI)ではrootを役割にせずにインストールすることができる

 

解答: 3,4,5,6

解説:
1. Live
メディアはx86システムのみ使用可能です。
2. Live
メディアではネットワークの構成は選択できず自動構成になります。テキストインストーラやAIインストールでは自動構成/手動構成/構成しないを選択可能です。自動構成ではDHCPが使用され、IPアドレス、ホスト名、ネームサービス(DNS)が自動的に設定されます。インストール直後にipadm show-addrを実行してTYPEdhcpなら自動構成を選んだと考えられます。また、物理NIClo0しかない場合はインストール時にネットワークの構成を省略(Noneを選択)したと考えられます。
3. Live
メディアではsolaris-desktopというパッケージグループが使用されます。テキストインストーラではsolaris-large-serverパッケージグループが使用され、各種サーバーサービスは充実していますが、デスクトップアプリケーションはインストールされません。pkg list group/system/* コマンドでインストールされているパッケージグループを確認することができます。
4. root
は役割(ロール)になるため、直接ログインすることはできません。
5.
その通りです。
6.
一般ユーザー(管理ユーザー)の作成を省略するとrootは役割にならず実ユーザーとして構成されます。

問題3:

自動インストーラ(AI)についての正しい説明を3つ選択してください。

1.      AIサーバーとなるシステムにinstall/installadmパッケージをインストールする必要がある

2.      AIサーバーではpkg/serverサービスを稼働させる必要がある

3.      AIによるインストールではDHCPサーバーが必要になる

4.      AIクライアントとAIサーバーのアーキテクチャ(SPARC, x86)は揃える必要がある

5.      クライアントのアーキテクチャ(SPARC, x86)ごと、インストールしたいOSのバージョンごとにインストールサービスを用意する

6.      インストールするOSのバージョンはシステム構成(SC)プロファイルで指定できる

 

解答: 1,3,5

解説:
1.
その通りです。
2. pkg/server
IPSリポジトリサーバーで、AI環境には必要なサービスです。ただし、AIサーバーと同一マシンをIPSリポジトリにすることは可能ですが、別のサーバーをIPSリポジトリサーバーとして構成することも可能です。
3.
その通りです。installadmコマンドによりAIサーバーの構成と同時にDHCPサーバーとして構成することができます。そうしない場合は外部のDHCPサーバーを利用する必要があります。
4.
クライアントとサーバーのアーキテクチャを揃える必要はありません。AIサーバーはSPARC/x86システムのどちらにでも構成でき、クライアントのアーキテクチャに応じたサービスをそれぞれ作成しておけば、SPARC/x86のクライアントシステムにAIインストールが可能です。
5.
その通りです。少なくともクライアントのアーキテクチャ(SPARC用、x86用)でインストールサービスを分ける必要があります。また、起動可能なOSのバージョンが異なるサーバーが混在している場合は、OSのバージョンごとにAIイメージを用意してインストールサービスを構成しておく必要があります。
6. OS
のバージョンはAIマニフェストで指定します。「AIマニフェスト」では、OSのバージョン、インストール対象のパッケージ、IPSリポジトリ(デフォルトのリポジトリ:http://pkg.oracle.com/solaris/release)、ディスク構成などを指定することができます。「SCプロファイル」では、rootパスワード、ネットワーク構成、タイムゾーン、キーボード、ネームサービスなどを指定することができます。「条件ファイル」はMACアドレスなどでクライアントを識別するために使用されます。

問題4:

サポートエンジニアに正確なOSのバージョンを提供するために、Solaris11 のビルドやブランチバージョンの詳細を確認したいと思います。正しいコマンドを2つ選択してください。

1.      cat /etc/release

2.      pkg list entire

3.      pkg info entire

4.      uname -a

5.      prtconf -v | grep build

 

解答: 2,3

解説:
選択肢14ではSolaris 11.3のようなメジャーバージョンは確認できますが、ビルドやブランチバージョンまでは確認することはできません。Solaris11ではentireパッケージの情報を確認することにより、正確なOSバージョンを把握することができます。選択肢3pkg info entireコマンドの方が詳細な情報を得られますが、選択肢2pkg list entireコマンドでもブランチバージョンまで表示可能です。選択肢5prtconfコマンドは本来はメモリの総量やシステム周辺機器の構成を取得可能ですが、この例では何の結果も得られません。

ソフトウェア・パッケージの更新と管理

問題5:

Image Packaging System (IPS)についての正しい説明を5つ選択してください。

1.      IPSリポジトリとはソフトウェアパッケージの集まりでリポジトリ内のすべてのパッケージはカタログに含まれる。

2.      IPSリポジトリは各組織でローカルネットワーク内に作成する必要がある。

3.      IPSイメージとはパッケージをインストールできる場所(ディレクトリツリー)のことで、完全なシステムを提供できるフルイメージ、フルイメージ(親イメージ)にリンクされる部分イメージなどがある。また、必要に応じて様々な場所にマウントすることができる。

4.      OSの更新はパッチという形式でリポジトリに公開される。

5.      デフォルトではリブートを必要とするパッケージ操作の場合は、新しいブート環境(BE)が作成され、次のブート時にアクティブになるように設定される。

6.      IPSリポジトリには起点(origin)とミラーという概念があり、物理的なレイアウトを最適化することによりパッケージ操作を高速化することができる。

7.      Solaris11がインストールされており、ディスク容量に4GB程度余裕があれば、x86/SPARCシステムどちらでもIPSリポジトリサーバーとして構成可能である。

8.      ローカルリポジトリはZFSファイルシステムに保存する必要があるが、NFSHTTPを通してクライアントにアクセスさせることができる。

 

解答: 1,3,5,6,8

解説:
1. その通りです。
2.
デフォルトのIPSリポジトリはsolarisパブリッシャー(発行元)としてhttp://pkg.oracle.com/solaris/release/に設定されており、インターネットにアクセスできる環境であればローカルに作成する必要はありません。
3.
その通りです。
4. Solaris11
ではパッチという概念はなくなり、すべての更新はパッケージとしてリポジトリに公開されています。
5.
その通りです。この動きはpkg propertyの出力のbe-policyの値で確認することが可能です。defaultとなっている場合はcreate-backupと同じになります。always-newはもっとも厳格ですべてのパッケージ操作で新しいBEを作成します。また、pkg install --be-name newBE pkg_name be-policyにかかわらず新しいBEを作成して、そのBEにパッケージをインストールすることもできます。詳しくはpkgコマンドのマニュアルを参考にしてください。
6.
その通りです。起点は、パッケージのメタデータ (カタログ、マニフェスト、検索インデックスなど) とパッケージの内容 (ファイル) の両方を含むパッケージリポジトリのことです。ミラーは、パッケージの内容のみを含むパッケージリポジトリのことです。
7.
ディスク容量は最低でも8GB程度必要です。
8. IPS
サーバー側でローカルリポジトリをNFSでシェアしておけば、クライアント側はpkg set-publisherコマンドで起点をNFSマウントしたディレクトリに設定することもできます。

問題6:

更新可能なパッケージを表示できるコマンドはどれですか。正しいものを2つ選択してください。

1.      pkg list -u

2.      pkg revert

3.      pkg fix

4.      pkg verify

5.      pkg info -r

6.      pkg set-publisher -g '*'

7.      pkg update -nv '*'

8.      pkg search -u

 

解答: 1,7

解説:
1.
正解です。-uオプションは更新可能なパッケージを表示します。
2. pkg revert file_name
により個別ファイルを復元でき、提供時の状態に戻すことができます。
3. pkg fix pkg_name
によりpkg verifyで報告されるエラーをパッケージ単位ですべて修正できます。
4. pkg verify pkg_name
によりインストールされているパッケージを検証し、内容の更新、所有者やパーミッションの変更の有無を確認できます。
5. pkg info -r pkg_name
によりシステムにインストールされていないパッケージ情報を表示することができます。
6. pkg set-publisher -G '*' -g http://example.com/repo solaris
solarisパブリッシャの既存のoriginリポジトリを削除して新しいものを追加することができます。-Gオプションで削除するリポジトリ、-gオプションで追加するリポジトリを指定します。
7.
正解です。すべてのパッケージに対してドライラン(-n)で詳細を表示(-v)しながらアップデート操作を検証していますので、更新可能なパッケージが表示されます。
8. search
サブコマンドに-uオプションは無効なので構文エラーです。pkg search stringsはパッケージの検索で使用できます。strings部分にコマンド名やファイル名を指定することで、現在設定されているパブリッシャから対応するパッケージを検索可能です。

問題7:

以下のコマンド出力の説明のうち正しいものを3つ選択してください。

# beadm list
BE Active Mountpoint Space Policy Created
-- ------ ---------- ----- ------ -------
solaris !R - 5.78M static 2013-02-22 01:31
solaris-1 NR / 495.55M static 2013-02-22 01:50

1.      solaris はブート不可能なBEである

2.      solaris BEを削除することができる

3.      solaris BEのスナップショットを作成できる

4.      現在アクティブなBEsolaris-1 である

5.      solaris BEの名前を変更することができる

6.      solaris-1 BEは再起動後もアクティブになるように設定されている

 

解答: 1,4,6

解説:
1. その通りです。Active列にが表示されるのは入れ子のBEを表しており、非大域ゾーン内のBEによく見られます。
2. "!"
がついたブート不可能な入れ子のBEは削除できません。
3. "!"
がついたブート不可能な入れ子のBEのスナップショットの作成はできません。
4.
その通りです。Active列に"N"があるためです。
5. "!"
がついたブート不可能な入れ子のBEの名前変更はできません。
6.
その通りです。Active列に"NR"があるためです。
また、"!"がついたブート不可能な入れ子のBE-eオプションで新規BEの作成元イメージとして指定することもできません。

サービスの管理

問題8:

起動時に指定できるSMFマイルストーンのうち正しくないものを2つ選択してください。

1.      none

2.      config

3.      single-user

4.      network

5.      multi-user

6.      multi-user-server

7.      all

 

解答: 2,4

解説:
起動時の指定の方法は boot -m milestone=xxxxxで、xxxxx部分に指定できるのはnone, single-user, multi-user, multi-user-server, all5つだけです。 また、従来から利用できるboot -s によるシングルユーザーモードでの起動と boot -m milestone=single-user は同じ動作になります。x86/64システムのGRUBによる起動でもオプションは同じになります。起動後はsvcadm milestone xxxxxでランレベルを変更することが可能です。起動時のトラブルシューティング目的でnone → sigle-user → multi-user → multi-user-server → allと段階的に移行して、各段階でのサービスの起動を確認できます。

問題9:

sshサービスに絡む依存関係を調べることができるコマンドのうち正しいものを3つ選択してください。

1.      svcs -d ssh

2.      svcs -D svc:/network/ssh:default

3.      svcs -p ssh

4.      svcadm boot-config ssh

5.      svccfg -s ssh setnotify from-online,to-maintenance mailto:root@localhost

6.      svcs -l ssh

7.      svcprop -p start/exec ssh

 

解答: 1,2,6

解説:
1.
正解です。sshサービスが依存するサービスが表示されます。
2.
正解です。ssh サービスに依存するサービスが表示されます。
3. ssh
サービスから起動するプロセスを表示します。
4.
構文として間違いです。ちなみに、boot-configサービスのfastreboot_defaultfastreboot_onpanicプロパティで高速再起動(Fast Reboot)の設定が可能です。デフォルトでは高速再起動はx86で有効、SPARCでは無効に設定されています。高速再起動はGRUBをバイパスして、カーネル内ブートローダーを使用してカーネルをロードすることで再起動処理を高速化します。
5.
これはSMFの通知機能の設定です。これによりsshサービスのステータスがonlineから別に変更された、もしくは別のステータスからmaintenanceに変更された場合、root@localhostにメールで通知が飛ぶようになります。
6.
正解です。出力のdependency部分で依存関係を確認できます。
7. ssh
サービスが有効になるときに実行されるプログラムを表示します。

データ・ストレージの設定と管理

問題10:

以下はあるコマンドの出力です。ここから読み取れる情報として正しいものを5つ選択してください。なお、使用しているディスク(c3tXd0)はすべて8GBの容量だと仮定します。

pool: testpool
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
testpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c3t2d0 ONLINE 0 0 0
c3t3d0 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
c3t4d0 ONLINE 0 0 0
c3t5d0 ONLINE 0 0 0

errors: No known data errors

1.      この出力はzpool list testpool コマンドの結果である

2.      testpoolの容量は32GBになる

3.      c3t2d0 EFIのディスクラベルを持つ

4.      testpool4つのディスクからなる2-wayミラー構成である

5.      最上位の仮想デバイスの冗長性が異なっているので、testpoolは推奨された構成ではない

6.      testpool2つのディスク(c3t2d0, c3t3d0)からなる2-wayミラー構成から拡張して作成することができる

7.      testpool2つのディスク(c3t2s0, c3t4d0)からなる非冗長構成のプールから拡張して作成することができる

8.      未使用のディスクc3t6d0があると仮定すると、zpool replaceコマンドを使用してONLINEの状態のまま、使用中のc3t5d0のディスクをc3t6d0に置き換えることができる。

 

解答: 3,4,6,7,8

解説:
1.
これはzpool status testpool の出力です。
2. 2-way
ミラー構成なので容量は半分の16GBになります。
3.
正解です。ディスクを丸ごとZFSの管理下に置いているのでEFIディスクラベルになります。
4.
正解です。各ミラー仮想デバイス(mirror-0, mirror-1)の構成要素となるディスクが2つなので2-wayになります。
5.
最上位仮想デバイスは mirror-0 mirror-1であり、それぞれ2-wayなので冗長性は同じです。
6.
正解です。zpool add testpool mirror c3t4d0 c3t5d0 で拡張することが可能です。
7.
正解です。zpool attach testpool c3t2d0 c3t3d0; zpool attach testpool c3t4d0 c3t5d0 で拡張することが可能です。
8.
正解です。

問題11:

oracleプールにある以下のようなファイルシステムをまとめてbackupプールにバックアップしたいと考えています。

NAME USED AVAIL REFER MOUNTPOINT
oracle 120M 856M 35K /oracle
oracle/archive 31K 856M 31K /oracle/archive
oracle/datafile 100M 856M 100M /oracle/datafile
oracle/redolog 20.0M 856M 20.0M /oracle/redolog

使用するであろうコマンドを2つ選択してください。

1.      zfs snapshot -r oracle@test

2.      zfs rollback -r oracle@test

3.      zfs clone oracle@test backup/oracle

4.      zfs send -i oracle@test | zfs receive -Fd backup

5.      zfs send -r oracle | zfs receive -d backup

6.      zfs send -r oracle@test | zfs recv -Fd backup

 

解答: 1,6

解説:
1. 正解です。このコマンドでは、oracleファイルシステムと子ファイルシステムのスナップショットをまとめて作成しています。
2.
このコマンドでは、oracle@testスナップショットにロールバックしています。
3.
このコマンドでは、異なるプールにクローンを作成しようとしているのでエラーになります。そもそもクローンはバックアップにはならず、容量を最小限に抑えたファイルシステムのコピーのような扱いになります。
4.
このコマンドでは、エラーになります。send -i オプションはスナップショットの差分を送信するときに使用しますので、スナップショットを2つ指定する必要があります。
5.
このコマンドでは、エラーになります。sendで送信できるのはスナップショットだけです。
6.
正解です。このコマンドでは、再帰的スナップショットを送信して、backupプールで受信しています。-dオプションで送信側の名前を使用してスナップショットを作成し、-Fオプションで既存のbackupファイルシステムで受信できるようにしています。

問題12:

以下のZFSの機能に関する説明のうち正しいものを2つ選択してください。

1.      zfs diff によりスナップショットと子孫データセットとの差異の概要情報を取得可能である。差異の情報は、ファイルやディレクトリなどの追加・削除・更新のみで名前変更は判別できない。また子孫データセットはスナップショットと現在のデータセットのどちらも指定できる。

2.      ZFSファイルシステムのdedupプロパティをonにすることにより、対象となるファイルシステムに重複データが含まれている場合は直ちにファイルシステムの使用容量が削減される。

3.      以下の設定は矛盾しているためエラーになる。

# zfs set quota=800M testpool/data
# zfs set reservation=1G testpool/data

4.      quotaプロパティによる割り当て制限は、対象となるデータセットとその子孫も含めて容量を制限するが、reservationプロパティによる予約は対象となるデータセット用の容量の予約となり、子孫で使用される容量は含まれない。

5.      以下のように親ファイルシステム(testpool/db)をマウントせずに、子孫のファイルシステム(testpool/db/oracle)をマウントしても/db/oracleディレクトリにアクセスすることはできる。

# zfs list -r testpool
NAME USED AVAIL REFER MOUNTPOINT
testpool 186K 976M 31K /testpool
testpool/db 62K 976M 31K none
testpool/db/oracle 31K 976M 31K /db/oracle

 

解答: 3,5

解説:
1.
名前変更も判別できます。(+:追加、-:削除、M:変更、R:名前変更)
2.
プロパティを設定しても既存データの重複排除は行われません。dedupプロパティはファイルシステムごとに設定しますが重複排除はプールレベルで行われるため、重複排除率はzpoolコマンドで確認します。
3.
正解です。割り当て制限(quota)を超える予約(reservation)は設定できません。ただし、プールサイズを超える割り当て制限は設定可能です。
4. reservation
プロパティによる予約も子孫も含めて計算されます。子孫を含めない場合はrefreservationプロパティを使用します。同様に子孫を含めない割当て制限としてrefquotaプロパティも存在します。
5.
正解です。 mountpointプロパティをnoneに設定しています。マウントポイントのディレクトリを子孫ファイルシステムに継承しつつ、同様に親ファイルシステムをマウントしたくない場合は、mountpointプロパティをnoneにするのではなくcanmountプロパティをoffにします。

 

問題13:

COMSTAR(Common Multiprotocol SCSI Target)フレームワークに関連する以下の説明のうち正しいものを2つ選択してください。

1.      Solaris 11ホストをSCSIターゲットデバイスに設定することが可能である

2.      stmfサービスやstmfadmコマンドはscsi-target-mode-frameworkパッケージにより提供され、このパッケージはsolaris-large-serverパッケージグループに含まれている。

3.      iSCSIターゲットの管理にはitadmコマンド、iSCSIイニシエータの管理にはiscsiadmコマンドを使用する。

4.      iSCSIを使用することでネットワークを介してリモートの論理ユニットをローカルのディスクデバイスとしてマウントして利用できるが、1つのIPポートに対して1つのiSCSIターゲットデバイスしか対応しない。

 

解答: 1,3

解説:
1.
正解です。ファイバ・チャネル(FC)iSCSISRP(IB)など様々な接続形態に対応しています。
2.
このパッケージはstorage-serverパッケージグループに含まれています。
3.
正解です。ターゲットデバイスとなる論理ユニット(LU)の管理はstmfadmで行い、iSCSIターゲットノードの管理はitadmで行います。Solaris10ではiSCSIターゲットノードの管理にはiscsitadmコマンドを使用していました(iscsiadmコマンドと似ているの注意)
4. 1
つのIPポートに対して複数のiSCSIターゲットデバイスを紐づけることが可能です。ちなみにSolaris 11 11/11(初期版)ではiSCSIターゲットをダンプデバイスにすることはできません。(Solaris11.1以降は可能です)

Oracle Solaris ゾーンの管理

問題14:

Solaris11のゾーン機能についての説明のうち正しいものを3つ選んでください。

1.      Solaris10ブランド・ゾーンを使用することで、既存のSolaris10システムの大域ゾーンと非大域ゾーンをそれぞれSolaris11システムに移行することが可能である。

2.      Solaris11のゾーンは疎ルートモデルのみサポートされている

3.      Solaris10ブランド・ゾーンは、移行元のSolaris10システムの全体フラッシュアーカイブを適用することでインストールすることができる。

4.      Solaris10ブランド・ゾーンは、Solaris10 DVD メディアもしくはISOイメージからインストールすることができる。

5.      Solaris11のゾーンはデフォルトでip-typeexclusive(排他IP)に設定される。

6.      非大域ゾーンはNFSサーバーになることはできない

7.      非大域ゾーンのzonepathZFSもしくはUFSファイルシステム上に指定する必要がある。

 

解答: 1,3,5

解説:
1.
正解です。Solaris10に関してはP2VV2V(完全ルート、疎ルート)ともに移行可能です。ただしLegacy Container(Solaris8/9)Solaris11では動かすことはできません。
2.
疎ルートモデルは廃止されました。すべて完全ルートモデルになります。ただし不変ゾーンという考え方が追加されています。(file-mac-profileプロパティで指定します。zonecfgのマニュアルを参照してください。)
3.
正解です。zonecfgで構成後にzoneadm -z s10_zone install -a /s10zone.flar -u などでインストールできます。その他 ufsdumpのフルバックアップやcpioアーカイブ、cpioアーカイブのgzip/bzip2圧縮なども対応しています。
4.
あくまでも移行目的なのでDVDISOからプレーンのSolaris10をインストールすることは考えられていません。
5.
正解です。物理NIC1つしかないシステムでもVNICが自動的に作成されゾーンに割り当てられます。排他IPゾーンであれば、ゾーン内でdladmipadmなどを使用してネットワーク構成、ルーティング構成、IPMP構成などを実行でき、snoopなども可能になります。共有IPゾーンの場合、DHCP構成にすることはできません。
6. Solaris11
から非大域ゾーンをNFSサーバーとして構成可能になりました。(ただし、solaris10ブランドゾーンは不可です。)
7. UFS
はサポートしていません。

問題15:

以下のコマンド出力に関する説明のうち正しいものを4つ選択してください。

ID NAME STATUS PATH BRAND IP
0 global running / solaris shared
2 zone1 running /zones/zone1 solaris excl
- zone2 incomplete /zones/zone2 solaris excl
- zone3 configured /zones/zone3 solaris10 excl

1.      zone2はインストール中の可能性があるが、この状態が長く続くのであれば、いったんアンインストールして再インストールしなければ正常な状態には戻せない。

2.      このコマンド出力はzoneadm list -iv の結果である。

3.      zone3は構成済みなのですぐに起動できる状態である。

4.      zonecfg -z zone3 export によりzone3を別のシステムに移行するためにシステムから切り離すことができる。

5.      zone3 solaris10ブランドゾーンである。

6.      zone1は稼働中なので安全に停止するにはzoneadm -z zone1 shutdown を実行する。

7.      稼働している大域ゾーン(global)zone1CPUや物理メモリの使用状況はzonestat コマンドで確認できる。

 

解答: 1, 5, 6, 7

解説:
1. 正解です。通常incompleteはインストール中、アンインストール中の一時ステータスです。ちなみにzoneadm -z zone_name mark incomplete で管理上の都合で意図的にincompleteにすることもできます。
2. configured
ステータスのzone3も表示されているため、-cオプションは必要で、zoneadm list -vc の結果であると考えられます。
3.
起動の前にインストール作業が必要です。installedもしくはreadyステータスのゾーンのみが起動可能です。
4.
これはzone3のコマンド形式の構成を表示するコマンドです。-f オプションもしくは出力リダイレクトでファイルに保存すれば、そのファイルを使ってzonecfg -z zone_name -f file_nameで構成をインポートすることにより、素早くゾーンの構成を済ませることもできます。ゾーンの構成情報を見るだけであればzonecfg -z zone3 info が一般的です。
5.
正解です。構成時にcreate -t SYSsolaris10 を指定すると、このようにBRAND列にsolaris10と表示されます。
6.
正解です。他にも zlogin zone1 shutdown -i 0 なども可能です。
7.
正解です。zonestat -R total 2s 30 10s と指定すると2秒ごとに30回、さらに10秒ごとにtotalレポートを出力します。-q オプションを追加すると要約レポートのみ表示することも可能です。-rで個別リソースの指定も可能です。詳しくはzonestatコマンドのマニュアルを参照してください。

物理ネットワークの管理

問題16:

以下のコマンド出力から読み取れる情報として正しいものを3つ選択してください。

# dladm show-phys

LINK MEDIA STATE SPEED DUPLEX DEVICE
net1 Ethernet up 1000 full e1000g1
net2 Ethernet up 1000 full e1000g2
net0 Ethernet up 1000 full e1000g0
net3 Ethernet unknown 0 unknown e1000g3

# ipadm show-if

IFNAME CLASS STATE ACTIVE OVER
lo0 loopback ok yes --
net0 ip ok yes --
net1 ip down no --
net2 ip down no --

# ipadm show-addr

ADDROBJ TYPE STATE ADDR
lo0/v4 static ok 127.0.0.1/8
net0/v4 static ok 192.168.0.100/24
net1/v4 static duplicate 192.168.0.111/24
net2/v4 static down 192.168.0.102/24
lo0/v6 static ok ::1/128
net0/v6 addrconf ok fe80::a00:27ff:fe11:4a2e/10

1.      このシステムではe1000g0e1000g34つのNICが認識されており、それぞれnet0net3というリンク名になっている。

2.      net0net1net2にはIPv4アドレスが設定されているが、どのインターフェースも利用できない状態である。

3.      net0に設定されているIPv4アドレスのネットマスクは255.255.255.0である。

4.      この状態でipadm create-ip net2 と実行するとnet2がアクティブな状態になる。

5.      net1/v4に設定されているIPv4アドレスはローカルネットワーク内で重複している可能性がある。

6.      この状態で ipadm up-addr net1/v4 と実行するとnet1がアクティブな状態になる。

 

解答: 1,3,5

解説:
1.
正解です。dladm show-physの結果のLINK列、DEVICE列から判断できます。
2. net0
ipadm show-ifACTIVE列でyesとなっているので利用できます。
3.
正解です。ADDR列の/24から24bitマスク(255.255.255.0)であることがわかります。
4. net2
インタフェースは既に作成されているのでInterface already exist というエラーになります。
5.
正解です。duplicate状態から読み取れます。ローカルネットワーク内であればarpコマンドでアドレスの重複の裏付けを取ることができます。
6. net1/v4
duplicate 状態なのでupするだけではアクティブにはなりません。net2/v4であればdown状態なのでupするだけでアクティブになります。

問題17:

net0net1を使用してリンク集約aggr0を作成しました。リンク集約の構成や各リンクがどのようにロードバランスしているかを確認することができるコマンドを3つ選択してください。

1.      dladm show-link

2.      traceroute aggr0

3.      ping -a aggr0

4.      dlstat show-aggr

5.      dladm show-aggr

6.      ifconfig -a

7.      ipmpstat -i

 

解答: 1,4,5

解説:
1. 正解です。一般にリンク名の一覧表示目的で使用しますが、リンク集約aggr0のメンバーとなっているリンクの確認も可能です。Solaris11のデフォルトのデータリンク名はnet0net1となっています。
2. traceroute
コマンドにリンク集約aggr0を指定するのは不正です。ホスト名もしくはIPアドレスを指定することで、そのホストまでの経路を探索することができます。この探索にはICMPが利用されています。
3. ping
コマンドにリンク集約aggr0を指定するのは不正です。ホスト名もしくはIPアドレスを指定することで、そのホストまでのIP接続の可否を確認することができます。この確認にはICMPが利用されています。
4.
正解です。束ねたリンクのそれぞれの利用状況(ロードバランス具合)を確認することができます。
5.
正解です。リンク集約の構成(LACP構成など)を確認できます。
6. IP
インタフェースの構成情報を確認できるレガシーコマンドですが、リンク集約の構成は確認できません。
7. IPMP
構成のインタフェース情報を表示するコマンドです。このコマンドのFLAGS部分の意味(i: アクティブでない、m,M: マルチキャストなど)ipmpstatのマニュアルを参照してください。

ユーザー・アカウントの設定と管理

問題18:

ユーザーアカウント、グループ、役割(ロール)についての説明のうち正しいものを3つ選択してください。

1.      ユーザーID(UID) 0999 はシステムに予約されている。

2.      非推奨だがUIDを重複させてユーザーを作成することは可能である。

3.      idコマンドで確認できるグループ情報が、ファイルやディレクトリを作成した場合の、デフォルトのグループ所有権になる。

4.      アカウント名には英数字以外にも「.」「-」「_」の特殊文字の使用が可能。

5.      自分の所属グループは/etc/groupファイルを確認すればすべて把握できる。

6.      groupadd Test を実行すると、正常に実行されTestグループが作成される。

7.      パスワードの最小文字数は/etc/security/policy.confで設定されておりデフォルトで8である。

 

解答: 2,3,4

解説:
1. UID 0
99がシステムに予約されています。10060000の利用が推奨されていますが60000以降のIDも使用可能です。
2.
正解です。useradd -o オプションで重複を許容できます。
3.
正解です。idコマンドで表示されるグループが現在のグループです。所属グループをすべて表示するにはid -aを使用します。
4.
正解です。アカウント名のルールはman -s 4 passwd で確認可能です。
5. /etc/group
ファイルのユーザーリスト部分は2次グループの情報です。1次グループ(プライマリグループ)は/etc/passwdにしか登録されていません。デフォルトではプライマリグループ含めて16グループまで所属可能です。
6. Test
グループは作成されますが、すべて小文字にするようにエラーが出ます。
7.
パスワードの最小文字数は/etc/default/passwdで設定されており、デフォルトで6文字です。

問題19:

カレントディレクトリに以下のようなファイルがあり、test.sh test2.sh test3.sh3つのファイルを~/script ディレクトリにコピーして、それぞれ実行権が付与されている状態にしたいと考えております。以下のうち、目的の結果になるものを2つ選択してください。現在のumask値は0022であると仮定します。

-rw-r--r-- 1 oracle oinstall 0 2 25 14:30 script.sh
-rw-r--r-- 1 oracle oinstall 0 2
25 14:27 test.sh
-rw-r--r-- 1 oracle oinstall 0 2
25 14:27 test2.sh
-rw-r--r-- 1 oracle oinstall 0 2
25 14:27 test3.sh

1.      cp *.sh ~/script
chmod u+x ~/script/*.sh

2.      chmod u+x test*.sh
cp test*.sh ~/script

3.      cp test*.sh ~/script
chmod u+x ~/script/test*.sh

4.      umask 0011
cp test*.sh ~/script

5.      cp test?.sh ~/script
chmod u+x ~/script/test?.sh

解答: 2,3

解説:
1. script.shもコピーされてしまうので不正解です。
2.
正解です。デフォルトのumask値ではコピーしても実行権は削除されないため、先にパーミッションを変更して、コピーしても目的の結果になります。
3.
正解です。目的の結果になります。
4. umask
では実行権の付与はできません。umask値には、ファイルの新規作成時やコピー時に与えたくない権限を指定します。スクリプトファイルへの実行権の付与にはchmodコマンドの実行は必要で、viでも保存時に実行権を自動的に与えるオプションはありません。
5. "?"
は任意の1文字を表すため、これではtest.shがコピーされません。

問題20:

ユーザーoraclebashを使用しています。ユーザーの各種環境設定ファイルの説明のうち正しいものを2つ選択してください。

1.      /etc/profile$HOME/.profile に同じ環境変数のエントリがあった場合には/etc/profileのエントリが適用される。

2.      /etc/skel/local.profileはユーザーの作成時に自動的に各ユーザーのホームディレクトリにコピーされるため、このファイルに管理者が環境変数の設定などを追記しておくことで、一般ユーザーは何もしなくても自動的にその設定を利用することができる。

3.      /etc/profile → $HOME/.profile → $HOME/.bashrc の順序で読み込まれるので、同じ環境変数の設定が重なった場合は最後に読み込まれたエントリが適用される。

4.      /etc/profile$HOME/.profileはログイン時に1度だけ、$HOME/.bashrcbash起動のたびに読み込まれる。

 

解答: 3,4

解説:
1.
後に読み込まれる$HOME/.profileのエントリが適用されます。
2. local.profile
という名前のままコピーされるため、そのままでは読み取られません。ユーザー側で.profileなどに名前変更をして使用します。
3.
その通りです。
4.
その通りです。

システムおよびファイルへのアクセスの制御

問題21:

以下のようなコマンドの実行結果があります。リモートホストのIPアドレスは192.168.0.100であると仮定しています。

$ ssh 192.168.0.100
ssh: connect to host 192.168.0.100 port 22: Connection refused

この結果の説明として正しいものを1つ選択してください。

6.      リモートホスト(192.168.0.100)の公開鍵が$HOME/.ssh/known_hostsファイルに登録されていない。

7.      ローカルホストの公開鍵がリモートホストの/etc/ssh/known_hostsファイルに登録されていない。

8.      リモートホストでsshのサービスが動作していない可能性がある。

9.      ローカルホストでsshのサービスが適切に構成されていない可能性がある。

10.   ローカルホストの/etc/ssh/sshd_configファイルを修正する必要がある。


解答: 3

解説:
1.
この場合以下のようなメッセージになります。yesと入力するとknown_hostsファイルにリモートホストの公開鍵(/etc/ssh/*.pub)が登録されます。
-------------------------------------------------------------------------
ホスト '10.190.96.242 (10.190.96.242)' の認証を確立できません.
RSA
鍵フィンガープリントは af:b3:f4:4e:89:e6:34:ee:c2:33:45:9a:5b:ba:cc:48 です
本当に接続を継続してもよろしいですか (yes/no)? Yes
警告: 既知ホストのリストに '10.190.96.242' (RSA) を追加しました。
-------------------------------------------------------------------------
2. /etc/ssh/known_hosts
ファイルはホスト認証時にクライアントの公開ホスト鍵を登録するときに使用します。
3.
正解です。Connection refusedというメッセージはリモートホスト側でsshdサービスが動作していない場合に表示されます。
4.
ローカルホストのsshサービスはアクセス時には関係ありません。
5. /etc/ssh/sshd_config
ファイルはsshサービスの構成ファイルですが、このアクセスにおいて、ローカルのファイルは関係ありません。

問題22:

以下のコマンド出力があります。

$ who am i
root pts/1 2
25 17:38 (10.185.209.212)
$ id
uid=103(oracle) gid=100(oinstall)
$ ls -ld .
drwxr-x--- 2 oracle oinstall 512 2
25 17:43 .
$ ls -l *.sh
-rwxr-xr-x 1 oracle oinstall 75 2
25 17:43 script.sh
$ id user1
uid=101(user1) gid=1(other)
$ cd ~user1
$ ls -l *.sh
-rwsr-xr-x 1 user1 other 59 2
25 17:41 test.sh

この結果から読み取ることができる情報として正しいものを3つ選択してください。

1.      rootでログインをしてsuコマンドでoracleユーザーに変更している状態である。

2.      oracleユーザーでログインをしてsuコマンドでrootに変更している状態である。

3.      現在のユーザーでtest.shを実行するとtest.shプロセスはuser1の権限で動作する。

4.      現在のユーザーでtest.shを実行しようとしてもこのファイルの所有者でないためエラーになる。

5.      user1ユーザーはscript.shを実行することはできない。

6.      user1ユーザーはscript.shファイルを読み取ることはできる。

 

解答: 1,3,5

解説:
1.
正解です。who am i は元のログイン情報、whoamiidは現在の権限情報が表示されます。
2. who am i
は元のログイン情報、whoamiidは現在の権限情報が表示されます。
3.
正解です。test.shにはsetuidが設定されているため、誰が実行してもtest.shプロセスはファイルの所有者であるuser1の権限で動作します。chmod 4755 test.shを実行することによりこのパーミッション設定にすることができます。
4.
その他のユーザーにも実行権があるためエラーにはなりません。
5.
正解です。user1にはscript.shの実行権はありますが、親ディレクトリにアクセス権(実行権)がないため、script.shにたどりつくことができず実行することはできません。
6. E
と同様な理由で読み取りも含めて一切のアクセスができません。

システム・プロセスの管理とシステム・タスクのスケジューリング

問題22:

以下のコマンド出力があります。

$ echo $$
18511
$ ps –ef
...(
出力省略)
oracle 18532 18531 0 10:51:47 pts/1 0:00 sleep 1000
oracle 18531 18511 0 10:51:47 pts/1 0:00 /bin/bash ./script.sh
oracle 18511 18419 0 10:50:28 pts/1 0:00 –bash
...(
出力省略)

この結果から読み取ることができる情報として正しいものを3つ選択してください。

1.      kill 18531 と実行することでsleepプロセスにSIGKILLシグナルが送られsleepプロセスを強制終了できる。

2.      pkill sleep と実行することで sleepプロセスを終了することができる。

3.      現在使用しているシェルからscript.shスクリプトが実行されている。

4.      sleep 1000はユーザーが現在使用しているシェルから手入力で実行したコマンドである。

5.      pgrep sleep と実行すると18531というPIDが返される。

6.      pargs -ae 18532 と実行することでsleepプロセスの引数や環境変数の情報を調べることができる。

 

解答: 2,3,6

解説:
1. killコマンドでシグナルを指定しなかった場合にはシグナル15(SIGTERM)が送られ、順序正しく停止します。またPID18531script.shを実行している bashのプロセスなのでsleepは終了しません。
2.
正解です。killコマンドでは プロセスIDを指定、pkill コマンドではプロセス名を指定することでプロセスを終了できます。
3.
正解です。bash(18511)→script.sh(18531)→sleep(18532)という親子関係が読み取れます。
4. sleep
プロセスはscript.shスクリプト内から呼び出されています。
5. 18531
PPID(親プロセスID)sleepPID18532です。
6.
正解です。pargs コマンドのデフォルトは引数(-aオプション)のみの表示ですが、-eで環境変数の情報を取得できます。詳しくはpargsのマニュアルを参照してください。

問題23:

以下のコマンド出力があります。

$ id
uid=103(oracle) gid=100(oinstall)
$ crontab –e
crontab: you are not authorized to use cron. Sorry.

この結果から読み取ることができる情報として正しいものを2つ選択してください。

1.      crontabコマンドはデフォルトではroot権限でしか実行できない。

2.      /etc/cron.d/cron.denyファイルにoracleがエントリされている可能性がある。

3.      /etc/cron.d/cron.allowファイルが存在しない。

4.      /etc/cron.d/cron.allowファイルが存在して、そのファイルにoracleがエントリされていない可能性がある。

5.      PATH変数にcrontabコマンドが格納されているディレクトリが登録されていない。

 

解答: 2,4

解説:
1. デフォルトでは一般ユーザでもcrontabコマンドの実行は可能です。
2.
正解です。crontabコマンドでcrontabファイル(/var/spool/cron/crontabs/*)の作成・変更を制御するには/etc/cron.d/cron.denycron.allowファイルを使用します。デフォルトではcron.denyファイルのみ存在し、このファイルにエントリされているユーザーのみ禁止されます。cron.allowファイルを作成すると動作が変わり、cron.allowファイルに登録されているユーザーのみが許可されるようになります。どちらのファイルも存在しない場合はroot権限でのみ使用可能になります。
3.
上記仕様のため不正解です。
4.
正解です。上記仕様のためです。
5. PATH
変数にコマンドの格納ディレクトリが登録されていない場合は、"command not found"というエラーになります。
ちなみにログのローテーションはrootcrontabsで実行されているlogadmによって行われています。/var/adm/messagesファイルなどのローテーションがデフォルトで行われています。