@@ -135,7 +135,6 @@ updatercd = Command("update-rc.d")
135135ufw = Command ("ufw" )
136136iptables = Command ("/sbin/iptables" )
137137iptables_save = Command ("/sbin/iptables-save" )
138- augtool = Command ("augtool" )
139138kvmok = Command ("kvm-ok" )
140139ifconfig = Command ("/sbin/ifconfig" )
141140uuidgen = Command ("uuidgen" )
@@ -166,60 +165,28 @@ try:
166165except CalledProcessError ,e :
167166 pass
168167
169- requiretty = augtool ._print ("/files/etc/sudoers/Defaults/requiretty" ).stdout .strip ()
170- sudoeruser = augtool .match ("/files/etc/sudoers/spec/user" ,"@MSUSER@" ).stdout .strip ()
171-
172- if requiretty :
173- sudoerstext = file ("/etc/sudoers" ).read ()
174- def restore ():
175- try : file ("/etc/sudoers" ,"w" ).write (sudoerstext )
176- except OSError ,e : raise
177-
178- script = """rm %s
179- save""" % "/" .join (requiretty .split ("/" )[:- 1 ])
180-
181- stderr ("Executing the following reconfiguration script:\n %s" ,script )
182-
183- try :
184- returned = augtool < script
185- if "Saved 1 file" not in returned .stdout :
186- print returned .stdout + returned .stderr
187- restore ()
188- bail (E_SUDORECONFIGFAILED ,"sudoers reconfiguration failed." )
189- else :
190- stderr ("sudoers reconfiguration complete" )
191- except CalledProcessError ,e :
192- restore ()
193- print e .stdout + e .stderr
194- bail (E_SUDORECONFIGFAILED ,"sudoers reconfiguration failed" )
195-
196- if "@MSUSER@" not in sudoeruser :
197- sudoerstext = file ("/etc/sudoers" ).read ()
198- def restore ():
199- try : file ("/etc/sudoers" ,"w" ).write (sudoerstext )
200- except OSError ,e : raise
201-
202- script = """ins spec after /files/etc/sudoers/spec[last()]
203- set /files/etc/sudoers/spec[last()]/user @MSUSER@
204- set /files/etc/sudoers/spec[last()]/host_group/host ALL
205- set /files/etc/sudoers/spec[last()]/host_group/command ALL
206- set /files/etc/sudoers/spec[last()]/host_group/command/tag NOPASSWD
207- save"""
208-
209- stderr ("Executing the following reconfiguration script:\n %s" ,script )
210-
211- try :
212- returned = augtool < script
213- if "Saved 1 file" not in returned .stdout :
214- print returned .stdout + returned .stderr
215- restore ()
216- bail (E_SUDORECONFIGFAILED ,"sudoers reconfiguration failed." )
217- else :
218- stderr ("sudoers reconfiguration complete" )
219- except CalledProcessError ,e :
220- restore ()
221- print e .stdout + e .stderr
222- bail (E_SUDORECONFIGFAILED ,"sudoers reconfiguration failed" )
168+ sudoerstext = file ("/etc/sudoers" ).readlines ()
169+ def restore ():
170+ try : file ("/etc/sudoers" ,"w" ).write ('' .join (sudoerstext ))
171+ except OSError ,e : raise
172+
173+ try :
174+ stderr ("Configure /etc/sudoers" )
175+ newtext = []
176+ clouder = "cloud ALL = NOPASSWD : ALL"
177+ hasClouder = False
178+ for line in sudoerstext :
179+ if "Defaults" in line and "requiretty" in line :
180+ continue
181+ if clouder in line :
182+ hasClouder = True
183+ newtext .append (line )
184+ if not hasClouder :
185+ newtext .append (clouder + '\n ' )
186+ file ("/etc/sudoers" , "w" ).write ('' .join (newtext ))
187+ except :
188+ restore ()
189+ bail (E_SUDORECONFIGFAILED ,"sudoers reconfiguration failed" )
223190
224191ports = "80 8080 8096 8250 9090" .split ()
225192if Fedora or CentOS :
0 commit comments