如何使 $HOME 下的文件夹可供其他用户访问?我认为这就是我们有软链接的原因,但显然我在这里遗漏了一些位。有人可以解释一下吗?
详细信息:用户 Hadoop 运行 hadoop 安装,其中包含 bin 文件夹,其中包含可供执行的命令。
[hadoop@A1n1 hadoop-1.0.4]$ ls -al
total 7648
drwxr-xr-x. 14 hadoop hadoop 4096 Apr 22 2013 .
drwx------. 11 hadoop hadoop 4096 Oct 30 13:51 ..
drwxr-xr-x. 2 hadoop hadoop 4096 Feb 27 2013 bin
[hadoop@A1n1 bin]$ ls -al
total 152
drwxr-xr-x. 2 hadoop hadoop 4096 Feb 27 2013 .
drwxr-xr-x. 14 hadoop hadoop 4096 Apr 22 2013 ..
-rwxr-xr-x. 1 hadoop hadoop 14137 Oct 3 2012 hadoop
-rwxr-xr-x. 1 hadoop hadoop 2642 Oct 3 2012 hadoop-config.sh
我创建了一个指向 bin 文件夹的软链接:
[root@A1n1 /usr/local]# ls -l
total 44
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
lrwxrwxrwx. 1 root root 29 Nov 1 08:16 hadoop.bin -> /home/hadoop/hadoop-1.0.4/bin
但是,当我切换到不同的用户并尝试执行命令时,我的权限被拒绝:
[bdst@A1n1 local]$ cd /usr/local/hadoop.bin
bash: cd: /usr/local/hadoop.bin: Permission denied
我不确定我在这里缺少什么,对我来说,文件权限似乎应该没问题。
答案1
符号链接不会规避原始目录/文件的权限。与直接访问一样,您需要对原始路径中的所有目录以及原始目录本身具有执行 (x) 权限。其他人的 /home/hadoop 上缺少 x。
答案2
您可能会想到 Windows 权限,其中每个人通常都具有“绕过遍历检查”权限,这会跳过父文件夹中的权限检查。
除了设置 755/751 或将文件放在公共目录中之外,您还可以将用户 bdst 放在 hadoop 组中,并将 hadoop 主目录设置为 750 或 710。
答案3
drwx------. 11 hadoop hadoop 4096 Oct 30 13:51 ..
我想这就是你的$HOME。那么这就是原因。不管怎样,了解一下unix权限和ACL,会对你有所帮助。