如标题所示,我需要让我的文件夹之一对其他人不可见,我正在考虑将其设置为 700。这会让其他人看不到我的文件夹吗?
如果不是,除了将其重命名为 之外.file
,如何使其他用户看不到或检测不到我的文件夹?
答案1
只要父目录是可读且可遍历的r-x
,则包含的任何文件或目录(包括使用 的“隐藏”文件或目录ls -a
)都可以被视为存在。
但是,如果文件或目录本身没有任何用户访问该文件或目录的权限,则无法读取其内容。
示例:
/root
通常有r-xr-x---
或rwxr-x---
每个人都可以看到它的/root
存在,但只有 root 可以遍历它并读取它的内容。
旁注:对于文件,我不建议应用权限 700 ( rwx------
) ,除非它是脚本或二进制文件。普通文件应该有 600 ( rw-------
)。
答案2
是的,其他用户可以看到该文件或文件夹。文件或文件夹的权限控制用户可以看到的对象的信息,但不控制对象的存在。
例如,在我的系统上,我有一个名为“test”的用户。作为我的普通用户“neek”,我创建一个文件并对其进行 chmod:
$ cat > ~/some-file
hello
^D
$ chmod 700 ~/some-file
现在 su 到test
用户并统计文件:
$ stat /home/neek/some-file
File: /home/neek/some-file
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 812h/2066d Inode: 6649290 Links: 1
Access: (0700/-rwx------) Uid: ( 1000/ neek) Gid: ( 1000/ neek)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2019-10-21 11:41:02.947116946 +0700
Modify: 2019-10-21 11:41:02.947116946 +0700
Change: 2019-10-21 11:41:05.963103029 +0700
Birth: 2019-10-21 11:41:02.947116946 +0700
但是,我看不到它的内容:
$ cat /home/neek/some-file
cat: /home/neek/some-file: Permission denied
通过在文件名前面加上点来使文件“隐藏”并不能保证不可见,因为可以使用文件浏览器中的“显示隐藏文件”.
轻松绕过它。ls -a
这是“默默无闻的安全”。
目录使用“x”权限来控制目录的遍历,使用“r”来控制读取其内容。但在我花更多时间之前...
您的问题似乎更有针对性地使文件或文件夹对其他用户完全不可见,我相信这是无法通过正常安装完成的,尽管我不是文件系统方面的专家。
我建议使用加密分区或文件中的文件系统,例如快速搜索让我找到https://www.howtoing.com/cryptmount-create-encrypted-filesystems-in-linux/其中提到“回送文件”,这意味着文件系统包含在文件系统上的单个普通文件中,并且可以安装在您选择的某个安装点,类似于安装 .iso 文件的工作方式,但由于其内容是加密后,未经身份验证,任何人都无法看到其内容。