class: title, smokescreen, shelf, no-footer # 第07回 ユーザ権限とファイル <div class=footnote> <small><small> </small></small> </div> --- class: compact,img-right # ファイル/フォルダには属性が色々あります <div class=footnote> <small><small> 図はWindowsのプロパティ画面 (https://learn.microsoft.com/ja-jp/windows/win32/uxguide/win-property-win より) </small></small> </div> ![height400px](https://learn.microsoft.com/ja-jp/windows/win32/uxguide/images/win-property-win-image1.png) - 属性(プロパティ)で表示されるものが、ファイルやフォルダ(ディレクトリ)に付属している情報です - 例: - ファイル名 - 種類 - サイズ - 所有者(ファイルの作成者) - ファイルの作成日時 - ファイルの最終変更日時 - 権限 ... 読み書きできるのは誰か? --- class: compact,img-right # lsコマンド ... Unixファイル/フォルダの属性の調べ方 <div class=footnote> <small><small> (脚注) 階層化フォルダとは、いわば<B>マトリョーシカ</B>状態です。マトリョーシカと異なり人形以外に紙とかも出てきますけど </small></small> </div> ![height280px](../../images/unix-dirhier.png) ![height180px](https://1.bp.blogspot.com/-DXwO_MFUgkM/UZ2VFQc90MI/AAAAAAAATuQ/Q0Qk05Ut9JE/s450/matryoshkas.png) <small> - `ls`コマンドは一覧を表示するだけです - 引数にファイルを指定した場合、存在すればファイル名を返します。 ファイルが存在しない場合、エラーメッセージが出ます - フォルダを指定した場合、そのフォルダ=箱の中にあるファイルやフォルダの一覧を表示 - 定番の使い方は`ls -l`です。属性も表示します ``` admin@ip-172-31-83-21:~$ ls htdocs index.html admin@ip-172-31-83-21:~$ ls -l htdocs total 3 -rw-r--r-- 1 admin root 23 Dec 25 08:20 index.html admin@ip-172-31-83-21:~$ ``` </small> --- class: compact # 実例: lsコマンドの読み方(1) <div class=footnote> <small><small> </small></small> </div> ![](../../images/ls-l.png) --- class: compact,img-right # 実例: lsコマンドの読み方(2) <div class=footnote> <small><small> </small></small> </div> ![](../../images/ls-l.png) <small> - `-rw-r--r--`は10文字分あります。最初(左端)の1文字がタイプ、残りの9文字が権限を表しています - `ls -l`の結果の中で`drwxr-xr-x`などと表示されているものがフォルダ/ディレクトリです。 <br> 先頭のdはdirectoryのd - `rw-r--r--`の9文字はユーザの権限3文字、グループの権限3文字、全員に許される権限3文字です <br> ただ、昔と違いOSを一人で使うことが多い現在では、細かい区別をする意味がなさそうです <br> - 実用上は<B>ユーザ名と先頭3文字`rw-`の確認が重要</B> </small> --- class: compact,img-right # 実用上、権限は自分と管理者(root)の区別が重要 <div class=footnote> <small><small> (脚注) 演習で確かめてみましょう </small></small> </div> ![](../../images/ls-l.png) <small> - `rw-r--r--`の左端`rw-`は、ユーザ(つまりあなた)が読み書きできるという意味です。 - r = r(read)権限がある - w = w(write)権限がある - `-`は権限が無いという意味です - 機密性の高い設定ファイルは所有者がroot(管理者)で権限が<B>`rw-------`</B>となっています。 これは<B>ユーザrootだけが読み書きできる</B>という意味 - <B>コマンドの多くは`rwxr-xr-x`</B>となっています。<B>この`x`は実行権限という意味</B>です。 Unixでは`x`があるかないかでコマンドか否かを判断します - ふつうコマンドの所有者はrootで権限は`rwxr-xr-x`です。 一般ユーザは9文字の右端`r-x`で読むことと実行が許可されていますが、 変更は出来ない(`w`はナシ)ことに注目 <br> </small> --- class: compact # sudoコマンドによる管理者権限の奪取 <div class=footnote> <small><small> (脚注) sudoはLinuxの風習です。 Linux人は、この方式が優れていると主張しますが、抜け穴はあるので、そうでもないと思うんだが... </small></small> </div> <small> - 管理者(ユーザroot)でしか出来ない作業とは? - 前ページでみたように、機密性の高いファイルはユーザrootしか読み書きできません - また、アプリケーションをインストールするフォルダはユーザrootしか書きこめません - 重要なサーバも起動できません(<B>ポート番号が1024未満のサーバ</B>のことです) - そういうわけで、<B>OSの設定を変更するには管理者権限が必要</B>です - ふつう「一時的にユーザrootに成りすまして作業」をします。 これを可能にするコマンドがsudoです ``` [今までに出てきた例] # アプリのインストール $ sudo apt install nginx # WWWサーバ(80/tcp)を起動する $ sudo python3 www.py & ``` </small>