Dear Claudio,
I think you are addressing two issues:
1. tilde expansion in Tcl
2. locating credentials / accessing home directory
Tilde expansion in Tcl is being phased out [1], so i would not recommend to build upon it. Nevertheless, "exec ls ~" never worked in a tclsh AFIKT:
$ tclsh8.5
% exec ls ~
ls: ~: No such file or directory$ tclsh8.6
% exec ls ~
ls: ~: No such file or directory
$ tclsh8.7
% exec ls ~
ls: ~: No such file or directory
$ tclsh9.0
% exec ls ~
ls: ~: No such file or directory
One can get the expansion by calling bash via exec.
I am not an AWS user, but according to the online documentation [2], there are multiple ways of addressing the credentials. Since OpenACS runs under the specified OpenACS user (e.g., nsadmin), you could add the environment variable USER to your setup, or you can specify "/home/nsadmin/.aws/config" since, i assume, OpenACS is always running with the same user in your environment...
[1] https://wiki.tcl-lang.org/page/Tilde+Substitution
[2] https://repost.aws/knowledge-center/s3-locate-credentials-error