-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_LinuxBasics
- 戻る(Linux OSの基礎的トピック、Linuxを触ってみる。)
- Linuxの各種 基礎
- Linuxの各種 手順
触ってみるということで、各種 基礎。
-
ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンド。
-
一般的に、スーパーユーザー(superuser、≒root)の特権レベルを要求する。
-
sudo用にシステムを設定
-
sudoメカニズムを用いてコマンドをroot権限で実行できるように設定する。
-
sudoを使えば、rootパスワードを知る必要はない。
-
Ubuntuのようなディストリビューションを利用しているなら必要ない。
-
sudoが実行できるように設定されているかどうかを確認するには、次のコマンドを実行
$ sudo ls
- ユーザパスワードを求められ、コマンドが実行される。
- エラーメッセージが表示される場合
「/etc/sudoers」「/etc/sudoers.d」ファイルなどを弄る。
-
Debian系のパッケージ管理システム
-
update
sudo apt-get update
-
install
sudo apt install パッケージ名
Red Hat系のパッケージ管理システム
-
update
yum update
-
install
yum install パッケージ名
viコマンド
nanoコマンド
WindowsユーザがLinuxに乗り換える際に、知っておくとイイ情報集。の該当節を参照。
- Linuxコマンド一覧(UNIX入門)
http://hocolamogg.com/unix/linux_com/index.html
処理中に現れるプロンプトに対して常に"yes"と解答
テキスト・ベースのシェルで、テキストをパイプできる。
ちなみに、PowerShellはオブジェクト・ベースのシェル。
は、ストリーム。
find したファイルを xargs で消す。
find /XXXX/XXXX/*.txt -type f | xargs rm -rf移行メモ: 元ページでは見出しのみで本文が無い(書きかけ)。
- パイプ (コンピュータ) - Wikipedia
https://ja.wikipedia.org/wiki/パイプ_(コンピュータ)
regular file
- 狭義のファイル
- 内容が記録されているファイル
directory
- 他のファイル(広義のファイル)を
複数入れることができるファイル
symbolic link
- 他のファイルの名前を格納したファイル
- Microsoft Windows - ショートカット
- Mac OS - エイリアス
named pipe
- プロセス間通信に使うファイル
UNIX domain socket
- プロセス間通信で使うファイル
- 現在ではTCPソケットで代替できる
device file
- デバイス(ハードウェア)をファイルとして表現したもの
Linuxでは、
ファイルシステムのマウントにより、
一本の巨大なディレクトリツリーになる。
(WindowsユーザがLinuxに乗り換える際に、知っておくとイイ情報集。の該当節を参照)
バイトストリーム(byte stream)
-
ファイルにつながったストリーム
-
通常、プロセスに対する入力と出力の2つのストリーム
-
パイプすると、
- プロセスAの出力ストリームが、
- プロセスBの入力ストリームとなる。
-
プロセス間通信で使用される。
-
「Linuxにおいては全てがファイル」
...と言うのはシステムコールのI/Fが
バイトストリームであることに起因するらしい。
rootディレクトリでlsすると、以下が表示される。
-
bin
基本コマンド -
sbin
システム管理用コマンドなど -
boot
起動に必要なファイル -
dev
デバイスファイル -
etc
設定ファイル -
home
ホームディレクトリ -
lib
bin、sbinの共有ライブラリ -
lib64
共有ライブラリ(64bit) -
media
リムーバブル媒体のマウントポイント -
mnt
一時的なマウントポイント -
opt
追加アプリケーション -
proc
プロセス情報など -
root
root用ホームディレクトリ -
run
実行時の可変データ群 -
snap
snapアプリケーションのインストール先 -
srv
システムによって提供されたサイト固有のデータ群。 -
sys
ドライバ関連のプロセス情報群。 -
tmp
一時的なファイル -
usr
全ユーザー向け、各種プログラムやライブラリ、ドキュメント- bin
基本コマンドなど(ユーザ版) - sbin
システム管理用コマンドなど(ユーザ版) - lib
bin、sbinの共有ライブラリ(ユーザ版) - lib64
共有ライブラリ(64bit) - libexec
その他、補助コマンド - etc
あまり利用されない。 - share
アーキテクチャに依存しない共有データ - include
ヘッダファイル - src
ソースコードとそのヘッダファイル - local
ホスト固有のローカルデータを格納する第三階層
(ソースコンパイルするとココに入る) - tmp
一時的なファイル(ユーザ版)
※ 個別ユーザ向け
- bin
-
var
ログやキャッシュなど可変ファイル群。- cache
各種キャッシュ保存先 - crash
クラッシュダンプ保存先 - db
各ソフトで利用するデータベース情報。 - empty
SSHで利用される。 - local
/usr/local用のログファイル保存場所。 - lock
使用中リソースをロックするファイル - log
各種システム・ログファイル - mail
ユーザーのメールボックス - opt
/opt用の動的ファイル保存場所。 - run
ブート以降の走行中システムに関する情報 - spool
処理待ち状態のタスクのスプール - tmp
一時ファイル置場 (マルチユーザーモードの推奨)
- cache
ログインした際、ユーザ・ディレクトリがカレント・ディレクトリになる。
/home/ユーザー名
-
/xxxx… rootディレクトリ以下 -
~/xxxx… ユーザ・ディレクトリ以下 -
./xxxx… カレント・ディレクトリ以下
移行メモ: 元ページでは上記 2 項は見出しのみで本文が無い(書きかけ)。
-
それぞれ、set user ID と set group ID の略。
- 実行ファイルを実行する際にその実行ファイルの
所有者(ユーザー識別子やグループ識別子)の権限で実行できるようにする。 - 一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする
- ユーザー識別子やグループ識別子が指定されるが、必ず特権レベルが高くなるわけではない。
- 実行ファイルを実行する際にその実行ファイルの
-
setuid/setgidが設定されているプログラムは
- 所有者/グループの権限で動作する。
- 従って、所有者/グループがrootだと危険。
-
setuid/setgidが設定されているプログラム
- /bin/password
- /bin/ping
- /bin/su
-
参考
- setuid - Wikipedia
https://ja.wikipedia.org/wiki/Setuid
- setuid - Wikipedia
ファイルの種別とパーミッションが設定されている。
-
x文字目
- 1(1):ファイル種別
- 2-4(3):ファイル所有者に対する権限
- 5-7(3):ファイル所有グループに対する権限
- 8-10(3):その他に対する権限
-
ファイル
-
種別
種別 意味 - ファイル d ディレクトリ l シンボリックリンク -
権限
モード(数字) モード(アルファベット) 権限 4 r 読み取り 2 w 書き込み 1 x 実行
-
chmod モード 対象ファイル名-
パーミッションを数字(権限の合計値)で指定する。
chmod nnn 対象ファイル名
-
各位
- 1000の位:Special属性
- 100の位:所有者
- 10の位:所有グループ
- 1の位:その他
-
各値(Special属性を除く。)
各 表記 権限 0 --- 権限なし 1 --x 実行できるよ 2 -w- 書き込みできるよ 3 -wx 書込・実行できるよ 4 r-- 読み込みできるよ 5 r-x 読込・実行できるよ 6 rw- 読込・書込みできるよ 7 rwx 読込・書込・実行できるよ -
例(Special属性を除く。)
- フルコン:
777 - KEYファイル初期値:
600 - KEYファイル変更後:
644
- フルコン:
-
-
パーミッションを英字で指定する。
chmod 変更対象 変更方法 変更内容 対象ファイル
-
変更対象
変更対象 意味 u ユーザー g グループ o その他 a すべて -
変更方法
変更方法 意味 = 指定した権限にする + 指定した権限を付与する - 指定した権限を除去する -
変更内容
変更内容 意味 r 読み取り w 書き込み x 実行 s set user ID(SUID)、set group ID(SGID) t スティッキービット(sticky bit)
-
-
確認(lsコマンド)
$ ls -l
-
変更(chmodコマンド)
$ chmod nnn ファイル名
-
設定例
$ cd ~/.ssh $ ls -l total 0 -rw-rw-rw- 1 seigi seigi 398 Aug 20 13:12 authorized_keys $ chmod 600 authorized_keys $ ls -l total 0 -rw------- 1 seigi seigi 398 Aug 20 13:12 authorized_keys
※ 600は、所有者に読み書き権限を付与。
数値 権限 0 --- 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx
Advanced Windowsに習い。
-
カーネルオブジェクト
-
ジョブ、プロセス、スレッド
-
スレッド同期
-
メモリアーキテクチャ
- 物理
- 仮想
- メモリマップファイル
-
DLLインジェクションとAPIフック(ウィンドウ・システムの該当節を参照)
移行メモ: 元ページでは「Advanced」節の各項がいずれも見出しのみで
本文が無い(書きかけ)。
移行メモ: 元ページの「参考」節は見出しのみで本文が無い(書きかけ)。
Tags: 移行, Linux, OSS, 開発基盤
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。