#!/bin/sh # # Univention Samba4 # password set script # # Copyright 2004-2011 Univention GmbH # # http://www.univention.de/ # # All rights reserved. # # The source code of this program is made available # under the terms of the GNU Affero General Public License version 3 # (GNU AGPL V3) as published by the Free Software Foundation. # # Binary versions of this program provided by Univention to you as # well as other copyrighted, protected or trademarked materials like # Logos, graphics, fonts, specific documentations and configurations, # cryptographic keys etc. are subject to a license agreement between # you and Univention and not subject to the GNU AGPL V3. # # In the case you use this program under the terms of the GNU AGPL V3, # the program is provided in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License with the Debian GNU/Linux or Univention distribution in file # /usr/share/common-licenses/AGPL-3; if not, see # . eval "$(univention-config-registry shell)" password=$(cat /etc/machine.secret) samba_private_dir="/var/lib/samba/private" set_machine_secret() { ## 1. set new machine.secret in SAM samba-tool user setpassword "${hostname}\$" --newpassword="$(cat /etc/machine.secret)" ## 2. store password locally in secrets.ldb kvno=$(ldbsearch -H "$samba_private_dir/sam.ldb" samAccountName="${hostname}\$" msDS-KeyVersionNumber | sed -n 's/msDS-KeyVersionNumber: \(.*\)/\1/p') ldbmodify -H "$samba_private_dir/secrets.ldb" <<-%EOF dn: flatname=${windows_domain},cn=Primary Domains changetype: modify replace: secret secret: $password - replace: msDS-KeyVersionNumber msDS-KeyVersionNumber: $kvno - %EOF } set_machine_secret