Como descobri, provavelmente tem a ver com o SELinux :
$ su
# getenforce
Enforcing
Arquivos regulares podem receber permissão de acesso do usuário comum, como no exemplo a seguir:
$ su
# echo foo >bar
# exit
$ cat foo
cat: bar: Permission denied
$ su
# ls -Z bar
u:object_r:app_data_file:s0 bar
# restorecon bar
SELinux: Loaded file_contexts
# ls -Z bar
u:object_r:app_data_file:s0:c512,c768 bar
# chown u0_a88.u0_a88 bar
# exit
$ cat bar
foo
O simples uso de restorecon
e chmod
não é suficiente, no entanto, para me dar
acesso a /sys/bus/usb/devices
:
# restorecon /sys/bus/usb/devices
# chown u0_a88.u0_a88 /sys/bus/usb/devices
# ls -Zd /sys/bus/usb/devices
u:object_r:sysfs:s0
# exit
$ ls -ld /sys/bus/usb/devices
drwxr-xr-x 2 u0_a88 u0_a88 0 Aug 23 11:49 /sys/bus/usb/devices
$ ls -l /sys/bus/usb/devices
ls: cannot open directory '/sys/bus/usb/devices': Permission denied
Eu não tentei alterar as permissões mais acima no caminho, pois estou preocupado quebrando o sistema.
(Eu suponho que minha explicação está certa. Ainda uma resposta por alguém experiente sobre o SELinux seria legal.)