Operating System - Linux
1753784 Members
7323 Online
108799 Solutions
New Discussion юеВ

Re: Insert text into a cfg file between lines

 
SOLVED
Go to solution
lawrenzo_1
Super Advisor

Insert text into a cfg file between lines

Hi all,

I have an ldap config file and I need to insert the line:

expres63 auth required /usr/lib/security/pam_aix

above OTHER in the authentication stanza below:

# Authentication
#
ftp auth required /usr/lib/security/pam
imap auth required /usr/lib/security/pam
login auth required /usr/lib/security/pam
rexec auth required /usr/lib/security/pam
rlogin auth sufficient /usr/lib/security/pam_rhosts_auth
rlogin auth required /usr/lib/security/pam
rsh auth required /usr/lib/security/pam_rhosts_auth
snapp auth required /usr/lib/security/pam
su auth sufficient /usr/lib/security/pam_allowroot
su auth required /usr/lib/security/pam
telnet auth required /usr/lib/security/pam
OTHER auth required /usr/lib/security/pam_prohibit

#
# Account Management
#
ftp account required /usr/lib/security/pam
login account required /usr/lib/security/pam
rexec account required /usr/lib/security/pam
rlogin account required /usr/lib/security/pam
rsh account required /usr/lib/security/pam
su account sufficient /usr/lib/security/pam_allowroot
su account required /usr/lib/security/pam
telnet account required /usr/lib/security/pam
OTHER account required /usr/lib/security/pam_prohibit

#
# Password Management
#
login password required /usr/lib/security/pam
passwd password required /usr/lib/security/pam
rlogin password required /usr/lib/security/pam
su password required /usr/lib/security/pam
telnet password required /usr/lib/security/pam
OTHER password required /usr/lib/security/pam_prohibit

#
# Session Management
#
ftp session required /usr/lib/security/pam
imap session required /usr/lib/security/pam
login session required /usr/lib/security/pam
rexec session required /usr/lib/security/pam
rlogin session required /usr/lib/security/pam
rsh session required /usr/lib/security/pam
snapp session required /usr/lib/security/pam
su session required /usr/lib/security/pam
telnet session required /usr/lib/security/pam
OTHER session required /usr/lib/security/pam_prohibit

any tips on how this can be performed?

thanks

Chris.
hello
4 REPLIES 4
James R. Ferguson
Acclaimed Contributor
Solution

Re: Insert text into a cfg file between lines

Hi Chris:

# perl -ple 'if (m/(^OTHER.*)/) {print "expres63 auth required /usr/lib/security/pam_aix"}' file

Regards!

...JRF...
James R. Ferguson
Acclaimed Contributor

Re: Insert text into a cfg file between lines

Hi (again) CHris:

If you still prefer 'awk', however, use:

# awk '{if ($1~/^OTHER/) {print "expres63 auth required /usr/lib/security/pam_aix"; print} else {print}}' file

Regards!

...JRF...
Dennis Handly
Acclaimed Contributor

Re: Insert text into a cfg file between lines

>any tips on how this can be performed?

If you don't like JRF's perl and awk solutions, you can use sed:
sed -e '
/^OTHER/i\
expres63 auth required /usr/lib/security/pam_aix
' file

lawrenzo_1
Super Advisor

Re: Insert text into a cfg file between lines

Thanks,

all examples are easy to follow

and james you must have read my mind - I do like the awk alternatives!

Chris
hello