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
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
ときメモは 運営が30年かけて “実プレイ”していた
mzryuka
0
140
EDI_LT_Elixir_books_story
mzryuka
0
710
インフラ勉強会LT資料:自分の本を宣伝するLT
mzryuka
1
170
Internet-Oldman-2_LT-today-no2
mzryuka
0
350
Ginza.js #1 LT_Draw_LineChart
mzryuka
1
580
「ドラクエに学ぶチームマネジメント」読書会第5章
mzryuka
1
290
pplog_5thbd_lt
mzryuka
0
330
TOKIWANOMORI-20180901
mzryuka
0
580
aniben-20180823
mzryuka
1
1.5k
Other Decks in Programming
See All in Programming
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
400
Cloudflare is Agents
chimame
0
190
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
130
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
130
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
760
AIの中の人になってみる
htkym
0
150
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.5k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
typoなんかねぇよ
raspython3
0
650
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
280
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Practical Orchestrator
shlominoach
191
12k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Building Adaptive Systems
keathley
44
3.2k
How to Ace a Technical Interview
jacobian
281
24k
Are puppies a ranking factor?
jonoalderson
2
3.9k
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