aboutsummaryrefslogtreecommitdiff
path: root/scripts/hostname/nfs1/10-homedirs
blob: 3a6d9239d0e82e4bf7fc21631045aff0ed1cba06 (plain) (blame)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/sh

default_priv_quota=250G
default_pub_quota=10G

# Create user home directories.
for userquota in ${nfs_homedirs:-}; do
  user=$(echo "$userquota" | awk -F: '{print $1}')
  privquota=$(echo "$userquota" | awk -F: '{print $2}')
  pubquota=$(echo "$userquota" | awk -F: '{print $3}')

  create_dataset -p "${nfs_dataset}/user/${user}/priv"
  create_dataset -p "${nfs_dataset}/user/${user}/pub"

  zfs set "refquota=${privquota:-$default_priv_quota}" "${nfs_dataset}/user/${user}/priv"
  zfs set "refquota=${pubquota:-$default_pub_quota}"   "${nfs_dataset}/user/${user}/pub"
  zfs set 'com.sun:auto-snapshot=true' \
    "${nfs_dataset}/user/${user}/priv" \
    "${nfs_dataset}/user/${user}/pub"

  chown "${user}:${user}" \
    "${nfs_root}/user/${user}/priv" \
    "${nfs_root}/user/${user}/pub"

  chmod 700 "${nfs_root}/user/${user}/priv"
  chmod 755 "${nfs_root}/user/${user}/pub"
done

# Create group home directories.
for groupquota in ${nfs_groupdirs:-}; do
  group=$(echo "$groupquota" | awk -F: '{print $1}')
  privquota=$(echo "$groupquota" | awk -F: '{print $2}')
  pubquota=$(echo "$groupquota" | awk -F: '{print $3}')

  create_dataset -p "${nfs_dataset}/group/${group}/priv"
  create_dataset -p "${nfs_dataset}/group/${group}/pub"

  zfs set "refquota=${privquota:-$default_priv_quota}" "${nfs_dataset}/group/${group}/priv"
  zfs set "refquota=${pubquota:-$default_pub_quota}"   "${nfs_dataset}/group/${group}/pub"
  zfs set 'com.sun:auto-snapshot=true' \
    "${nfs_dataset}/group/${group}/priv" \
    "${nfs_dataset}/group/${group}/pub"

  chown "root:${group}" \
    "${nfs_root}/group/${group}/priv" \
    "${nfs_root}/group/${group}/pub"

  chmod 770 "${nfs_root}/group/${group}/priv"
  chmod 775 "${nfs_root}/group/${group}/pub"

  for sub in priv pub; do
    set_facl "${nfs_root}/group/${group}/${sub}" \
       group:${group}:rwpDdaARWcs:fd:allow \
       group:${group}:x:d:allow
  done
done