1

How is it possible to make a folder under $HOME accessible to other users? I thought that's the case why we have softlinks but apparently I am missing some bits here. Can someone please shed a light on that?

Details: User Hadoop runs hadoop installaion and that contain bin folder with awailable commands to execute.

[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

I created a softlink pointing to bin folder:

[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

However when I switch to a different user and try to execute a command I get permission denied:

[bdst@A1n1 local]$ cd /usr/local/hadoop.bin
bash: cd: /usr/local/hadoop.bin: Permission denied

I am not sure what I am missing here as to me it seems that file permissions should be ok.

3 Answers 3

3

A symbolic link does not circumvent permissions of the original directory/file. As with direct access you need execute (x) permission on all directories in the path of the original and on the original directory itself. The x is missing on /home/hadoop for others.

4
  • Is there any standard way how to bypass that except making home dir 755 or so?
    – jaksky
    Commented Nov 1, 2013 at 14:07
  • You could use 751. That way other users can't see which files are in the home dir, but if they guess a name correctly, they can access it (so this would only be security by obscurity). The real solution would be to place the original directory in a public dir and use a symbolic link inside the home dir. Commented Nov 1, 2013 at 14:13
  • Ditto doing it the other way around (put the bin somewhere publicly accessible and symlink it into /home/hadoop).
    – goldilocks
    Commented Nov 1, 2013 at 14:14
  • 755 or 751 I was aware of and undersand that. I just wasn't sure that there wasn't other options (like symlinks - I misunderstood the permissions policy)
    – jaksky
    Commented Nov 1, 2013 at 14:25
0

You might be thinking of windows permissions, where everybody typically has the "bypass traverse checking" right, which skips permissions checks in parent folders.

Aside from setting 755/751 or placing the files in a public directory, you could also put your user bdst in the hadoop group, and set the hadoop home directory to 750 or 710.

-1
drwx------. 11 hadoop hadoop    4096 Oct 30 13:51 ..

I suppose this is your $HOME. Then this is the cause. Anyway, learn about unix permissions and ACL, it would help you.

1
  • Downvoted because this didn't really explain anything.
    – strugee
    Commented Nov 1, 2013 at 18:15

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .