Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WebEngineerMeetup10_cui_quiz
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
MzRyuKa
November 09, 2018
Programming
2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
WebEngineerMeetup10_cui_quiz
MzRyuKa
November 09, 2018
More Decks by MzRyuKa
See All by MzRyuKa
EDI_LT_Elixir_books_story
mzryuka
0
700
インフラ勉強会LT資料:自分の本を宣伝するLT
mzryuka
1
160
Internet-Oldman-2_LT-today-no2
mzryuka
0
340
Ginza.js #1 LT_Draw_LineChart
mzryuka
1
560
「ドラクエに学ぶチームマネジメント」読書会第5章
mzryuka
1
280
pplog_5thbd_lt
mzryuka
0
310
TOKIWANOMORI-20180901
mzryuka
0
570
aniben-20180823
mzryuka
1
1.4k
Other Decks in Programming
See All in Programming
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.5k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.5k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
Performance Engineering for Everyone
elenatanasoiu
0
230
ふつうのFeature Flag実践入門
irof
8
4.2k
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
810
Contextとはなにか
chiroruxx
1
380
Webフレームワークの ベンチマークについて
yusukebe
0
180
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
170
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.8k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.6k
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
800
A Modern Web Designer's Workflow
chriscoyier
698
190k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
55k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
210
Technical Leadership for Architectural Decision Making
baasie
3
420
RailsConf 2023
tenderlove
30
1.5k
The agentic SEO stack - context over prompts
schlessera
0
830
Art, The Web, and Tiny UX
lynnandtonic
304
22k
GraphQLとの向き合い方2022年版
quramy
50
15k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
4 Signs Your Business is Dying
shpigford
187
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Transcript
WEB エンジニアなら知っている CUI クイズ WEB エンジニア勉強会 #10 前座LT 2018.11.09 :
MzRyuKa 1
自己紹介 みずりゅ Twitter: @MzRyuKa 好きなもの: ネコ、 うさまる、 技術な話全般 最近触っている言語:golang、Elixir、Vue.js アイコンはTwitter
ではネコ、connpass では「 うさまる」 です。 2
今回の趣旨 今は簡単に開発環境を整えられる時代です。 しかし、 どんなに便利になっても問題発生時に最後に触るのはコン ソー ル、 そうCUI なのです。 CUI:(character user
interface または console user interface) 3
今回の趣旨( 続き) これからWEB と関連するCUI に関する2ー 3択のクイズをお出しし ます。 乾杯が待ち遠しい皆さんの時間つぶしにしてください。 もし知らない内容があったのなら活用してみてください。 4
練習問題 SELinux で一時的にアクセス制限を解除したい。 以下のコマンドを実 施後、SELinux はどのモー ドになっているか? # setenforce 0
A:Disabled B:Permissive C:Enforcing 5
回答 B:Permissive 6
解説 setenforce コマンドで「0」 を指定すると、「SELinux は有効だが、 アクセス制限は行わず警告を出力」 のモー ドである「Permissive」 となります。 なお、「1」
を指定した場合は、 アクセス制限が発生する 「Enforcing」 となります。 それ以外の数値は無効です。 7
と、 こんな感じで進めます。 回答は心の中で。 8
第一問 サー ビス問題。Solaris 10 で、apache をOS 起動時に自動起動するス クリプトファイルはどれか。 A:/etc/rc3.d/D50apache B:/etc/rc3.d/K50apache
C:/etc/rc3.d/S50apache 9
回答 C:/etc/rc3.d/S50apache 10
解説 Solaris10 では、「/etc/rcX.d」(X は任意の数字) の下にあるスクリプ ト名が「S」 で始まるファイル名の場合、 自動起動します。 一方、「K」 で始まる場合は、OS
停止時の自動停止用スクリプトに なります。 それ以外で始まる場合は特に意味は持ちません。 11
第二問 「 マンガでわかるDocker2」 よりコマンド借用。 空欄[ ] に入る設定値 はどれか答えよ。 内容は「 ホストのカレントディレクトリをコンテナ内の所定のパス
にマウントする」 である。 $ docker run -d -p 80:80 --name myapp [ ] php:7.0-apache A: -v $(pwd):/var/www/html B: -v /var/www/html:$(pwd) C: -v /var/www/html 12
回答 A:-v $(pwd):/var/www/html 13
解説 ボリュー ムのマウントは、「-v」 オプションの後に、< ホスト側のデ ィレクトリ>:< コンテナ側のディレクトリ> の順で指定します。 B: の場合は、
ホストとコンテナの順が入れ替わっています。 また、 動作するかも不明ですし、 動作しても実施内容とは異なります。 C: の場合は、 ホスト上の所定の位置にディレクトリを作って、 コン テナ側のディレクトリにマウントします。 14
第三問 Git で「 履歴をコミット毎に1行で表示し、 各コミットで変更された ファイルのリストを表示する。」 コマンドはどれか。 A:git log --oneline
B:git log --oneline --shortstat C:git log --oneline --stat 15
回答 C:git log --oneline --stat 16
解説 「--oneline」 は履歴をコミット毎に1行で表示するオプション。 「--stat」 は各コミットで変更されたファイルのリストを表示するオ プション。 各コミットで変更されたファイルのリストを一行で表示する場合、 オプションには「--shortstat」 を使用する。 17
第四問 サー バが rewalld でアクセス制限をかけている。 ここで、 特定のIP ア ドレス(192.168.1.0/24) に対してhttps
を3日間だけ拒否したい。 有効な設定すべてを選べ。 A:firewall-cmd --remove-rich-rule="rule family=ipv4 source address=192.168.1.0/24 service name=https accept" --timeout=72h B:firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.0/24 service name=https drop" --timeout=72h C:firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.1.0/24 service name=https drop" --timeout=3d 18
回答 なし 19
解説 時間指定「--timeout」 は「--add-rich-rule」 のみ利用可能です。 許 可(accept)、 拒否(drop) の両方で利用できます。「--remove-rich- rule」 には使えません。
永続設定「--permanent」 と併用できません。 「--timeout」 で指定可能な単位は「s」「m」「h」 のみです。 それ 以外の文字はエラー です。 設定するとしたら以下のイメー ジ。 firewall-cmd --add-rich-rule="rule family=ipv4 source address=192.168.1.0/24 service name=https drop" --timeout=72h 20
第五問 ダイジェスト認証が設定されているペー ジに対してcurl でアクセスす る場合、 有効なコマンドを全て選択せよ。 ユー ザ/ パスワー ドはuser1
とpass1 とする。 A:curl --user “user1:pass1” https://example.com/foo/bar.json B:curl --basic -u “user1:pass1” https://example.com/foo/bar.json C:curl --digest -u “user1:pass1” https://example.com/foo/bar.json 21
回答 C:curl --digest -u “user1:pass1” https://example.com/foo/bar.json のみ 22
解説 「--digest」 を利用してダイジェスト認証を行います。 なお、Basic 認 証の場合では「A」 と「B」 のどちらでも可です。 認証に利用するオプション「-u」 と「--user」
は同じ意味です。 余談:Basic 認証とダイジェスト認証の大きな違いは変換方法です。 Basic 認証はBase64 で、 ダイジェスト認証はMD5 で、 変換されます。 23
余談2: 認証に失敗するとステー タス401 が返されます。「 部外者 め」 ってことですね。 24
第六問 curl でWeb サイトにログインしてcookie 情報を保存する時に利用する コマンドはどれか? 「cookie.txt」 がcookie 情報を保存したファイルとする。 A:curl
-a cookie.txt -d “user=user1” -d “pass=pass1” https://example.com/login B:curl -b cookie.txt -d “user=user1” -d “pass=pass1” https://example.com/login C:curl -c cookie.txt -d “user=user1” -d “pass=pass1” https://example.com/login 25
回答 C:curl -c cookie.txt -d “user=user1” -d “pass=pass1” https://example.com/login 26
解説 cookie 情報を保存する場合、「-c < ファイル名>」 を利用します。 「-b < ファイル名>」 は、cookie
情報を利用してURL にアクセスする 際に利用します。 「-a」 はcookie 情報に関係しません。 「-d “id 値= 値”」 はform の値を送信する際に利用します。 上記の例で はログイン時に利用するユー ザとパスワー ドを指定して送信してい ます。 27
第七問 コンソー ルでcsv ファイルをダウンロー ドする。 しかし、 別のペー ジ にリダイレクトされる可能性がある。 どちらのコマンドを選択する
か? A:wget https://example.com/foo/bar.csv B:curl https://example.com/foo/bar.csv 28
回答 A:wget https://example.com/foo/bar.csv 29
解説 wget もcurl もWeb サイトのデー タ(html や任意のファイルなど) に アクセスしてその情報を取得できます。 wget
の特徴としては、 デフォルトで「 再帰的」 にダウンロー ドして くれます。 一方、curl の場合にはデフォルトではリダイレクト先を辿ってくれま せん。 ただし、 オプションとして「-L」 を付与することで、 リダイレ クト先を追ってくれます。 30
第八問 wget コマンドを使って、 ダウンロー ドしたファイルの名前を変更し たい。 どちらのオプションを指定する? A:wget -O hoge.csv
https://example.com/foo/bar.csv B:wget -o hoge.csv https://example.com/foo/bar.csv 31
回答 A:wget -O hoge.csv https://example.com/foo/bar.csv 32
解説 wget で取得したファイルを任意の名前で保存したい場合、「-O」( 大 文字のオー) をオプションに指定した後でファイル名を指定します。 「-o」( 小文字のオー) を指定した場合には、wget では処理経緯の情報
が、 指定したファイル名に格納されます。 ちなみに、curl でファイル名を保存する際には「-o」 を指定するので 混乱しがちです。 33
第九問 Apache HTTP Server の2.2 系。 あるディレクトリ配下はIP アドレスで 制限されている。 ここへ別のIP
アドレスの設定を追加した。 Allow from 192.168.0.0/16 # 内部からアクセス許可 その後で実行するコマンドはどれか。 A:apachectl configtest B:apachectl configcheck C:apachectl restart 34
回答 A:apachectl con gtest 35
解説 このコマンドを実行すればapache の設定ファイルの内容が正しいか 書式チェックします。 設定変更後に実行してsyntax error がでないことを確認しましょう。 「con gcheck」 は存在しません。
36
余談 設定ファイル中でコメント行を示す「#」 は行の先頭以外に置くと syntax error となります。 特定のOS とapache のバー ジョンでは、
アクセス制限が無効になりど こからもアクセス可となるバグもありました。(cve-2017-12171) 37
第十問 CentOS 7 系でapache をyum でインストー ルした。 以下のコマンドと 同じ操作はどれか? 挙動としては「
緩やかな再起動」 が行われる。 # systemctl reload httpd A:httpd -k condrestart B:httpd -k reload C:httpd -k graceful 38
回答 C:httpd -k graceful 39
解説 「 緩やかな再起動」 といえば「graceful」 です。WEB サー ビスが停止 せず、 かつ実行中のリクエストを中止せずに、 設定情報を読み直して
反映させます。( できない設定もある) なお、reload は「 実行中のリクエストは中止」 されます。WEB サー ビスは停止されません。 「condrestart」 とは「conditional restart」 の意味です。 起動済みな ら停止後に起動しますが、 停止済みの場合は起動しません。 40
To be continued ... 41