Server-Side Includes, SSI(サーバーサイドインクルード)
サーバーサイドインクルードとは
webページ内で、他のファイルの内容を読み込んで
投入すること。
コード管理を楽にできる。
用途:全てのページに共通的に入る内容または
全体的なコードの最適化のため使用する。
server.executeとよく比べられる機能。
形式:
相対経路の場合はfile属性を使う。
..は上位経路、
.は自分を意味。
ex) < !--#include file ="../dev/test.php"-->
絶対敬老の場合はHOME directoryを基準にて
サブファルダーの全ての経路を並べる。
ex) < !--#include file ="dev/test.php"-->
――――――――――― HTTP
あるリソースがSSIを含めていることに設定されているとサーバーはそのリソースのコンテンツを
クライアントに送信する前に処理する。
サーバーはコンテンツが組み込んでいる変数とスクリプトになれる
特別なパターンがあるか(主にHTMLに含まれている。)検査を受けられる。
その「特別なパターン」は変数値か実行できるスクリプトの
OUTPUT値に置換される。
-> これは動的コンテンツを作りやすい方法らしい!
1-3.Linuxのセキュリティー/グループ
1-3.Linuxのセキュリティー
グループ。
Linuxでグループとは「ファイル共有」と言えます!
Linuxが新しいファイルを作る時には
ファイル権限をuid, gidで与えました。
例えば、test.txtというファイルがあるとしましょう!
一般ユーザーアカウントである「Aさん」が、test.txtにアクセルするためには
①ファイルを変更するか
②defaultグループを第3者も含めることができるようにするべきでした。
めっちゃくちゃ複雑で面倒ですね。
それでよくつかわれているのが「SUIDとSGID」というコマンドです。
このコマンドを使うことにして実行時、実行権限が作成者のものになり
ファイルが実行されるので、ものすごく楽になります!!!!
① SUID= set user id
-> ユーザーがファイルを直接実行する時、そのファイルは作成者(=所有者ですね)の
名前に実行するようにさせてくれるものです。
SUIDがonの状態では、どのアカウントでファイルを実行させても
ファイルは作成者(=所有者ですね)の権限で実行されます。
・・なぜですか?と聞かれると権限問題にあって
シェルスクリプトかファイルかプログラムなどなど・・の作成者(=所有者)ではなければ
データベースに繋げれないとかの権限設定がありますので
そのような「面倒さ」を解消するために
このような遠回しなやり方を使っているようです。
② SGID= set group id
こっちもSUIDのように。
SGIDがonの状態では、どのアカウントでファイルを実行させても
ファイルは作成者のグループ(=所有者ですね)の権限で実行されます!
*このオプションを活性化させると共有directoryが所有しているように
作れます。
ex) mkdirとtouchみたいなdirectoryがSGIDがonになっているとしましょ!!!
そのdirectoryに入ると所有者のグループ名が例え・・・「sy」ですね???
ですが! 現在、ログインしているユーザーのグループは「hatena」だとしましょ!
そうすると、今ログインしているユーザがどのようなこと(コマンドとか?)をしても
そのフォルダ―の所有者のグループに実行されます。
因みに、SGIDがonに設定されているフォルダ―の「サブフォルダ」まで
全部設定されますので、注意が必要です!!!
3.stick bit
プロセスが終わっても、ファイルがメモリーの中に残るようにするFLAGです。
あまり使われてないようです。
1-2.Linuxのセキュリティー/権限(umaskについて)
**1-2.Linuxのセキュリティー
権限(umaskについて)
umaskとはコマンドの1つでdefaultの権限が設定されているところです。
default値は「0022」で、
STDOUT としてdefault値が表示されます。
0022とは
0:sticky bitで0の場合は何も設定されてません。
1は設定されている。
4は SUIDでset user idですが、この値が設定されます。
0: octal mode → defaultファイル権限決定
2: octal mode → defaultファイル権限決定
2: octal mode → defaultファイル権限決定
*ファイル‘の権限を計算する時には
ファイル権限:666 フォルダ―権限:777
ex) 0022 (2桁目からdefault umask設定)
touch sds -> 666 - 022 ,
octal modeでdefaultファイル権限 : 644 , rw-r--r--
0026 ->666-026 640 rw-r-----
0026->777-026 751 rwxr-x--x
*ファイル権限
(1) octal mode
-> read/write/exeモード
ex)
r-- 4
-w- 2
--x 1
rwx 7
rw- 6
r-- 100 -> 2^2 x 1 + 2^1 x 0 + 2^0 x 0 = 4
rwx -> 111 -> 7
r-x 101 -> 5
(2)symbolic mode
->3つで分けて分析してみます。
まず、例文のコマンドをもとに説明していきます。
ex)
コマンド : cdmod o+r newfile.txt
まず、symbolicモードの1番目のコマンドの説明から
させていただきます。
ここでsymbolicモードコマンドというと 「o+r」の部分ですね!!
o (others): 誰のためのファイルモードなのか。
-> 一応、 ファイルモードの種類は4つがあります。
****u(user)
****g(group)
****o(others=外部ユーザー)
****a(all)
ここで a(all)と o(others)の違いは・・・
まず、o(others)からいきましょう!
chmod o+x (2番目がモードパラメータ) test.txt
->test.txtに対して実行権限が追加されると意味です。
Octalモードだったら rw-rw-rw- => rw-rw-rwx 感じですね!
次は a(all) です。
chmod (ここは略したオプションを追加可能) a+x (2番目がモードパラメータ) test.txt
☆ 略したオプション : -R(recursive、複数の場合使用)などがあります!☆
Octalモードだったら rw-rw-rw- => rwx-rwx-rwx 感じですね!
つまり、作成者とグループのユーザーを含む全てのユーザーか
もしくは外部ユーザーのみが該当するかの問題です。
ここからは2番目のモードパラメータの説明です。
symbolic modeはファイルの権限をどうするか・・を表すモードです。
例え、2番目のモードパラメータが
”+”だったら権限を与えることで
”-”だったら与えた権限を解除するという意味になります。
”=”だったらファイル権限を設定することです!
最後に3番目のモードパラメータの説明です!
o+r の「r」の部分ですね。
r : どのようなpermissionに関することか❓
Octalモードと一緒で
read, w(write), x(execute)で選択することが出来ます。
他の例のコマンドとしては・・・!
ex)
cdmod u-x newfile.txt
Octalモードで解析してみると
-rwxrw-r-- -> -rw-rw-r-- になります。
作成者の実行権限を解除すると意味ですね。
1.Linuxのセキュリティー
1.Linuxのセキュリティー
:sparkles:
Linuxはセキュリティーのため、ユーザーアカウントの権限レベルで分けている。
つまり、Linuxの全てのものはユーザーアカウントの権限レベルによって変わるといることです。
まず、Linuxのユーザーアカウントを生成する時与えてもらえるuser IDがあります。
user IDは略してUIDだと呼ばれ、全ての文字が数字になります。
普通のuser IDのようにユニークな特性を持っています。
Linuxにログインする時には「 LOGIN NAME 」を使います。
LOGIN NAME はアルファベットや数字を使うことが出来ます。
2.Linuxのユーザーアカウント管理
Linuxはユーザーアカウントを管理する時、 特別なファイル・ユーティリティーを使います。
*etcにはシステム設定ファイルが集まっています。*
(1) /etc/passwd
(2)/etc/shadow
まず、
(1) /etc/passwd から。
→基本的にtxtファイルで修正可能です。
→VIMで書き直すことが出来ますが、それは結構よくない行為らしいです。
何故かというとetc/passwdに依存しているプログラムが多いためです。
(システムやルートアカウントを含め、色々なプログラムから依存されているため 間違えてエラーになった場合には・・・
OSを再インストールしないといけない状況と出くわしてしまう可能性が高いです。)
ですので、 /etc/passwdはuseraddみたいなコマンドを使い修正するべき・・・かもです。
つまり,何も考えず,ついVIMで修正すると文字どおりに大惨事 が起ることになるということです。
ex)useraddの使い方。
他のshellに変更することの例
useradd -D(default) -s(shell) /bin/tsch (path) ー>tshellに変更したい場合 userddd -D (パラメータなく打つと、変更したオプションを確認可能)
*/etc/passwdの中身とは* →passwdには全ての各ユーザーに関する情報が書いてあります。
(1)LOGIN NAME
(2)パスワード(xだけ書いています) *パスワードはここで管理してません。*
(3)UID
(4)GID(GROUP ID)
(5)ユーザーアカウントについて説明。
(6)各ユーザーアカウントのHOME DIRECTORY。
(各ユーザーアカウントは異なるHOME DIRECTORYをもらいます。)
*TIP?? HOME DIRECTORYに移動する方法。*
1) CD 2) CD 3) CD $HOME ($を使うのはLinuxの変数です。)
(7)default shellに関する情報。
→各ユーザーアカウントがdefaultに使うshellのフルパスが入ってます。
→もし、bash shellだったら、(/bin/bash)になります。
*/binフォルダ―にはユーティリティープログラムさん達のところです。*
→→bashとはLinuxコマンドをもらうやつです。 それを知るためにはOS SYSTEM構造も知る必要があります。
*hardware -> kernel -> software (kernelはsoftwareです。hardwareを制御する)
kenelの役割→hardwareを制御することです。
→ユーザーとhardwareを連結してくれるやつ。
呼び方は色々あり、shell(=bash)、bash shell 、born again shellなどなどありますね。
(2)/etc/shadow
→パスワードを管理していることろ。 セキュリティー上、ルートアカウントのみアクセス可能です。
その他のもの色々。
*root user account →Linuxシステム管理者。 →必ずUIDは「0」です。
*system account →ユーザーアカウントに属していますが、実際のユーザーが使わず
OSをうまく作動できるようにするユーティリティー。
→root user accountが実行させるのではなくコンピューターの
アカウントシステムが実行させます。
理由としては
OSを1つのユーザーが全部実行させるのはセキュリティーに悪いです。
そのため、system accountやuser accountを分け、実行しています。
もちろんのことですが
system accountもaccount事に与えられた権限、リソース、アクセス権限・・が
全部異なります。
system accountはUIDが500未満に構成されています。
500からは一般ユーザーアカウント!
Linuxのバージョンにより501からユーザーアカウントになっている
ものもあります。
2021/09 ブログをはじめました。
目標としては 週1回以上の投稿(Linuxは必須になっちまった・・)です。