首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旁路文件夹权限

旁路文件夹权限
EN

Unix & Linux用户
提问于 2020-12-23 20:17:40
回答 2查看 1.1K关注 0票数 0

我想访问c,在那里“a”是受限制的。

原因是我想通过a中的符号链接共享几个文件。

代码语言:javascript
复制
a              <- drwx------
└ b            <- drwxr-xr-x
  └ c          <- drwxr-xr-x


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

我知道我需要所有的abc +xc +r,但它不是那样工作的。现在a是drwx x x x

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

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2020-12-23 20:57:35

就您的意图和目的而言,您试图做的事情在当前的权限和所有权下是不可能的。这可以通过绑定挂载来完成,但是符号链接就不能工作了。

您已经知道,除了所有者(和root用户)之外,任何人都不能遍历a,这意味着其他任何人也不能访问bc,所以每个人都可以读取和遍历它们并不重要。

您可以做的唯一一件事是将a的权限更改为755,或者如果您不希望给每个人提供访问权限,则创建一个组并只添加您想要访问的组,将其设置为a的组,然后将a的权限更改为750

票数 1
EN

Unix & Linux用户

发布于 2020-12-24 02:23:44

是的,有可能:您需要创建到a/b/c/some_files的硬链接。然后,您可以从中间目录中完全删除所有"o“权限!

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

演示: Prep

代码语言:javascript
复制
# 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

演示:验证

代码语言:javascript
复制
# 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.
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/625901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档