Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
170
EDI_LT_Elixir_books_story
mzryuka
0
720
インフラ勉強会LT資料:自分の本を宣伝するLT
mzryuka
1
180
Internet-Oldman-2_LT-today-no2
mzryuka
0
350
Ginza.js #1 LT_Draw_LineChart
mzryuka
1
590
「ドラクエに学ぶチームマネジメント」読書会第5章
mzryuka
1
290
pplog_5thbd_lt
mzryuka
0
340
TOKIWANOMORI-20180901
mzryuka
0
590
aniben-20180823
mzryuka
1
1.5k
Other Decks in Programming
See All in Programming
sbt 2.0: takeoff
eed3si9n
0
150
ActionController meets Protocol Buffers
sorah
0
240
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
パーソナライズPodcastを作った話
repunit11
0
140
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
250
Event is what happens
moro
2
440
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
980
contenteditable と日本語入力に向き合う
colorful12
0
190
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
mrbgem 三角測量 開発
ogom
0
240
AWSに止められる覚悟してますか?
morizo_1984
2
530
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
Evolving SEO for Evolving Search Engines
ryanjones
0
320
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Designing Experiences People Love
moore
143
24k
The Invisible Side of Design
smashingmag
301
52k
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