Linux(Linux Essentials)5-4.スティッキービットとシンボリックリンク・ハードリンク

今回紹介するのは以下
・一時的なファイルの置き場とスティッキービット
シンボリックリンクとハードリンク






■一時的なファイルの置き場とスティッキービット
例:一時的なファイルを配置する場所として適切なディレクトリ。
/tmp
/var/tmp


例:「/tmp」、「/var/tmp」ディレクトリに設定されているパーミッション
→rwxrwxrwt
※全てのユーザーにすべての権限が与えられ、かつスティッキービット(t)が設定されている。


例:スティッキービット(Sticky bit)について、正しく説明しているもの。
ファイルのオーナーとrootユーザーのみがファイルを削除できる。


例:ディレクトリ「subdir」に対してスティッキービット(Sticky bit)を設定するコマンドライン
→chmod o+t subdir


例:コマンド「chmod 1777 /dir」の意味として正しいもの。
→「/dir」にはすべてのユーザーがファイルを配置できる。
→「/dir」に作成したファイルは、作成者かrootユーザーだけが削除できる。
※「1777」は、「777(全てのユーザーに対する読み取り、書き込み、実行権)」に加えてスティッキービット(Sticky bit)を設定する。


例:以下のディレクトリ「tmpdir」に対して可能な操作。

$ ls -ld tmpdir
drwxrwxrwt 2 user01 user 25 Nov 10 13:55 tmpdir

→ユーザーuser01は自分が作成したファイルを削除できる。


シンボリックリンクとハードリンク
・「シンボリックリンク」とは元ファイルの場所を指し示すリンクのことです。特徴は以下です。
Windowsでいうショートカットのような。
異なるファイルシステムパーティションのファイルやディレクトリへリンクできる。
ディレクトに対するリンクが作成可能である
→元ファイルが削除されるとアクセスできなくなる


・「ハードリンク」とはファイルの実体を直接参照するリンクのことです。特徴は以下です。
→異なるファイルシステムパーティション)のファイルへリンクできない
ディレクトリのハードリンクは作成できない
元ファイルが削除されてもアクセスできる。


例:シンボリックリンクについて正しく述べているもの。
ディレクトリのリンクを作成することができる
異なるファイルシステムのファイルに対しても作成できる


例:以下の ls -l の結果について正しく述べているもの。

$ ls -l file
lrwxrwxrwx 1 user01 user 6 Nov 19 18:28 file -> ping-t.txt

→ファイル「file」は「ping-t.txt」のシンボリックリンク
→ファイル「ping-t.txt」を更新すると「file」を参照した時に反映されている


例:コマンド「ln -s /home/user01/file file.lnk」について正しい説明。
シンボリックリンクを作成する


例:ディレクトリ「Dir1」のシンボリックリンク「Dir2」を作成するコマンドライン
→ln -s Dir1 Dir2
※【書式】ln [-s] 元ファイルやディレクト リンクファイル


<図解:シンボリックリンクとハードリンク>

・元ファイル(File1)へのリンクのため、元ファイルが削除されるとアクセスできなくなる
・元ファイル(File1)を更新すると、シンボリックリンクを参照した時に更新が反映されている



・元ファイル(File1)へのリンクではなく、元ファイルが参照している実体ファイルへのリンク。