我想为朋友提供访问目录的权限。他可以访问目录所在的文件系统。我不想为所有用户设置权限。我怎样才能只允许一个人看到目录?我们都不是超级用户。
[赏金挑战]使用 Ubuntu,所有回复都不起作用:
1. jamuraa 的方法不起作用
$ setfacl -m user:friend:rwx classroom.xml
setfacl: classroom.xml: Operation not supported
Run Code Online (Sandbox Code Playgroud)
2. nik 的方法不起作用:无法访问不存在的文件
3. ba 的方法不起作用:我无法创建组,而不是根。
4. ToK的方法不起作用,用户分为两组:“用户”和“领域”
chown -R myFriend:users ~/TEST
chown: changing ownership of `/u/myFriend/TEST/you_see_it': Operation not permitted
chown: changing ownership of `/u/myFriend/TEST': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
jam*_*raa 12
使用普通的 UNIX 权限(用户、组、所有人),您无法轻松做到这一点。如果您不再需要访问该目录,您可以将目录的所有者更改为您的朋友,这在某些 Unices 上有效,但大多数情况下不是。
但是 - 如果您在 Linux 上启用了 ACL,并且您是文件的所有者,则可以执行此操作。只需运行命令setfacl -m user:friend:rwx filename
,其中朋友是您朋友的帐户名,文件名是文件。您可以通过运行来检查它是否生效getfacl filename
,您应该会user:friend:rwx
在列表中看到黑社会。不过,我还没有看到太多启用了 ACL 的 Linux 系统。
nik*_*nik 11
这是我们在学校讨论过的事情。
大致是这样的
data
,供参考)
chmod 711 data
”x
-- 进入目录的权限difficult-name-here
(这可能是一个散列字符串)chmod a+rx difficult-name-here
”cd path/to/data/difficult-name-here
”root
始终可以访问所有内容(这里不是问题)difficult-name-here
与您想提供此数据的人分享相当粗糙,但如果这可以在没有 unix 访问控制破坏的情况下被破坏,我想知道。
来自评论的更新dmckee
,
这正是我们得出的结论!
“默默无闻的安全”具有有限的安全性。
话虽如此,在设计数据保护时,
确定其价值很重要。
你应该瞄准,
在这种情况下,如果root
决定在公共访问的某个地方枚举目录树,那么
你的秘密就出来了!但是,您是从根本上保护还是从他们潜在的不负责任?
如果是这种情况,那么您需要担心更多的共享文件。
更新问题中的非工作注释。
我在 linux 的早期使用过它,知道它有效。
如果您得到 ' cannot access non-existant file
' 而不是'permissions denied
' 您很可能在序列中犯了错误。你想要的应该是这样的
755 711 755 随便 --=== 访问权限 BasePath/CoverDir/Obscure/protectedFile.txt | | ^^^^^^^^^^^^^^^^^ 没有就看不到 | ^^^^^^^ 目录名读取权限 ^^^^^ 公开分享给朋友。模糊目录。 无障碍 目录。
CoverDir
'访问权限设置为'rwx--x--x
',则Obscure
”并使用“ rwxr-xr-x
”授予完全读取权限,则ls BasePath/CoverDir/Obscure
”从外部完成,ls BasePath/CoverDir
”。Ryan 实际上是 100% 正确的,只是落后了。由于您的朋友(可能)有一个与他/她的用户名相关联的唯一组,因此将相关目录的组所有权更改为该组,很可能是朋友的用户名。为了能够在你们两个之间共享内容,您应该保留作为用户的所有权:
chown -R youruser:friendgroup ~/foo/bar
Run Code Online (Sandbox Code Playgroud)
然后为目录分配适当的权限,具体取决于您希望其他用户拥有的访问权限:
chmod -R 770 ~/foo/bar
Run Code Online (Sandbox Code Playgroud)
将授予你们对目录及其全部内容的完全 rwx 访问权限。
请注意,这假设没有其他用户被添加到您朋友的组中。系统可能不会进行此分配,但是,如前所述,root 用户可以执行他们选择的操作。您可以使用 groups 命令查看您的朋友或任意用户所属的每个组。此外,除非由于某种原因更改了权限,否则您应该能够查看 /etc/group 文件,其中包含系统上每个组的组分配。