I'm trying to run a game called "Dofus", in Manjaro Linux. I've installed it with packer, that put it under /opt/ankama
folder. This folder ownership (and for every file inside it) is root user, and games group. As instructed by the installing package, I've added myself (user familia
) in the games group (by not doing so, "I would have to input my password every time I tried to run the updater").
However, when running the game, it crashes after inputting my password (which shouldn't be required). Checking the logs, I've got some errors like those:
[29/08 20:44:07.114]{T001}INFO c/net/NetworkAccessManager.cpp L87 : Starting request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D
[29/08 20:44:07.291]{T001}INFO c/net/NetworkAccessManager.cpp L313 : Request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D Finished (status : 200)
[29/08 20:44:07.292]{T001}ERROR n/src/update/UpdateProcess.cpp L852 : Can not cache script data
So, I suspect Permission Denied errors. An error message a moment after starting
That translates to "An error has happened while writing to the disk - verify if you have the sufficient rights and enough disk space".
Then, after some research, I came across "auditd" that can log file accesses in a folder. After setting it up, and seeing which file accesses were unsuccessful, this is the result.
All of those errors actually refer to a unique file, /opt/ankama/transition/transition
, with a syscall to (open
). This file's permissions are rwxrwxr-x
(775
). So, I've rwx permissions to it, yet it gives me an error exit -13
, which is a EACESS
error (Permission Denied).
I've already tried to reboot the computer, to log in and log out. None of them worked.
If I set the folder permissions to familia:games
, it runs with no trouble, I don't even need to input my password. However, it doesn't seem right this way. Any ideas of why I get Permission Denied errors even though I have read/write/execute permissions?
Mark has said that I could need +x permissions in all directories of the path prefix. The path itself is /opt/ankama/transition/transition
. The permissions for the path prefixes are:
/opt - drwxr-xr-x(755), ownership root:root
/opt/ankama - drwxr-xr-x(755), ownership root:games
/opt/ankama/transition - drwxrwxr-x(775), ownership root:games
However, one thing that I've noticed is that all subfolders of /opt/ankama
are 775
, even though the folder itself is 755
. I don't think this means anything, and changing the permissions to 775
doesn't work.
Also, Giel suggested that I could have AppArmor running on my system. However, running # cat /sys/module/apparmor/parameters/enabled
gives me N
.
rename
andunlink
in that audit log. The program may rely on having write access to a few of those directories. When it fails, the password you said it asks for may be for someone who does have write access.rename
andunlink
calls?syscall=87
line. That's unlink. And the audit shows the directory is user 0, group 0, mode 755. If the process is running as you, it's not going to succeed with that unlink unless the directory is mode 777 or its owner is you or its group is a group you're a member of and its mode 775.