Since Android 5 write access to the sd-card in portable mode needs to be granted individually for each app. Only apps on a rooted device that are able to use root permissions can bypass this restriction.
For granting write permission the app has to request them in code. Typically it is enough to trigger one write request, e.g. by letting the create a file or folder.
Then Android opens the file application and want's you to select a directory. This is the directory you are granting write permissions for the app, therefore you should select here the path where the sd-card is mounted to, e.g. /storage/A231-7ADF
.
Usually the sd-card is also shown as quick link on the left side of the files app, so you don't have to know the exact path.
After selecting the sd-card path press the button that is usually something like "Select ..." or "OK". Then you will return to the app you have granted write permission to. To my experience the write request that has triggered the whole process will fail, but every request afterwards will work, if the write-grant-process was performed correctly.
For users doing this the first time it is usually very confusing and you might not be successful on first try. I think it took me several days and multiple attempts before I finally had understood the process and selected the correct folder.
Note that the write permission only works if the app uses the Java/Kotlin Android API to open the files. On file-system level access will be still read-only. This affects especially apps that include generic GNU/Linux native applications that are executed internally as they do not use Android API.