diff options
author | Cullum Smith <cullum@sacredheartsc.com> | 2024-10-21 09:17:49 -0400 |
---|---|---|
committer | Cullum Smith <cullum@sacredheartsc.com> | 2024-10-21 09:17:49 -0400 |
commit | 8e3d7dfa20b966b928078d8071d10fb186a0d781 (patch) | |
tree | 60a2a98dd6ae9148d1cf4b8d2f3ec53b9bab41c1 /scripts/hostname | |
parent | 18e46bcafc2316c53d167cf6550fb69bd4e3be79 (diff) | |
download | infrastructure-8e3d7dfa20b966b928078d8071d10fb186a0d781.tar.gz |
cleanup nfs1 host script
Diffstat (limited to 'scripts/hostname')
-rw-r--r-- | scripts/hostname/nfs1/10-homedirs | 50 | ||||
-rw-r--r-- | scripts/hostname/nfs1/20-shares | 11 | ||||
-rw-r--r-- | scripts/hostname/nfs1/30-autofs (renamed from scripts/hostname/nfs1) | 71 |
3 files changed, 70 insertions, 62 deletions
diff --git a/scripts/hostname/nfs1/10-homedirs b/scripts/hostname/nfs1/10-homedirs new file mode 100644 index 0000000..f2cd25c --- /dev/null +++ b/scripts/hostname/nfs1/10-homedirs @@ -0,0 +1,50 @@ +#!/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" + + 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" + + 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 diff --git a/scripts/hostname/nfs1/20-shares b/scripts/hostname/nfs1/20-shares new file mode 100644 index 0000000..ef013cc --- /dev/null +++ b/scripts/hostname/nfs1/20-shares @@ -0,0 +1,11 @@ +#!/bin/sh + +# media/music +create_dataset -p "${nfs_dataset}/media/music" +chgrp media-admin "${nfs_root}/media/music" +chmod 2770 "${nfs_root}/media/music" +set_facl "${nfs_root}/media/music" \ + group:media-admin:rwpDdaARWcs:fd:allow \ + group:media-admin:x:d:allow \ + group:media-access:raRcs:fd:allow \ + group:media-access:x:d:allow diff --git a/scripts/hostname/nfs1 b/scripts/hostname/nfs1/30-autofs index 673c7a9..0393acc 100644 --- a/scripts/hostname/nfs1 +++ b/scripts/hostname/nfs1/30-autofs @@ -2,10 +2,7 @@ nfs_mount_opts='-nfsv4,gssname=host,sec=krb5p' -default_priv_quota=250G -default_pub_quota=10G - -# Add /home autofs map. +# /home: auto_home ldap_add "automountKey=/home,automountMapName=auto_master,${automount_basedn}" <<EOF objectClass: automount automountKey: /home @@ -15,24 +12,15 @@ ldap_add "automountMapName=auto_home,${automount_basedn}" <<EOF objectClass: automountMap automountMapName: auto_home EOF + +# auto_home: * ldap_add "automountKey=*,automountMapName=auto_home,${automount_basedn}" <<EOF objectClass: automount automountKey: * automountInformation: ${fqdn}:/user/&/priv EOF -# Create /- (direct) autofs map -ldap_add "automountKey=/-,automountMapName=auto_master,${automount_basedn}" <<EOF -objectClass: automount -automountKey: /- -automountInformation: auto_direct ${nfs_mount_opts} -EOF -ldap_add "automountMapName=auto_direct,${automount_basedn}" <<EOF -objectClass: automountMap -automountMapName: auto_direct -EOF - -# Create /nfs/user autofs map. +# /nfs/user: auto_user ldap_add "automountKey=/nfs/user,automountMapName=auto_master,${automount_basedn}" <<EOF objectClass: automount automountKey: /nfs/user @@ -43,26 +31,9 @@ objectClass: automountMap automountMapName: auto_user EOF -# Create user home directories. +# auto_user: $user/{pub,priv} 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" - - 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" - - # Create user autofs key. ldap_add "automountKey=${user},automountMapName=auto_user,${automount_basedn}" <<EOF objectClass: automount automountKey: ${user} @@ -70,7 +41,7 @@ automountInformation: /priv ${fqdn}:/user/&/priv /pub ${fqdn}:/user/&/pub EOF done -# Add /nfs/group autofs map. +# /nfs/group: auto_group ldap_add "automountKey=/nfs/group,automountMapName=auto_master,${automount_basedn}" <<EOF objectClass: automount automountKey: /nfs/group @@ -81,26 +52,9 @@ objectClass: automountMap automountMapName: auto_group EOF -# Create group home directories. +# auto_group: $group/{pub,priv} 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" - - 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" - - # Create group autofs key. ldap_add "automountKey=${group},automountMapName=auto_group,${automount_basedn}" <<EOF objectClass: automount automountKey: ${group} @@ -108,7 +62,7 @@ automountInformation: /priv ${fqdn}:/group/&/priv /pub ${fqdn}:/group/&/pub EOF done -# Add /nfs/media autofs map. +# /nfs/media: auto_media ldap_add "automountMapName=auto_media,${automount_basedn}" <<EOF objectClass: automountMap automountMapName: auto_media @@ -119,14 +73,7 @@ automountKey: /nfs/media automountInformation: auto_media ${nfs_mount_opts} EOF -# Create music dataset. -create_dataset -p "${nfs_dataset}/media/music" - -# Set music ACLs. -chgrp media-admin "${nfs_root}/media/music" -chmod 770 "${nfs_root}/media/music" - -# Create music autofs key. +# auto_media: music ldap_add "automountKey=music,automountMapName=auto_media,${automount_basedn}" <<EOF objectClass: automount automountKey: music |