@@ -28,6 +28,34 @@ test_storage() {
2828
2929 lxc storage volume create " $storage_pool " " $storage_volume " size=1MiB
3030
31+ # Test storage directory permissions
32+
33+ # Verify storage pool directory permissions match BaseDirectories expectations.
34+ # We expect:
35+ # - containers, containers-snapshots -> 0711
36+ # - buckets -> 0711
37+ # - custom, custom-snapshots -> 0700
38+ # - images -> 0700
39+ # - virtual-machines, virtual-machines-snapshots -> 0700
40+ pool_path=" ${LXD_DIR} /storage-pools/${storage_pool} "
41+
42+ declare -A expected_modes
43+ expected_modes[containers]=711
44+ expected_modes[containers-snapshots]=711
45+ expected_modes[buckets]=711
46+ expected_modes[custom]=700
47+ expected_modes[custom-snapshots]=700
48+ expected_modes[images]=700
49+ expected_modes[virtual-machines]=700
50+ expected_modes[virtual-machines-snapshots]=700
51+
52+ for dir in " ${! expected_modes[@]} " ; do
53+ want=" ${expected_modes[$dir]} "
54+ # Use stat to get permission bits in octal (portable across test environments)
55+ mode=$( stat -c %a " ${pool_path} /${dir} " )
56+ [ " ${mode} " = " ${want} " ]
57+ done
58+
3159 # Test setting description on a storage volume
3260 lxc storage volume show " $storage_pool " " $storage_volume " | sed ' s/^description:.*/description: bar/' | lxc storage volume edit " $storage_pool " " $storage_volume "
3361 [ " $( lxc storage volume get " $storage_pool " " $storage_volume " -p description) " = " bar" ]
0 commit comments