シンボリックリンクは常に親ファイルと同期されますか?

シンボリックリンクは常に親ファイルと同期されますか?

ルート所有権のみを持つログファイルがあります。このファイルはアクティブな受信ログで構成され、常に継続的に更新されます。このファイルへのシンボリックリンクを作成し、所有権をsyslogに変更する必要があります。ファイルを選択してリモートnxlogサーバーに送信するにはrsyslogが必要なので、シンボリックリンクファイルが常に親ファイルと同期していて、所有者の変更が機能しているかどうかはわかりません。

答え1

シンボリックリンクは実際のファイルへの参照にすぎません。同期やそれはまったくありません。

lsシンボリックリンクの出力を見ると、通常、次のような内容が表示されます。

ls -l /bin/bzcmp 
lrwxrwxrwx 1 root root 6 jul  9  2014 /bin/bzcmp -> bzdiff

ご覧のとおり、ファイル/bin/bzcmpサイズはわずか6バイトです。これを使用して、シンボリックリンクが指している場所を確認することbzdiffもできます。readlink

リンクの場合、宛先権限が適用されるため、権限を変更する必要はなく、不可能です。したがって、リンク所有者を変更する必要はありません(lrwxrwx読み書き)。

答え2

シンボリックリンクはファイルのコピーではなく、本質的に同じファイルへのポインタです。たとえば、権限では何もできず、元のファイルにアクセスできない場合は、シンボリックリンクで何をしても問題は解決されません。

さらに、常に同じファイルを直接指すので、常に「同期」されています。

答え3

シンボリックリンクはショートカットのようにファイル/フォルダへのポインタです。常に lrwxrwxrwx 権限を持ちます。他の回答で指摘したように、ターゲット権限が適用されます。

一方、ハードリンクは、同じインデックスノードを指すディレクトリエントリ(ファイル)です。他のファイルの名前を変更しても、ハードリンクはまだそのファイルを指します。これは、元のファイルを削除した場合も同様です。 inode を指すすべてのファイルが削除されると、そのファイルも削除されます。元のファイルまたはハードリンクされたファイルの権限を変更すると、同じ inode を指すすべてのファイルの権限が変更されるため、この場合、権限は同期されます。

関連情報