File: nfs

package info (click to toggle)
ktls-utils 1.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 636 kB
  • sloc: ansic: 3,620; makefile: 55; sh: 44
file content (42 lines) | stat: -rwxr-xr-x 1,090 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/sh
set -eu

kver="$(uname -r)"
if linux-version compare "$kver" lt 6.5; then
    echo "I: This kernel version ($kver) is too old"
    exit 77
fi

. debian/tests/test-common

# Configure export
export_dir=/srv/server.internal
mkdir -p "$export_dir"
rm -f "$export_dir"/*
cat >/etc/exports <<EOF
$export_dir localhost(no_root_squash,rw,xprtsec=mtls)
EOF
exportfs -a

# Try to mount
mount_dir=/media/server.internal
mkdir -p "$mount_dir"
! mountpoint "$mount_dir" || umount "$mount_dir"
mount -t nfs -o nodev,nosuid,xprtsec=mtls \
      "server.internal:$export_dir" "$mount_dir"

# Check that mTLS is used
printf 'I: Mounted as: %s\n' "$(grep '^server\.internal:' /proc/mounts)"
if grep '^server\.internal:' /proc/mounts | grep -qv '\bxprtsec=mtls\b'; then
    echo >&2 "E: Missing xprtsec=mtls"
fi

# Check that it's really working
touch "$export_dir/server"
touch "$mount_dir/client"
if ! [ -f "$mount_dir/server" ]; then
    echo >&2 "E: Failing to see server changes on client"
fi
if ! [ -f "$export_dir/client" ]; then
    echo >&2 "E: Failing to see client changes on server"
fi