@@ -20,6 +20,35 @@ test_storage() {
2020
2121 lxc storage volume create " $storage_pool " " $storage_volume "
2222
23+ # Test storage directory permissions
24+
25+ # Verify storage pool directory permissions match BaseDirectories expectations.
26+ # We expect:
27+ # - containers, containers-snapshots -> 0711
28+ # - buckets -> 0711
29+ # - custom, custom-snapshots -> 0700
30+ # - images -> 0700
31+ # - virtual-machines, virtual-machines-snapshots -> 0700
32+ pool_path=" ${LXD_DIR} /storage-pools/${storage_pool} "
33+
34+ declare -A expected_modes
35+ expected_modes[containers]=711
36+ expected_modes[containers-snapshots]=711
37+ if [ " ${lxd_backend} " != " ceph" ]; then
38+ expected_modes[buckets]=711 # Buckets are not supported on ceph backend.
39+ fi
40+ expected_modes[custom]=700
41+ expected_modes[custom-snapshots]=700
42+ expected_modes[images]=700
43+ expected_modes[virtual-machines]=700
44+ expected_modes[virtual-machines-snapshots]=700
45+
46+ for dir in " ${! expected_modes[@]} " ; do
47+ want=" ${expected_modes[$dir]} "
48+ mode=$( stat -c %a " ${pool_path} /${dir} " )
49+ [ " ${mode} " = " ${want} " ]
50+ done
51+
2352 # Test setting description on a storage volume
2453 lxc storage volume show " $storage_pool " " $storage_volume " | sed ' s/^description:.*/description: bar/' | lxc storage volume edit " $storage_pool " " $storage_volume "
2554 lxc storage volume show " $storage_pool " " $storage_volume " | grep -q ' description: bar'
0 commit comments