投稿

6月, 2020の投稿を表示しています

6月29日(月)3,4コマ目

イメージ
今日、やったこと ファイルのアクセス権の演習 今日のホワイトボード その1~その13のファイルアクセス権に関する演習を行ってもらい、その解説を行いました。 事前準備 グループの作成 事前準備 ユーザーの作成 事前準備 ディレクトリの作成・アクセス権設定 その1 ディレクトリ作成時のアクセス権 ディレクトリのデフォルトのアクセス権は777(rwxrwxrwx)。 これに作成者のumask値(0022)が反映される。 結果、755(rwxr-xr-x)。 その2 ファイル作成時のアクセス権 ファイルのデフォルトのアクセス権は666(rw-rw-rw-)。 これに作成者のumask値(0022)が反映される。 結果、644(rw-r--r--)。 その3 デフォルトのumask値 4ユーザーとも同じ0022になっている。 これは各ユーザーのホームディレクトリにある設定ファイル(.bashrc)が/etc/bashrcを読み込んでいるため。 その4 umask値設定 taroのumask値を0013に設定。 設定後、taroがディレクトリやファイルを作ると以下のアクセス権が設定されると予想される。  ディレクトリ 777 - 013 = 764 => rwxrw-r--  ファイル        666 - 013 = 653 => rw-r-x-wx ファイルはなんか変な感じがする! その5 taro(umask値0013)がつくるディレクトリのアクセス権 予想では764(rwxrw-r--)。 実際も764(rwxrw-r--)。とくに問題なし。 その6 taro(umask値0013)がつくるファイルのアクセス権 予想では653(rw-r-x-wx)。見るからになんか変。 実際は664(rw-rw-r--)。予想とちがう。 実は単純な引き算ではなく、以下のようになっている。 〇ディレクトリの場合 〇ファイルの場合 その7、8 ファイル・ディレクトリの作成、削除 入れ物であるディレクトリへの書き込み権が必要。 その9 ディレクトリ作成(おまけ) その10 ファイル・ディレクトリの削除(ディレクトリ書き込み可なら削除可能) たとえ削除対象への書き込み権がなくても、入れ物であるディレクトリに書き込み権があれば削除できる。 そ...

6月22日(月)3、4コマ目

イメージ
今日、やったこと ファイルの所有者・所有グループ ファイルのアクセス権 setUIDビット、setGIDビット、stickyビット 今日のホワイトボード ファイル・ディレクトリのデフォルトの所有者 作成者が所有者、作成者のプライマリグループが所有グループ。 ファイルのデフォルトのアクセス権 OS自体のデフォルトのアクセス権(666)から作成者のumask値を引く。 ディレクトリのデフォルトのアクセス権 OS自体のデフォルトのアクセス権(777)から作成者のumask値を引く。 一般ユーザーでのパスワードが変更できるのはなぜ? パスワードは/etc/shadowに保存されている。 このファイルのアクセス権は  - ---------    root root /etc/shadow 特権ユーザー(root)以外はなにもアクセスできない。 コマンドは実行したユーザーの権限で動くため、本来なら特権ユーザー以外は/etc/shadowに書き込むことはできない。 しかしながら、root以外のユーザーでの書き込むことができている。これはpasswdコマンドはsetUIDビットがONになっているから。 -r- s r-xr-x  root   root  /usr/bin/passwd setUIDビットがONになっているファイルは、実行したユーザーの権限ではなく、ファイルの所有者の権限で実行される。 setUIDビット、setGUIDビット ls -lで表示されるファイルのパーミッションに3ビットのエリアがあるイメージ。 ここにsetUIDやsetGID、stickyビットのON、OFFがコントロールされている。 setUID、setGIDの付与 〇setUID(+で付与) 所有者に付与するため、 u+s。  chmod u+s ファイル名 〇setUID(数字で付与) 以下のsetuidのビットをONにするイメージ。 setuid setgid stickyビット 所有者 所有グループ ...

6月15日(月)1,2コマ目(B班)、3,4コマ目(A班)

イメージ
今日、やったこと ユーザー、グループ アクセス権 今日のホワイトボード ユーザーとグループ Linuxにかかわらず、OSにはユーザーとユーザーをひとまとめにできるグループがある。 ユーザー、グループを使ってOSが管理するリソース(ファイルなど)へのアクセス権の制御ができる。 グループ ユーザーを束ねるのがグループ。 ユーザー ユーザー作成用コマンドのuseraddにはオプションがいっぱいあるので注意。 ユーザー情報管理ファイル /etc/passwdで管理している。 20世紀はパスワードもこのファイルで管理していた。 パスワード ユーザーとファイルのアクセス権 ファイルやディレクトリに対して、  ユーザー(3段階)が何ができる(3種類)か を設定する。 ユーザーは ファイルの所有者 ファイルの所有グループ所属ユーザー(ファイル所有者は除く) その他のユーザー の3つにわける。 できることは 読み込み 書き込み 実行 の3種類。 /etc/passwdからパスワード情報だけshadowに移動したのはなぜ? 要はセキュリティ対策。 サーバープロセスは攻撃にさらされる 最悪、やられたときはプロセスの権限でサーバー内を破壊できる それなら、サーバープロセスは最小限の権限で動かしたい でも、サーバープロセスもユーザー情報が必要なときがある では、ユーザー情報はだれでもアクセス可へ しかし、それはやばい、パスワードだけ退避させよう という感じで/etc/passwdからshadowへパスワード情報が移動しました。 アクセス権の変更 chmodコマンドを使う。 アクセス権の指定方法は2種類ある。 今日のおまけ 今、どのユーザー? whoamiコマンドを実行しなくても、ターミナルのプロンプトでもわかる。 UNIX系OSのディレクトリ とりあえず、/直下の代表的なディレクトリだけ。 ユーザー切替 「ログオフ」=>「ログイン」をしなくてもユーザー切替可能。

6月8日(月)1,2コマ目(B班)、3,4コマ目(A班)

イメージ
今日、やったこと ワイルドカード 正規表現 パイプ 今日のホワイトボード こんなファイル構成 ワイルドカード* *は「0文字以上の任意の文字列」という意味。 ただし、.で始まる隠しファイルは対象外。 *単体ではなく、 abc*・・・ファイル名がabcで始まる *cfg・・・ファイル名がcfgで終わる のように組み合わせて使うこともできる。 ワイルドカード[] []は「[]内のいずれかの文字」という意味。 *と組わせて使うことも可能。 パイプ パイプをつかうことで、コマンドAの結果をコマンドBで使って、さらのその結果をコマンドCで使ってのように、コマンドを連携して使うことができる。 意外とこれでやりたいことはほとんどできてしまう。 grepコマンド 検索対象の各行を検索条件にマッチするかチェックする、文字列検索コマンド。 検索条件に正規表現が使える。 正規表現 ワイルドカードと同じ記号を使っているため、ごっちゃになりやすい。 ワイルドカードの*と同意になるのは.*(厳密には違うが)。 そもそもワイルドカードは コマンド実行前にワイルドカードの展開が行われる 。 コマンドは展開後の引数を使って処理を行う。 ls *を実行すると、 lsコマンドが*にマッチするファイルを探すわけではない。 lsコマンド実行時には*はカレントディレクトリのファイル名に置き換わっている。 やってみよう「ワイルドカードと正規表現」 ファイル構成 おまけ grepコマンドの第2引数以降は検索対象ファイル名を指定。もちろん、ワイルドカードも使える。

6月1日(月)1、2コマ目(B班)、3、4コマ目(A班)

イメージ
今日、やったこと ファイル・ディレクトリ操作コマンド ls cp mv rm grep ワイルドカード 正規表現 今日のホワイトボード 実習環境 下図のファイル・ディレクトリを用意しました。 ディレクトリ作成 mkdirコマンド。(p.45参照) ファイル作成[touchコマンド、リダイレクト] いずれもファイル作成のために紹介。 ディレクトリの中身チェック[lsコマンド] コピー[cpコマンド] ファイル・ディレクトリの移動[mvコマンド] ファイル・ディレクトリの削除[rmコマンド] ワイルドカード コマンドでファイル名やディレクトリ名を指定するさい、ワイルドカードと呼ばれる特殊な記号をいろいろなパターンの文字列に置き換えることができます。 文字列検索コマンド[grepコマンド] grepコマンドは行単位で検索条件にマッチするかチェックを行い、マッチした行を出力します。 検索条件には、正規表現が使えます。