Skip to content
Snippets Groups Projects
Select Git revision
  • d4847b52087253446ccf9a15d3e6e40e77c5950f
  • master default
  • wip-slh-dsa-sha2-128s
  • master-updates
  • release-3.10-fixes
  • getopt-prototype
  • fix-bcrypt-warning
  • refactor-hmac
  • wip-use-alignas
  • trim-sha3-context
  • fix-gitlab-ci
  • check-fat-emulate
  • delete-digest_func-size
  • slh-dsa-shake-128f-nettle
  • slh-dsa-shake-128s-nettle
  • slh-dsa-shake-128s
  • delete-openpgp
  • ppc64-sha512
  • delete-md5-compat
  • cleanup-hmac-tests
  • ppc64-sha256
  • nettle_3.10.2_release_20250626
  • nettle_3.10.1_release_20241230
  • nettle_3.10_release_20240616
  • nettle_3.10rc2
  • nettle_3.10rc1
  • nettle_3.9.1_release_20230601
  • nettle_3.9_release_20230514
  • nettle_3.8.1_release_20220727
  • nettle_3.8_release_20220602
  • nettle_3.7.3_release_20210606
  • nettle_3.7.2_release_20210321
  • nettle_3.7.1_release_20210217
  • nettle_3.7_release_20210104
  • nettle_3.7rc1
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
41 results

ecc-mod-arith.c

Blame
  • include_ldap 2.50 KiB
    #!/bin/sh
    #
    # $FreeBSD: releng/12.1/usr.sbin/autofs/autofs/include_ldap 280321 2015-03-21 09:42:37Z trasz $
    #
    
    query_ldap()
    {
    	# Modify this to suit your needs.  The "$1" is the map name, eg. "auto_master".
    	# To debug, simply run this script with map name as the only parameter.  It's
    	# supposed to output map contents ("key location" pairs) to standard output.
    	SEARCHBASE="automountmapname=$1,cn=default,cn=automount,dc=ad,dc=lysator,dc=liu,dc=se"
    	ENTRY_ATTRIBUTE="description"
    	VALUE_ATTRIBUTE="automountInformation"
    
    	# fstype=nfs4 fungerar inte på FreeBSD då det inte finns något
    	# NFS-filsystem. Använd sed för att byta det till något vettigare.
    	/usr/local/bin/ldapsearch -LLL -x -o ldif-wrap=no -b "$SEARCHBASE" "$ENTRY_ATTRIBUTE" "$VALUE_ATTRIBUTE" |
    		sed 's/fstype=nfs4/nfsv4,minorversion=1,retrycnt=1/' | grep -v 'mail' | awk '
    	$1 == "'$ENTRY_ATTRIBUTE':" {
    		key = $2
    	}
    
    	$1 == "'$VALUE_ATTRIBUTE':" {
    		for (i = 2; i <= NF; i++) {
    			value[i] = $(i)
    		}
    		nvalues = NF
    		b64 = 0
    	}
    
    	# Double colon after attribute name means the value is in Base64.
    	$1 == "'$VALUE_ATTRIBUTE'::" {
    		for (i = 2; i <= NF; i++) {
    			value[i] = $(i)
    		}
    		nvalues = NF
    		b64 = 1
    	}
    
    	# Empty line - end of record.
    	NF == 0 && key != "" && nvalues > 0 {
    		printf "%s%s", key, OFS
    		for (i = 2; i < nvalues; i++) {
    			printf "%s%s", value[i], OFS
    		}
    		if (b64 == 1) {
    			printf "%s", value[nvalues] | "b64decode -rp"
    			close("b64decode -rp")
    			printf "%s", ORS
    		} else {
    			printf "%s%s", value[nvalues], ORS
    		}
    	}
    
    	NF == 0 {
    		key = ""
    		nvalues = 0
    		delete value
    	}
    	'
    }
    
    # Hämta en lista med alla användarnamn
    get_users()
    {
    	/usr/local/bin/ldapsearch -LLL -x -o ldif-wrap=no -b "cn=users,cn=accounts,dc=ad,dc=lysator,dc=liu,dc=se" uid |
    		awk '$1 == "uid:" { print $2; }'
    }
    
    # Specialhantera auto.home genom att konstruera en yttricklig lista
    # med vilka användarmonteringar som finns. Detta för att undvika att
    # automount försöker montera kataloger som inte finns under /home.
    if [ "$1" = "auto.home" ]
    then
    	# Plocka ut monteringsinställningar, borde ge något liknande
    	# -nfsv4,minorversion=1,sec=sys,nosuid,rw home:/ceph-home/users/
    	HOME_MOUNT="$(query_ldap "auto.home" | head -n 1 |
    		awk '{ sub("\\&", "", $3); print($2 " " $3); }')"
    	# Konstruera en uttrycklig lista med hemkatalogmonteringar på
    	# formen:
    	# $användarnamn -nfsv4,minorversion=1,sec=sys,nosuid,rw home:/ceph-home/users/$användarnamn
    	{ echo defaults; get_users; } |
    		awk -v home_mount="$HOME_MOUNT" '{ print($1 " " home_mount $1); }'
    else
    	query_ldap "$1"
    fi