Open4
【メモ】Linux
ディレクトリ
Filesystem Hierarchy Standard
Linux(などのUNIX系OS)の標準的なディレクトリ構成を定めた標準仕様。
基本のディレクトリ構成(ParrotOS)
各OSの改装はman hier
コマンドで確認可能。
ディレクトリ名 | 概略 |
---|---|
/ | ルートディレクトリ。ファイルシステムの最上位の位置 |
/bin | 基本となる実行ファイルやコマンド(のバイナリ) |
/boot | OSの起動に必要なファイル |
/dev | デバイスファイル |
/etc | システム固有の設定ファイル |
/home | ユーザーごとのホームディレクトリ |
/lib | 必須の共有ライブラリやカーネルモジュール |
/lib32 | 32ビット用の共有ライブラリ |
/lib64 | 64ビット用の共有ライブラリ |
/libx32 | x32(x86_64ベースでアドレス長32bit)用の共有ライブラリ |
/media | CD/DVD, リムーバブルメディアのマウントポイント |
/mnt | 一時的なファイルシステムのマウントポイント |
/opt | アドオンのアプリやデータ |
/proc | システムの統計情報、現在実行中のプロセス情報、カーネルパラメータの一部 |
/root | rootユーザーのホームディレクトリ |
/run | 現在実行されているプロセスに関するデータ |
/sbin | 基本となるシステム管理者用のコマンド(のバイナリ) |
/srv | システム固有のサーバー用データ |
/sys | Linuxカーネルに関するデータ |
/tmp | 一時的なファイル。再起動時にクリアされることもある。 |
/usr | 各ユーザーが共通して利用するプログラム、ライブラリ、文書、カーネルソース |
/var | メールやログといった時間の経過とともに変化するデータ |
/usr
/usr
├── bin/(必須) 大部分のユーザーコマンド
| ├── perl/(例:オプション)
| ├── python/(例:オプション)
| ├── tcl/(例:オプション)
| └ など
├── include/(必須) C言語で使うヘッダファイル
├── lib/(必須) ライブラリファイル
├── local/(必須) パッケージシステム管理外
| ├── bin/(必須) ローカルにインストールしたプログラム
| ├── games/(必須) ゲーム
| ├── include/(必須) C言語用ヘッダファイル
| ├── lib/(必須) ライブラリとプログラム
| ├── man/(必須) /local/bin用manページ
| ├── sbin/(必須) 管理者用プログラム
| ├── share/(必須) アーキテクチャに依存しないデータ
| └ src/(必須) ソースコード
├── sbin/(必須) システム用バイナリファイル
├── share/(必須) アーキテクチャに依存しないデータ
| ├── man/(必須) manページ
| └ misc/(必須) さまざまなデータ
├── X11R6/(オプション) X Window System
├── games/(オプション) ゲームと教育用
├── lib<qual>/(オプション) ライブラリの代替形式
└ src/(オプション) ソースコード
└ linux/ Linux Kernelのソースコード
参考
パーミッション
例
drwxr-x--- 4 ubuntu ubuntu 4096 Oct 15 08:46 ./
drwxr-xr-x 3 root root 4096 Oct 15 07:25 ../
-rw-r--r-- 1 ubuntu ubuntu 220 Jan 6 2022 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Jan 6 2022 .bashrc
drwx------ 2 ubuntu ubuntu 4096 Oct 15 07:27 .cache/
-rw------- 1 ubuntu ubuntu 20 Oct 15 08:37 .lesshst
-rw-r--r-- 1 ubuntu ubuntu 807 Jan 6 2022 .profile
drwx------ 2 ubuntu ubuntu 4096 Oct 15 07:25 .ssh/
-rw-r--r-- 1 ubuntu ubuntu 0 Oct 15 07:36 .sudo_as_admin_successful
-rw------- 1 ubuntu ubuntu 1529 Oct 15 08:46 .viminfo
-rwx------ 1 www-data www-data 1371 Oct 15 08:36 server.crt*
-rwx------ 1 www-data www-data 1082 Oct 15 08:32 server.csr*
-rwx------ 1 www-data www-data 1704 Oct 15 08:36 server.key*
各桁の意味
先頭からの番地 | 意味 |
---|---|
1 | ファイル種別 |
2-4 | ファイルの所有者に対する権限 |
5-7 | ファイルの所有グループに対する権限 |
8-10 | その他に対する権限 |
ファイル種別
種別 | 意味 |
---|---|
- | ファイル |
d | ディレクトリ |
l | シンボリックリンク |
権限
モード(英字) | モード(数字) | 意味 |
---|---|---|
r | 4 | 読み取り権限 |
w | 2 | 書き込み権限 |
x | 1 | 実行権限 |
- | - | 権限なし |
権限付与
chmod
コマンドを使用する
chmod
の 第1引数で <a/g/u/o><-/=/+><r/w/x>
の形式で指定
例1: chmod u+w <ファイル>
で ユーザーに対して書込み権限を付与
例2: chmod go=rw <ファイル>
で グループとその他は読み込み・書込み権限を持つように設定
変更方法
オプション | 内容 |
---|---|
= | 指定した権限にする |
+ | 指定した権限を付与する |
- | 指定した権限を除去する |
変更対象
オプション | 内容 |
---|---|
a | すべてのユーザ |
g | グループ |
u | ユーザー |
o | その他 |
参考
/etc/sudoersファイルの書式
<ユーザ名> <ホスト>=(<権限>) <コマンド>
%<グループ名> <ホスト>=(<権限>) <コマンド>
対象 | 説明 |
---|---|
<ホスト> | 設定ファイルを使い回す場合、どのサーバーで設定を反映するかの指示 |
<権限> | どのユーザーに成り代わってコマンドを実行するか。(<ユーザー>:<グループ>) のようにも記述可能。 |
<コマンド> | 許可するコマンドをフルパスで指定 |
どの項目もALL
を指定することで、それぞれすべてのホスト、ユーザー、グループ、コマンドの許可が可能
記述例
root ALL=(ALL:ALL) ALL
%sudo ALL=(ALL) NOPASSWD:ALL
参考
- ハッキング・ラボのつくりかた P269~
エディタの変更
デフォルトのエディタの変更
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
sudoで実行する必要あり。
Vimを使いたい場合、「3」を入力してエンター
一時的な変更
EDITOR=vim sudo -E visudo
-E
オプションにより特権ユーザー時に環境変数を引き継ぐ。