3

あるディレクトリから別のディレクトリへのソフトリンクを実行しようとしています。アクセスしようとしているディレクトリを読み取って実行しました。ただし、その親ディレクトリには実行権限がありません。

親ディレクトリへの実行許可を与えずに、目的のディレクトリへのソフトリンクを行う方法はありますか?

以下は私が使用したコードです:

ln -s /home/dir1/dir2/desired_directory symbolic_link_name

リンクは灰色の背景に赤で表示されます。

ありがとうございました。

4

2 に答える 2

3

これはシンボリック リンクでは不可能ですが、mount --bind で実行できます。要点がセキュリティを回避することである場合、これはおそらく非常に悪い考えであることに注意してください。

あなたのコマンドは

mount --bind /home/dir1/dir2/desired_directory mount_dir

注意すべきいくつかの問題があります。

  • ターゲット ディレクトリ mount_dir は前に存在している必要があります (マウント ポイントと同じ)。
  • マウント コマンドを実行するには、ルート アクセスが必要です。
  • 作成された「リンク」は、対応する行が /etc/fstab に追加されない限り、再起動後に保持されません
  • 元のディレクトリにマウントされたファイル システムが含まれている場合、これらはターゲットに転送されません。マウント ポイントは空のディレクトリとして表示されます。
  • ほとんどのプログラムは「リンク」が標準ディレクトリではないことを認識していないため、mount --bind の使用は悪い習慣と見なされる場合があります。たとえば、ディレクトリ ツリーにループを作成すると、ツリー解析アプリケーション ("ls -R" と考えてください) が無限ループに入る可能性があります。
  • 再帰的な削除操作と組み合わせると危険な場合があります。たとえば、マウント --bind および rm -rf に関するさらに別の警告を参照してください。
于 2015-10-14T23:22:39.863 に答える
1

シンボリック リンクは、ターゲットに設定されたアクセス許可を回避する方法ではありません。いいえ、あなたが望むことをする方法はありません。もしそれが可能であれば、それは深刻なセキュリティ問題になるでしょう。

于 2013-10-17T18:10:06.830 に答える