I have no idea what 'more-magic' xsane uses, as simple magic of root using scanimage isn't sufficient.
as your diff shows no success, only 'permission denied' the cause of the failure can't be identified ...
maybe a
'export SANE_DEBUG_DLL=128'
As user 'strace xsane 2>strace.user.log'
As root
'strace xsane -L 2>strace.root.log'
Finally
'diff strace.user.log strace.root.log'
could be of help. Don't know. But it's worth a try, unless better ideas arise.
I have no idea what 'more-magic' xsane uses, as simple magic of root using scanimage isn't sufficient.
as your diff shows no success, only 'permission denied' the cause of the failure can't be identified ...
maybe a
'export SANE_DEBUG_DLL=128'
As user
'strace xsane 2>strace.user.log'
As root
'strace xsane -L 2>strace.root.log'
Finally
'diff strace.user.log strace.root.log'
could be of help. Don't know. But it's worth a try, unless better ideas arise.