Ok, finalmente encontrei o problema. Tinha a ver com o SELinux. Se você tiver problemas semelhantes, um teste simples seria "setenforce 0" para desativá-lo temporariamente. Se funciona quando "setenforce 0", mas não funciona com "setenforce 1", então o problema é algum problema relacionado ao SELinux. No meu caso, eu tive que executar o seguinte comando:
chcon 'unconfined_u:object_r:user_home_dir_t:s0' $HOME
Foi difícil ver porque o meu "/ home / wmsodbc" era realmente um link para outro lugar:
lrwxrwxrwx. wmsodbc wms unconfined_u:object_r:home_root_t:s0 /home/wmsodbc -> /other/wmsodbc
drwx--x--x. wmsodbc wms unconfined_u:object_r:user_home_dir_t:s0 /other/wmsodbc
Talvez isso agrade a outra pessoa.