I have a similar problem (steam client beta), if I want to add a folder "X", that was previously already a steam library folder and thus has the directory "SteamApps" in there. Trying to add "X" also fails with the execute permission message and the console detail:
sh: /X/steamapps/.steam_exec_test.sh: No such file or directory
If I rename the contained folder "SteamApps" to "steamapps", the client recognizes the folder and the installed games.
So I guess this is some sort of case-sensitivity issue, where "SteamApps" is accepted for a known steam folder (because it doesn't trigger the folder must be empty message), but not used for the executable test?
@portaloffreedom: Does renaming the "SteamApp" folder to the lowercase version restore things?
Attaching strace shows, that the existing SteamApps (case doesn't matter) folder is recognized, the
.steam_exec_test.sh file is being created in there and gets access rights modified. But when executing, the lowercase folder name is always used, which doesn't exist. Thus the test fails. Ironically, even if this execution fails, the correct file is removed at the end.
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//SteaMapPs/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] open("/tmp/w//SteaMapPs/.steam_exec_test.sh", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 82
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//SteaMapPs/.steam_exec_test.sh", F_OK) = 0
[pid 17714] chmod("/tmp/w//SteaMapPs/.steam_exec_test.sh", 0700) = 0
[pid 18173] execve("/bin/sh", ["sh", "-c", "\"/tmp/w//steamapps/.steam_exec_test.sh\""], [/* 91 vars */]) = 0
[pid 18173] execve("/tmp/w//steamapps/.steam_exec_test.sh", ["/tmp/w//steamapps/.steam_exec_test.sh"], [/* 95 vars */]) = -1 ENOENT (No such file or directory)
[pid 18173] stat("/tmp/w//steamapps/.steam_exec_test.sh", 0x7ffcfca21de0) = -1 ENOENT (No such file or directory)
[pid 18173] stat("/tmp/w//steamapps/.steam_exec_test.sh", 0x7ffcfca21dc0) = -1 ENOENT (No such file or directory)
[pid 18173] write(2, "sh: /tmp/w//steamapps/.steam_exec_test.sh: No such file or directory\n", 69) = 69
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//steamapps/.steam_exec_test.sh", F_OK) = -1 ENOENT (No such file or directory)
[pid 17714] access("/tmp/w//SteaMapPs/.steam_exec_test.sh", F_OK) = 0
[pid 17714] unlink("/tmp/w//SteaMapPs/.steam_exec_test.sh") = 0
@htto OMG yes! Renaming the "SteamApp" folder to the lowercase version does indeed fixed the issue for me! Thanks! :D
Still, I wouln't say this issue is solved
This issue is still (unfortunately) alive and well.
Nothing extracted yet.
The issue is that I cannot install my games on the external hard drive any more. The hard drive is NTFS formatted, and mounted with executable permissions. Still, all of a sudden all the games installed there disappeard (they are uninstalled now) and I cannot install anything any more on that disk. I receive this error message (more or less this, it's translated from Italian): "The new folder of the steam library must be on a filesystem mounted with executable permissions".
Now, the disk is INDEED mounted with executable permissions. I even tried to create a stupid executable there and execute it, and it's working.
This is the mount output for that disk:
NB: