绕过文件夹权限

绕过文件夹权限

我想授予对c“a”受到限制的访问权限。
原因是我想通过a.

a              <- drwx------
└ b            <- drwxr-xr-x
  └ c          <- drwxr-xr-x


ln -s ../a/b/c/some_files ../a/

我明白我需要一切ab并且c +xc +r但事实并非如此。现在 a 是 drwx--x--x

我如何实现我的目标?谢谢你!

答案1

出于您的意图和目的,您尝试执行的操作在当前权限和所有权下是不可能的。可以通过绑定安装来完成,但符号链接将不起作用。

正如您所知,a除了所有者(和根)之外,任何人都不能遍历,这意味着其他人bc不能访问它们,因此每个人都可以读取和遍历它们并不重要。

您唯一可以做的就是更改 的权限,a或者755如果您不想向所有人授予访问权限,请创建一个组并仅添加您想要访问的人员,将其设置为 的组a,然后将权限更改a750

答案2

是的,可能:您需要创建一个硬链接a/b/c/some_files。然后您可以o从干预目录中删除绝对所有“”权限!

顺便说一句,指定是最安全的绝对创建链接时的路径。

演示:准备

# whoami
root

# mkdir -p /a/b/c
# touch /a/b/c/d
# chmod o= /a/
# chmod o= /a/b/
# chmod o= /a/b/c/
# ls -ld /a/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/

# ls -ld /a/b/
drwxr-x--- 3 root root 15 Dec 23 20:45 /a/b/

# ls -ld /a/b/c/
drwxr-x--- 2 root root 15 Dec 23 20:45 /a/b/c/

# ls -l /a/b/c/d
-rw-rw-rw- 1 root root 0 Dec 23 20:46 /a/b/c/d

# ln -s /a/b/c/d /softlink-to-d
# ls -l /softlink-to-d
lrwxrwxrwx 1 root root 8 Dec 23 20:47 /softlink-to-d -> /a/b/c/d

# ln    /a/b/c/d /hardlink-to-d
# ls -l /hardlink-to-d
-rw-rw-rw- 2 root root 0 Dec 23 21:09 /hardlink-to-d

演示:证明

# su - postgres -c 'touch /a/b/c/d'
touch: cannot touch ‘/a/b/c/d’: Permission denied

# su - postgres -c 'touch /softlink-to-d'
touch: cannot touch ‘/softlink-to-d’: Permission denied

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 20:46 /a/b/c/d
                       ### Note, mtime still unchanged...

# su - postgres -c 'touch /hardlink-to-d'

# ls -l /a/b/c/d
-rw-rw-rw- 2 root root 0 Dec 23 21:13 /a/b/c/d
                       ### ...finally, mtime changed.

相关内容