Lesson 6 保護モードを理解する

STEP1 ファイルの保護モードを理解する

1.  保護モードの意味

% ls -l
total 3
-rw-r--r--    1 honda  isstaff    28 10 19 14:40 aaa
-rw-r--r--    1 honda  isstaff    28 10 19 13:41 aaa1
drwxr-xr-x    3 honda  isstaff   512 10 26 13:23 d1


ファイルの
種類
所有者の権利
(user)
同じグループの
ユーザーの権利
(group)
その他の
ユーザーの権利
(other)
- r   w   -
r   w   -
r   w   -

  • ファイルの種類 
    • (- ファイル、 d ディレクトリ)
  • 権利  
                     {r,-}{w,-}{x,-} 
                    読む      書込    実行
    • -  は  該当する権利がないことを示す。
  •  例 -rw-r--r--
    • すべてのユーザーが、このファイルを読むことはできる。書き込むことができるのはユーザ(作成者)だけ。(デフォルトではこの状態になっている)

2.  保護モードの8進数表示

(1) 保護モードの各列(先頭はのぞく)を、−の場合は0、それ以外(r、w、x)の場合は1に置き換えて2進数表記する(順番は入れ替えないこと)
          所有者(u)      グループ(g)       ほかのユーザー(o)
   -    r   w   -           r   -   -            r   -   -
→   1   1    0                   1   0   0                   1    0   0

(2)  さらに3桁ごとに8進数表記に変換する

     ユーザー(u)    1   1   0   → 4x1+2x1+1x0=6
     グループ(g)    1   0   0   → 4x1+2x0+1x0=4
     他ユーザー(o) 1   0   0   → 4x1+2x0+1x0=4
         
この3数字をまとめた 644   が保護モードの8進数表記である。

3. 保護モードの変更(読み込み権)

4. 保護モードの変更(書き込み権)

5. 保護モードの変更(実行権)


(1)個別に指定する方法
     chmod    a+w  ファイル名

     (現在の状態に対する変更分だけを指定する)

 変更用の3文字の記号の内容
文字位置
変更内容
シンボル
意味
1
ユーザー種別
u
g
o
a
所有者
同じグループのユーザ
他のユーザー
全てのユーザ
2
権利の付加、剥奪
+
-
付加
剥奪
3
権利
r
w
x
読む
書く
実行

     
    例   a+w   すべてのユーザーに書き込む権利を与える

(2)8進数表記を用いる方法
    chmod    保護モードの8進表記 ファイル名
            (直感的ではないが、一気に変更することができる)
      
     例  chmod 644 ファイル名

   練習
% ls -l
-rw-r--r--    1 honda  isstaff    28 10 19 14:40 aaa

このファイルから、ほかのユーザーの読む権利を失くすには?

(1)の方法
               chmod o-r  aaa
               (ls -l で確認してみましょう)
(2)の方法
    設定したい保護モードの8進表記を計算する   
       rw-r----- → 110 100 000 →640         
       chmod 640 aaa
               (ls -l で確認してみましょう)


STEP2 ディレクトリの保護モードを理解する

% ls -l
total 3
-rw-r--r--     1 honda  isstaff    28 10 19 14:40 aaa
-rw-r--r--     1 honda  isstaff    28 10 19 13:41 aaa1
drwxr-xr-x    3 honda  isstaff   512 10 26 13:23 d1

  • ディレクトリの中にあるファイル・ディレクトリの内容を一斉に替えるときは -R (読み込み権rと区別するため大文字) オプションを使用します。
                    例.  chmod -R  a+r  ディレクトリ名

課題

以下の問題に対する解答をe-mailでhonda@is.kochi-u.ac.jpに送ってください。
メールのサブジェクトは ”lesson6 kadai”としてください
締め切り 2015/10/29(木) 17:00

注意 (毎回同じですが、再度掲載しておきます)

以下の問題に対する解答をe-mailでhonda@is.kochi-u.ac.jpに送ってください。

1.  (lesson5相当) 以下の操作を実行してコマンドと実行結果を答えてください。各問いについては指定されていない限り、1度のコマンド入力で実行できるようにしてください。 なお、作業内容はあとで確認しますので、作成したディレクトリ、ファイルなど 消さずに残しておいてください。
  1. ホームディレクトリに移動する(引数のない1つのコマンドで)
  2. ホームディレクトリに d5という名前のディレクトリを作成する
  3. 相対パスを使ってd5というディレクトリに移動する
  4. カレントディレクトリの名前を表示する
  5. 一つ上のディレクトリに戻る
  6. 絶対パスを使用して、d5というディレクトリに移動する
  7. カレントディレクトリはそのままで、親ディレクトリにあるファイル名の一覧を表示する
  8. 7の出力と同じ内容を、カレントディレクトリの中のparentlistという名前のファイルに保存する(ヒント,  >)
  9. 絶対パスを使って、8で作成したファイルの中身を表示する
  10. カレントディレクトリはそのままで、/etcというディレクトリにある hostsというファイルの中身を表示する。
  11. b073k063さんのホームディレクトリに一度に移動して(絶対パスを使わない方法で)、カレントデイレクトリを確認する(ここは2コマンドで)
  12. 自分のホームディレクトリに戻って(1番とは違う方法で一度に)、カレントデイレクトリを確認する(ここは2コマンドで)

2.  (lesson6相当) 以下のコマンドの実行後、ファイルbbbの保護モードはどうなっているか。10文字の形式と、8進数表示で答え、さらにその意味を言葉で説明しなさい。
(太字は実行部分)
% date > bbb
% ls -l bbb
         -rw -r- -r - -  ・・・・・・・・  bbb
% chmod a+x bbb
% chmod u-r bbb

3.  (lesson6相当) 以下の処理を行いなさい。解答には各ステップで実行するコマンドを答えてください。答えには実行結果も含めてください。また作業内容は採点の際に確認しますので、消去しないでください。

(1)ディレクトリd6を作成する。
(2)ディレクトリd6に移動する。
(3)現在の時刻を現在のディレクトリ(d6)にdate.txtという名前のファイルとして作成する。(ヒント cal,  > )
(4)ファイルdate.txt の保護モードを表示する。
(5)8進数表示を使わずに、ファイルdate.txtの保護モードを下記のように変更する。
(6) ファイルdate.txtの保護モードを表示する。

(7) 8進数表示をつかって、ファイルdate.txtの保護モードを下記のように変更する。
(8) ファイルdate.txt の保護モードを再度表示する。

(9)一つ上のディレクトリに移動する。

(10) カレントディレクトリにあるすべてのファイル・ディレクトリの属性を表示する。

(11) d6のディレクトリ以下を、丸ごと、所有者の属するグループ以外の者が読むことができないようにする。

(12) d6とd6/date.txtの属性を確認する。