tnishita2さんの助け合いフォーラム投稿一覧
2014年にリリースされたprocps 3.3.10でfree の出力が変わり、以前はused にバッファとキャッシュを含んでいましたが、現在は含んでいないようです。
https://askubuntu.com/questions/770108/what-do-the-changes-in-free-output-from-14-04-to-16-04-mean
現在の計算式 (used からcached とbuffers は引かれている):
used = total - free - cached - buffers
昔の計算式:
used = total - free
昔のfree コマンドでは「-/+ buffers/cache:」という行が表示されていました。この問題ではその行が表示されていないので、新しめのfree コマンドを使っていると推察され、used にバッファとキャッシュは「含まない」が正解そうです。
OS・設定によるようです。
https://manpages.ubuntu.com/manpages/lunar/en/man8/systemd-timedated.service.8.html
にあるように、
SYSTEMD_TIMEDATED_NTP_SERVICES=chronyd.service:systemd-timesyncd.service
と設定することでchronyd を優先させることもできるようです。また、この問題の「参考」の「参考URL」にあるRHEL 7のドキュメントには
NTP を有効にすると、chronyd サービスまたは ntpd サービスのうち、インストールされている方が有効になります。
と、この問題の解説と同じことが書いてありますので、少なくともRHEL 7に対しては解説の通りのようです。
その違和感は合っています。よく理解できていますので自信を持って学習を進めてください。
解説を書いた人の立場から考えてみると、簡潔さを重視して厳密さを少し犠牲にしたのかもしれません。あるいは、問題文に
全ての行に「hh:mm:ss」形式で時刻が記録されている。
とあることから、3桁以上の範囲はファイル内に存在しないのでこういう説明の仕方をしたのかもしれません。
質問の意味がわかりかねましたが、何とか解釈を試みると、以下のような質問でしょうか。
問題文だと合計10冊以上のマニュアルが必要ですが、正答とされている「10ライセンスパック1個,マニュアル5冊を購入」だと「おまけ1冊+追加5冊=6冊」なので、要件を満たさないのでは?
しかし「10ライセンスパック1個,マニュアル5冊を購入」という選択肢はありません。似ている選択肢として「10ライセンスパック5個,マニュアル5冊を購入」がありますが、そもそもこれは正答とされていません。何か勘違いがありそうなので、今一度問題をよく読んでみるとよいかもしれません。
以前man -K rescue.target
で検索にヒットしなかったという件と同様の話になりますが、 man systemctl
のソースファイルである/usr/share/man/man1/systemctl.1.gz の中ではlist-unit-files は
\fBlist\-unit\-files\fR
のように書かれていて、ハイフンの前にバックスラッシュが入っているため、man -K list-unit-files
ではヒットしません。man -K 'list\-unit\-files'
とすればヒットします。
ドットやハイフンのような特殊文字が入っている文字列は、man -K
では検索できないと思っておくのが無難でしょう。今回のような経験を積んでいけば「ハイフンの前にはバックスラッシュがありそうなので、ハイフン付きで検索してみよう」とか思いつくようになるのかもしれませんが。
https://atomitech.jp/hinemos/study/new-service/rhel7-free/
によると、RHEL 7.1でprocps-ng パッケージのバージョンが3.3.10に上がって、表示が変わったようですね。
資格試験では必ずしも最新バージョンのものが出題されるわけではなく、ソフトウェアの動作が時とともに変わるのはよくあることなので、個人的にはこういうのを必ず至急直すべきとは思いません。
とはいえ、RHEL 7.1がリリースされたのは2015-03-06なので、8年以上前というのはさすがにちょっと古いですね。
微妙な日本語の解釈の問題ですね。
「192.168.10.0のクライアントは時間制限なしにアクセスできる」を
(A)「192.168.10.0のクライアントは、どのようなポートに対しても、時間制限なしにアクセスできる」
と解釈すれば×ですが、
(B)「192.168.10.0のクライアントがアクセスできるかどうかに時間制限はない。ポート制限はあるが、今ポートの話はしていない。」
と解釈すれば○ですよね。chisto28さんは前者と解釈したようですが、出題者は後者のつもりでの出題です。
解釈(A)が絶対ないかと言われると否定は難しいのですが、私には解釈(B)のほうが自然に感じられます。またPing-t ではできませんが、本番の試験では英語に切り替えて文の論理構造を確認してみるのもよいと思います。
また本質的ではないですが実践的には、問題文に「正しいものを全て選べ。」とあるので、「正解は2個以上ありそうだな」という点からも解釈(A)では正解が1個だけになるので解釈(B)がよさそうだという感じはします。
man man
の-K
オプションの説明によると、高速化のために-K の検索は、man ページとしてレンダリングされるテキストではなく、ソースに対して行われるそうです。
man systemd.special
のソースは/usr/share/man/man7/systemd.special.7.gz です。これを展開して中身を見てみると、rescue.target のところは
rescue\&.target,
と書いてありました。そこでman -K 'rescue\&.target'
と実行してみたら検索できました。
実用的ではないですが、検索できない理由としてはこういうことのようです。
この問題の一番の不適切ポイントを「メール送信という方法」だと思われているようですが、着目すべきはそこよりもむしろ「公開鍵ではなく秘密鍵をサーバーに置こうとしている」点です。
鍵の安全性については変化がない様に思いました。
までは正しいですが、その次の
このため、問題文の「管理者」は、root権限を持たない管理者と想定すべき
と考えました。
には論理の飛躍があります。仮にこの問題の管理者がroot 権限を持たないと想定したとしても、別途どこかに必ずroot 権限を持つ管理者もいるわけで、その人に秘密鍵を見られるおそれがあるので、どう想定しても不適切なことに変わりありません。
[root@rocky01 ~]# env -i echo $TMP1003
temptemp <-①
[root@rocky01 ~]# env -u TMP1003 echo $TMP1003
temptemp <-②
の場合、echo
コマンドを実行する前にシェルが$TMP1003
をtemptemp
に展開してしまうので、環境変数TMP1003の中身を表示しているのではなく、echo temptemp
を実行していることになってしまっています。環境変数が空になった上でコマンドが実行されていることを確認するには例えば以下のようにします:
$ export TMP1003=temptemp
$ env bash -c 'echo TMP1003=$TMP1003'
TMP1003=temptemp # 環境変数TMP1003は残っている
$ env -i bash -c 'echo TMP1003=$TMP1003'
TMP1003= # 環境変数TMP1003が消えた
$ env -u TMP1003 bash -c 'echo TMP1003=$TMP1003'
TMP1003= # 環境変数TMP1003が消えた
「bash起動時」は、ログインシェル起動時とも対話型シェル起動時とも限定されておらず、どちらも指します。
とされており、/etc/profileが誤答とされていることから
ここでの「bash起動時」は、上記フロー図右側の
「対話型シェル起動時」だけを意味していると思います。
ここの論理がおかしいと思います。
/etc/profile が誤答とされているのは「『bash起動時』が『対話型シェル起動時』だけを意味しているから」ではなく、「フロー図において、対話型シェル起動時の場合は/etc/profile を通らないから」です。
すでにarashi1977さんとのやりとが始まっていますが、私も調べてみてわかったことがあるので参考までに書きます。
実際には、先日、別の問題の質問で情報を頂いた、relatimeなど
マニュアルにないパラメータもデフォルトに含まれるのかと思い
relatime やseclabel などのオプションはどこから来たのかという点は私も疑問に思いました。調べてみると同じ質問をしている方がいました:
ざっとしか読んでないですがざっくりまとめると、
- defaults が具体的にどんなオプションになるかは、カーネルとファイルシステムタイプで決まる。
- defaults が具体的にどんなオプションになるかを知る一番簡単な方法は、実際にdefaults でマウントしてみて、どんなオプションが指定されたか/proc/mounts やfindmnt コマンドなどで見ること。
- man ページにdefaults が「rw, suid, dev, exec, auto, nouser, and async」とあるのは、もっと明確に(誰かが)書き直すべき。
mount 時にrelatime オプションやnoatime オプションが指定されているためではないでしょうか。
mount | grep relatime
コマンドなどで確認してみてください。
質問の回答になっていないかもしれないのですが、調べたことを参考までにご紹介します。
私の結論としては、「Debian系の場合はランレベル2~5(マルチユーザモード)を区別しません。」というのが誤情報なのでは?と思われました。
「Debian系の場合はランレベル2~5(マルチユーザモード)を区別しません。」というのを私は初耳だったのでウェブでざっと検索してみたところ、日本語版Wikipedia やそれを引用するページしか見当たりませんでした。(Wikipedia や個人ブログレベルではない情報ソースがあれば教えてください。)
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%B3%E3%83%AC%E3%83%99%E3%83%AB
脚注に、この情報元は
http://www.debian.org/doc/FAQ/ch-customizing.en.html#s-booting
とあります。しかしこのページは現在「ページが見つかりません」となります。過去のアーカイブをさかのぼってみると、2019-10-05時点では
https://web.archive.org/web/20191005004354/https://www.debian.org/doc/manuals/debian-faq/ch-customizing.en.html
の「11.6 And how about Debian and traditional System V init?」が
Like most System V compatible Unices, Linux has 7 runlevels:
0 (halt the system),
1 (single-user mode),
2 through 5 (various multi-user modes), and
6 (reboot the system).
となっていました。Wikipedia の著者はここの記述をもとに「Debian系の場合はランレベル2~5(マルチユーザモード)を区別しません。」と解釈したようですが、私にはこの文章はそういう意味ではなく、「ランレベル0, 1, 6の違い・重要度と比べると、ここでランレベル2~5の違いを細かく記述するのは本題ではないので、まとめて書いておきます。」という意味・意図に読み取れました。
なお、上記のページに相当する現在のページは
https://www.debian.org/doc/manuals/debian-faq/customizing.en.html#booting
で、すでにsystemd の記述に更新されていてランレベルの話は削除されています。
選択肢も解説も両方正しいと考えると矛盾していますが、選択肢は誤った説明で、解説は正しい説明ですから、両方とも合っていると思います。
引数に「-」をつけると、su コマンドを実行したユーザの環境変数を引き継ぐ、というのは誤り。正しくは、
引数に「-」をつけると、su コマンドを実行したユーザの環境変数は引き継がず、切り替わる先のユーザの環境変数を使用する。
本番の試験でこういう問題が出るかはさておき、私はこの問題の解答は今もClassic Load Balancer だと思います。理由は二つあります。
(1) 2023年7月4日現在、AWS マネジメントコンソールからClassic Load Balancer を作成することは実際できます。確かに使用を推奨されてはいませんが、「EC2-Classic ネットワークで既存のアプリケーションを実行している場合は、Classic Load Balancer を選択します。」と書いてありますので、要件によっては正解になり得ます。
(2) AWS の試験にはバージョンがあり、定期的に改訂されます。SAA-C03の場合は2022年8月30日にリリースされました。仮に今後Classic Load Balancer が完全廃止されたとしても、新たにSAA-C04に改定されるまでは、SAA-C03がリリースされた2022年8月30日当時の状況を考慮して回答しなければなりません。
これは何か別のコマンドを実行してからnamed-checkzoneを実行しているということなのでしょうか。
いえ、特に何もせずともnamed-checkzone の実行結果は人間が目視できる形で表示されます。
この問題で求められていることはゾーンファイル内容が正しいかどうかのチェック結果だけを目視することではなく、ゾーンファイル内容全体の目視確認です。問題ID : 9486 の例でいえば、vi でexample.com.db を開いたときに目視できる形(バイナリ形式ではなくテキスト形式)になっていてほしいのですが、named-checkzone ではそこまではできないので不正解ということになります。
インスタンスにアタッチできるのはIAMロールではないのですか?
はい、その通りです。この問題の解説にある図でも、EC2インスタンスB にIAM ロールを付与しています。
IAMポリシーもインスタンスなどにアタッチ可能なのでしょうか?
いえ、EC2インスタンスには直接はアタッチできず、IAM ロール経由になると思います。
ただ、だからといってこの問題の選択肢にある「IAMポリシーをIAMユーザーやAWSリソースに対してアタッチする」が間違いというわけではありません。リソースベースのポリシーはAWS リソースにアタッチできます(例:S3バケットポリシー)。IAM ポリシーをアタッチできるAWS リソースもありますが、全部OK ではなく、EC2インスタンスはNG ということかと思います。