bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug in [ -f file ] test


From: László Házy
Subject: Re: bug in [ -f file ] test
Date: Wed, 27 Jul 2016 11:36:41 -0400

Yes, user2 has rx access to /home/user1. This is done by the first command in the list of commands, namely: "[user1]$ chmod g+rx /home/user1". The two users are part of the same group.

An even more troublesome variation, involving root, is the following:

[user1]$ touch file; ls -l file
-rw-r--r--. 1 user1 users    0 Jul 26 15:24 file

[user1]$ ln -s /home/user1/file /var/tmp/link
[user1]$ ls -l /var/tmp/link
lrwxrwxrwx. 1 user1 users 17 Jul 26 15:26 /var/tmp/link -> /home/user1/file

[user1]$ [[ -f /var/tmp/link ]]; echo $?
0

[user1]$ su 
[root]$ [[ -f /var/tmp/link ]]; echo $?
1


On Tue, 2016-07-26 at 23:26 +0200, Reuti wrote:
Am 26.07.2016 um 23:07 schrieb László Házy:

Hmm, interesting. I can reproduce your results. Thanks. However, note the following: [user1]$ chmod g+rx /home/user1 [user1]$ touch file; ls -l file -rw-r--r--. 1 user1 users 0 Jul 26 15:24 file [user1]$ su user2 -c "ln -s /home/user1/file /var/tmp/link" [user1]$ ls -l /var/tmp/link lrwxrwxrwx. 1 user2 users 17 Jul 26 15:26 /var/tmp/link -> /home/user1/file [user1]$ [[ -f /var/tmp/link ]]; echo $? 1 [user1]$ su user2 [user2]$ [[ -f /var/tmp/link ]]; echo $? 0 Something does not add up.
Does user2 have rx access to /home/user1? -- Reuti
>From experimenting, it appears that only the user who created the symlink will get true for the file test. Thank you. On Tue, 2016-07-26 at 15:06 -0400, Grisha Levit wrote:
Are you sure "file" is a link to an actual file, not, say, a directory? $ rpm -q bash; echo $BASH_VERSION; cat /etc/redhat-release bash-4.3.42-3.fc23.x86_64 4.3.42(1)-release Fedora release 23 (Twenty Three) $ touch file; ln -s file link; [[ -f link ]]; echo $? 0 On Tue, Jul 26, 2016 at 12:58 PM, László Házy <address@hidden> wrote:
I am running bash 4.3.42-3 on Fedore Core 23. I noticed that the [ -f file ] test returns false if "file" is a symlink. Given the intended behavior (from a long time ago), this is wrong as the symlinks are supposed to be followed. It certainly brakes functionality in certain existing software. Has the default behavior been changed somewhere along the time line and I am not aware of it?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]