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
160
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
330
TOKIWANOMORI-20180901
mzryuka
0
590
aniben-20180823
mzryuka
1
1.5k
Other Decks in Programming
See All in Programming
すこし踏み込む CancellationToken
htkym
2
1.6k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
540
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
6.1k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
330
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.4k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
540
Verilogで学ぶCPU自作入門.pdf
uyuki234
8
4k
Workers Cache を知る
syumai
0
320
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.7k
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
330
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Scaling GitHub
holman
464
140k
First, design no harm
axbom
PRO
2
1.3k
Designing for humans not robots
tammielis
254
26k
Accessibility Awareness
sabderemane
1
230
BBQ
matthewcrist
89
10k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Faster Mobile Websites
deanohume
310
32k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
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