danielgatis / imgcat

Display images and gifs in your terminal.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Permission denied when reading files

SoloSynth1 opened this issue · comments

Using the snap package, imgcat returns permission denied error when a file is given as input in the argument.

However, it works fine when reading standard input (e.g. cat <image>.jpg | imgcat). Here is an example:

imgcat

I have tested it on Ubuntu 18.04 LTS & 20.04 LTS. Thanks for the follow-up in advance!

edit: typo

Have you already checked the file permissions?

ls -l yourfile.jpg

please paste the content here.

Sure, here it is; the image has 664 perm:

╭─user@userbox ~/Downloads 
╰─$ ls -l 81df324067abd6c4820674604a9587c8.jpg 
-rw-rw-r-- 1 user user 145663 Feb  9  2021 81df324067abd6c4820674604a9587c8.jpg

edit: ls'd the wrong file 😅

I have the same issue. Installed imgcat via snap. cat image.bmp | imgcat works but imgcat image.bmp returns 403.

fix in next release

Having the same issue. :(

Using go version go1.17.7 linux/amd64

Installed with go install github.com/danielgatis/imgcat@latest

Kernel Linux version 5.15.15-76051515-generic (jenkins@warp.pop-os.org) (gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0, GNU ld (GNU Binutils for Ubuntu) 2.37) #202201160435~1642693824~21.10~97db1bb SMP Thu Jan 20 17:35:05 U

On Pop!_OS 21.10

I have no clue why it is happening. Any suggestion?

Unfortunately I don't know enough about Go. All I can say is that I tried cat image.bmp | imgcat - as mentioned above - and it also works on my system. It's not that bad since I can just make an alias but it is strange indeed.

@sommerper
Take a look at here:
https://github.com/danielgatis/imgcat/blob/master/main.go#L48

This is the line that opens the file. The file is open as readonly, so it is a very strange error.

weird. I tried giving combinations of root / $user ownership to imgcat and the image but still got permission denied.

As far as I can see ioutil.ReadFile is deprecated in favor of os.ReadFile but it shouldn't make a difference really.

Same issue here, but I don't think it has anything to do with Go or the program itself. I suspect it's some AppArmor/SElinux restriction due to the jail that the snap runs in. If I try to have it open / or /home, it properly reports the error "is a directory", but when I have it open /home/$USER, it reports permission denied even though /home and /home/$USER allow world readability/access (i.e. 755 mode). The snap container restrictions need to be fixed, not the program itself.

Issue still exists even when run with sudo or with root user

2022/08/18 05:43:20 failed to read the input file: open ed3e487f3a8e9712938cae5fcb8ac7b8.jpg: permission denied
panic: failed to read the input file: open ed3e487f3a8e9712938cae5fcb8ac7b8.jpg: permission denied

goroutine 1 [running]:
log.Panicf({0x542bed, 0x60}, {0xc00004ff30, 0x60, 0x644880})
	/opt/hostedtoolcache/go/1.17.7/x64/src/log/log.go:361 +0x67
main.read({0x7ffc7b6ba50a, 0xc000010050})
	/home/runner/work/imgcat/imgcat/main.go:50 +0xee
main.main()
	/home/runner/work/imgcat/imgcat/main.go:277 +0x85

@penguin359
I just released version v1.0.14
When you get some free time, it would be nice if could test it. ;)

8f2acbf#diff-42e26dc67aed8aa3edb2472b4403288c1699fb6dc47419b9a475f0f224fe4689R28

@penguin359 I just released version v1.0.14 When you get some free time, it would be nice if could test it. ;)

8f2acbf#diff-42e26dc67aed8aa3edb2472b4403288c1699fb6dc47419b9a475f0f224fe4689R28

I've just installed a fresh version via snap and still get the exact same issue

Same here:

sudo snap refresh imgcat
snap "imgcat" has no updates available