name: orientation class: title, smokescreen, shelf, no-footer # クラウドコンピューティング<br><small>第02回 概念「権限」</small> <div class=footnote> <small><small> 3年、秋学期、選択; 旧「オペレーティングシステム」 ;脚注はELや定期試験の範囲ではありません </small></small> </div> --- class: compact # シリーズ「権限」 <div class=footnote> <small><small> (脚注1)脚注はELや定期試験の範囲ではないので、読み飛ばしてかまいません <br> (脚注2) マルチユーザ = タイムシェアリングシステム(TSS)というわけでもないのですが、 TSSならマルチユーザな使い方をしたいはずなので、 TSSではユーザの区別やユーザ権限の問題が自動的に付随してきます </small></small> </div> - 02-05 - 02 全体像 - 03 ユーザ - 04 プロセス - 05 ネットワーク --- class: compact # 身近にあるコンピュータの特徴は? <div class=footnote> <small><small> (脚注1) マルチユーザ環境なら当然プロセスは複数うごいているはずだからマルチプロセスが要求されますよね? <br> (脚注2) 現代では、<B>PCが安価で高速</B>なので、マルチユーザな使い方をしていません。 TSSが考え出された1950年代のコンピュータは非常に高価でした。 1960年代前半に「20億円ほどのコンピュータを同時に30人で使える!」が世界最先端だった時代です。 ちなみに、そのコンピュータの速度は、みなさんのPCの数百分の一くらいの速度です。 高価なコンピュータを効率よく複数人で利用するための工夫がTSSでした。 コンピュータの値段が下がってきて、1970年代末には、頑張れば個人でもコンピュータが買えるようになりました。 つまりパーソナルコンピュータ(PC)です。 個人用途のPCなら、マルチユーザ仕様でなくとも良いのです </small></small> </div> - 現代で身近なPCやAndroidは、タイムシェアリングシステム(TSS)という種類のOS - TSSの特徴は、**マルチユーザ**、**マルチプロセス**です <small> - マルチユーザとは、一つのコンピュータを複数人で同時に利用すること - マルチプロセスは、同時に複数のプロセスが動いているということ - 現代の個人利用の場面では、TSSのメリットが分からないでしょうが<small>(脚注2を参照)</small>、 <br> サーバは、この仕組みのおかげで効率的に動作できています </small> --- class: compact # 身近なOS(TSS)の例 <div class=footnote> <small><small> (脚注) この商用の二つは1980年代に流行したマイクロカーネル型分散オペレーティングシステムの系譜です。 マイクロカーネルは裏の裏の話なので見かけは普通のTSSっぽいです。 ちなみにMacOSXのターミナルがUnixらしく見えるのは、 BSD (バークレイUnix)のソースコードを流用してAppleが作成しているからです </small></small> </div> - Linux - オリジナルUnixそっくりの動作をするOSを新たに作った - こういったOSをUnixクローンと呼ぶ - 例: 演習で使う Debian GNU/Linux - AndroidやChrome OS (ChromebookのOS) - LinuxをベースにGoogleが魔改造したOS - 商用のMicrosoft WindowsやApple MacOSX --- class: compact,img-right # <small>WWWサーバには同時にたくさんのユーザがアクセスしている</small> <div class=footnote> <small><small> (脚注) WWWサーバが複数ユーザのコンテンツを裁いている場合、 ユーザごとのコンテンツ(そのユーザ以外にはアクセスできないコンテンツ)があり、 WWWサーバが、そのコンテンツをWWWクライアントに返しています。 このためWWWサーバ(プロセス)には他人のコンテンツを見ることが出来る特権が必要になりますが、 できれば避けたい処理です。 うちのITインフラ演習は、 AWSで、 ひとりにひとつずつVPCを割り当てる独自プライベートクラウド状態なので、このパターンをやっていませんけど </small></small> </div> ![](../../images/http-connections.png) <small>(権限ではなくTSSの補足ですが)</small> - ユーザの手元のPC(WWWクライアント)は各自ひとりで占有できていますが - WWWサーバは、同時に複数のHTTPアクセスを受け、複数ユーザの相手をしています。 TSSは、この同時アクセスを効率的にさばくことに役立っています --- class: compact # Unixの場合: ユーザの区別 <div class=footnote> <small><small> (脚注1) 第3-5回で、もう少し詳しく見てみます <br> (脚注2) Windowsにも管理者ユーザはあるのですが、 意識しなくても使えてしまうのが問題です。 メニューにある「管理者として実行」を(パスワードなしで)選択・実行する時、 Linuxのsudo相当の操作をしているはずですが、そうは意識していないでしょう。 それより、なにより、「(パスワード)認証なしで管理者の操作が出来るOSって、どうなんだ?」 と、ツッコムべきところでしょうや? </small></small> </div> - PCもコンピュータなので管理の必要があります。 管理するうえでは、ときに危ない操作も必要です。 危ない操作は管理者だけが行えるようにシステムを作りこむべきです - Unixには、一般ユーザと管理者ユーザ(root)の区別があります <small> - EC2(debian)にログインするとユーザadminです。これは一般ユーザ - ユーザrootとしてログインすることはありません(普通rootログインは出来ませんし、させません) - Linux上で管理作業をするときにはsudoコマンドを使います(詳しくは第3回で復習します) </small> --- class: compact # Unixの場合: ユーザとプロセス <div class=footnote> <small><small> (脚注1) 第4-5回で、もう少し詳しく見てみます </small></small> </div> - 動いているプログラムのことを<B>プロセス</B>と呼んでいます - ユーザが実行したプロセスをOSは追跡しています - ユーザXが実行したプロセスAには、ユーザXの権限が関連づけられます <br> (業界人いうところの「紐づきます」) <small> - 一般ユーザが実行したプロセスなら、一般ユーザの権限 - 管理者ユーザrootが実行したプロセスなら、管理者権限 - OSの危ない操作をするには管理者権限が必要です - つまりユーザrootだけが「危ない操作をするコマンド」を実行できます </small>