ひとり情シス日記#5 Linux/サーバー

小さな組織でひとり情シスやる事になったので、自己リマインド&勉強アウトプット用の記事。解像度を上げて随時更新


Linuxとは

WindowsやMacOS、AndroidのようなOS(基本ソフト)で1991年大学生がUNIXを真似し開発されオープンソース化。無料で使える。サーバー、組み込み、デスクトップなど幅広い用途で使用されている。

カーネルとディストリビューション

カーネル(和訳:種)はOSの中核となるソフトウェアだが、それだけでは機能が少なすぎるので、カーネルに色々なソフトウェアを組み合わせて使いやすくしたものを、ディストリビューションという。(カーネル=Linux)ディストリビューションは1000種類以上あるが、RedHat系とDebian系が主流。

RedHat系
・RedHatEnterpriseLinux
・CentOS
・Fedora

Debian系
・Debian BNU/Linux
・Ubunts

出典:パーソルクロステクノロジー

シェル

LinuxのCLIを提供するソフトウェア。実際のCLI入力はターミナル画面へ入力するが、シェルとは別のソフトウエア。(ターミナルの中でシェルが動いている)
・シェル:コマンドを解釈するソフトウェア
・ターミナル:入出力の画面を提供するソフトウエア

Linuxは「1つのプログラムには1つのことを上手くやらせる」という設計思想のため、色々な機能が出来るだけ細かく分かれて作られている。そうすることで、お互いの影響を受けずに柔軟に開発することができる。

出典:IT・WEB・ゲーム業界の転職に強いR-Stone

コマンド

【cdコマンド】ディレクトリ移動
 cd / 「/」はツリー構造の最上部(ルートディレクトリ)へ
 cd  .   現在のディレクトリ
 cd  ..  一つ上の階層のディレクトリへ
 cd  ~    /home/ユーザー名ディレクトリへ 

【pwdコマンド】カレントディレクトリ表示
 pwd ※意味はprint name of working directory
   /home

【lsコマンド】ディレクトリ中身表示
 ls  ※意味はlist
   bin dev home 

  パス名展開例(*任意の文字列、?任意の一文字)
  例拡張子がhtmlファイルを表示
    $ ls*.html 
    index.html  home.html  job.html

  zで始まり4文字で終わるファイルを表示
    $ ls /bin/z???
    /bin/zcat   /bin/zcmp   /bin/znew

  ファイル詳細情報を表示(-l)
 $ ls ーl
 
 隠しファイルなど設定ファイル全てを表示(-a)
 $ ls ーa
  .bash_history    .bashrc    desktop

 ファイル種別を表示(-F)
 $ ls ーF
 bin@ dev/

【mkdirコマンド】ディレクトリ作成
   mkdir  code

【rmdirコマンド】空のディレクトリを削除
   rmdir   code ※空ではないディレクトリを削除しようとするとエラーになる。隠れファイルが残っている場合など、誤削除を防止できる。

【**--helpコマンド】コマンドのヘルプメッセージを表示
 ls --help

【man **コマンド】コマンドのmanualを表示
 man ls

SQL(Structured Query Language)

SQLは、データベース管理システム(DBMS)に対してデータを操作するための標準的な言語。具体的には、データの挿入、更新、削除、検索などの操作を行うための命令を提供。代表的なSQLデータベースには、MySQL、Microsoft SQL Server、Oracle Databaseなどがある。

多くのSQLベースのデータベース管理システムは、Linuxサーバー上で動作している。データベースをインストールするためのパッケージ管理システム(例:apt、yum)が提供されており、簡単にデータベースソフトウェアをインストールできる。(Linuxが安定しており、パフォーマンスが良く、コストがかからないという利点があるため)

※SQLインジェクション(SQL Injection)
Webアプリケーションに対するセキュリティ攻撃の一種で、攻撃者が悪意のあるSQLコードを挿入し、データベースを操作することを目的としている。この攻撃によって、データの漏洩、改ざん、削除、管理者権限の奪取などが行われる可能性がある。対策としては、プリペアドステートメント(SQLクエリのテンプレートを事前に準備しておき、実行時にパラメータをバインドする手法)やパラメータ化クエリ(ユーザー入力から不正な文字や危険な文字を取り除くプロセス)の使用、入力のサニタイズとバリデーション(ユーザー入力が予期された形式や範囲内にあることを確認するプロセス)、最小権限の原則の適用などを実践することで、リスクを大幅に軽減。
サニタイズはクロスサイトスクリプティング(ユーザーブラウザのセッション情報の盗難、ページ改ざん)にも有効。

この記事が気に入ったらサポートをしてみませんか?