/*************************************************************/ /* This program is provided on an "AS IS" basis, without */ /* warranties or conditions of any kind, either express or */ /* implied including, without limitation, any warranties */ /* or conditions of title, non-infringement, */ /* merchantability or fitness for a particular purpose. */ /* Neither recipient nor any contributors shall have any */ /* liability for any direct, indirect, incidental, */ /* special, exemplary, or consequential damages (including */ /* without limitation lost profits), however caused and on */ /* any theory of liability, whether in contract, strict */ /* liability, or tort (including negligence or otherwise) */ /* arising in any way out of the use or distribution of */ /* the program or the exercise of any rights granted */ /* hereunder, even if advised of the possibility of such */ /* damages. */ /*************************************************************/ /* Purpose: */ /* XEDIT MACRO which can be used to act upon the original */ /* z/VM 6.3.0 USER DIRECT file supplied by IBM. USER and */ /* IDENTITY entries using the default password are changed */ /* to the value you specify when invoking this macro. */ /* */ /* Inputs: */ /* newpass - the new password */ /* */ /* Output: */ /* USER DIRECT file with passwords changed. */ /* */ /* References: */ /* The Virtualization Cookbook for Linux on IBM z Systems */ /* URL: http://www.ibm.com/vm/pubs/redbooks/SG248147 */ /*************************************************************/ Address XEDIT Arg fn ft fm '(' options ')' newPass . If 'LENGTH'(newPass) > 8 Then Do Say "Error: new password must be 8 characters or fewer" Exit End Say Say 'Changing all passwords to:' newPass Say /* set some values */ 'SUPERSET /STAY ON/NUM ON/NULLS ON/SERIAL OFF'||, '/CMDLINE BOTTOM/CURLINE ON 3/SCALE OFF/CASE MIXED'||, '/PREFIX OFF/VERIFY 1 80/ARBCHAR ON $/ZONE 1 72' 'TOP' /* change z/VM 6.3 passwords */ 'CHANGE \IDENTITY ZVMMAPLX MAINT \IDENTITY ZVMMAPLX ' 'LEFT'(newpass,8) || '\ *' 'CHANGE \WD5JU8QP\' 'LEFT'(newpass,8) || '\ *' /* change mindisk passwords */ mdisks = '4TCPIP AUDITOR AUTOLOG AVSOBJ BATCH DTCENS1 DTCENS2', 'DTCVSW1 DTCVSW2 DVF FTPSERV GCS GSKADMN IMAP LDAPSRV', 'MAINT MPROUTE PORTMAP REXECD SMTP SNMPD SNMPQE SNMPSUB', 'SYSMON TCPIP TCPMAIN TSAFOBJ UFTD VMNFS' Do i = 1 To 'WORDS'(mdisks) this_mdisk = 'WORD'(mdisks,i) old = 'LEFT'('R' || this_mdisk,8), 'LEFT'('W' || this_mdisk,8), 'LEFT'('M' || this_mdisk,8) new = newPass||" "||newPass||" "||newPass 'CHANGE \' || old || '\' || new || '\ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE \USER' this_user ||' $' || this_user || '\USER' 'LEFT'(this_user,8) 'LEFT'(newpass,8) || '\ *' End End 'CHANGE /ALL WRITE MULTIPLE/ALL' newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /ALL WRITE MULTIPLE/ALL' newPass newPass'/ *' End 'CHANGE /ALL WTCPMAIN MTCPMAIN/ALL' newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /ALL WTCPMAIN MTCPMAIN/ALL' newPass newPass'/ *' End 'CHANGE /RCATALOG WCATALOG/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RCATALOG WCATALOG/'newPass newPass'/ *' End 'CHANGE /RCONTROL WCONTROL/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RCONTROL WCONTROL/'newPass newPass'/ *' End 'CHANGE /RCRRLOG1 WCRRLOG1/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RCRRLOG1 WCRRLOG1/'newPass newPass'/ *' End 'CHANGE /RCRRLOG2 WCRRLOG2/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RCRRLOG2 WCRRLOG2/'newPass newPass'/ *' End 'CHANGE /RDATA WDATA/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RDATA WDATA/'newPass newPass'/ *' End 'CHANGE /READ WRITE MULTIPLE/'newPass newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /READ WRITE MULTIPLE/'newPass newPass newPass'/ *' End 'CHANGE /READ WRITE MULTIPLE/'newPass newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /READ WRITE MULTIPLE/'newPass newPass newPass'/ *' End 'CHANGE /READ WRITE/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /READ WRITE/'newPass newPass'/ *' End 'CHANGE /MR READ/'MR newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /MR READ/'MR newPass'/ *' End 'CHANGE /RLOG1 WLOG1/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RLOG1 WLOG1/'newPass newPass'/ *' End 'CHANGE /RLOG2 WLOG2/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RLOG2 WLOG2/'newPass newPass'/ *' End 'CHANGE /RSERVER WSERVER/'newPass newPass'/ *' If rc <> 1 & rc <> 3 Then Do Say 'Error: CHANGE /RSERVER WSERVER/'newPass newPass'/ *' End Exit