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 之前必须存在(与任何挂载点相同)
  • 执行 mount 命令需要 Root 权限
  • 除非在 /etc/fstab 中添加相应的行,否则创建的“链接”将不会在重新启动后保留
  • 如果源目录包含已挂载的文件系统,则这些文件系统不会传输到目标。挂载点将显示为空目录。
  • 使用 mount --bind 可能被认为是不好的做法,因为大多数程序都不知道“链接”不是标准目录。例如,它允许在目录树中创建循环,这会使任何树解析应用程序(想想“ls -R”)进入可能的无限循环。
  • 与递归删除操作结合使用时可能会很危险。例如参见关于 mount --bind 和 rm -rf 的另一个警告
于 2015-10-14T23:22:39.863 回答
1

符号链接不是规避对其目标设置的权限的方法。不,没有办法做你想做的事。如果有可能,这将是一个严重的安全问题。

于 2013-10-17T18:10:06.830 回答