Closed
Description
We have a storage account that has a container named "$web" within it.
I believe this is very simply an issue where something is probably catching "$web" and interpreting it as a variable rather than being properly escaped.
Configuration
vi /etc/blobfuse2/config.yaml
#
# Refer ./setup/baseConfig.yaml for full set of config parameters
logging:
type: syslog
level: log_debug
components:
- libfuse
- file_cache
- attr_cache
- azstorage
libfuse:
attribute-expiration-sec: 120
entry-expiration-sec: 120
negative-entry-expiration-sec: 240
file_cache:
path: /mnt/blobfuse2tmp
timeout-sec: 120
max-size-mb: 4096
attr_cache:
timeout-sec: 7200
azstorage:
type: block
account-name: MYACCOUNT
sas: MYSAS
mode: sas
#
Test commands
mkdir ./test
blobfuse2 mount all ./test --read-only=true --config-file=/etc/blobfuse2/config.yaml
Result
Mounting container : $web to path test/$web
Failed to mount container $web : Error: invalid config file [open /root/.blobfuse2/config_.yaml: no such file or directory]
If you look in /root/.blobfuse2, you'll see these files:
total 20
drwxr-xr-x 2 root root 4096 Feb 13 01:47 ./
drwx------ 18 root root 4096 Feb 13 01:44 ../
-rw-r--r-- 1 root root 4 Feb 13 01:47 _home_admin_k_inventory.pid
-rw-r--r-- 1 root root 654 Feb 13 01:47 'config_$web.yaml'
-rw-r--r-- 1 root root 669 Feb 13 01:47 config_inventory.yaml
The other container "inventory" mounts successfully.
As you can see above, blobfuse2 is complaining about "/root/.blobfuse2/config_.yaml" not existing, but there is a file called 'config_$web.yaml', so I bet $web is not being escaped in some internal command and results in a blank value being used.