Linux ns8.secondary29.go.th 2.6.32-754.28.1.el6.x86_64 #1 SMP Wed Mar 11 18:38:45 UTC 2020 x86_64
Apache/2.2.15 (CentOS)
: 122.154.134.11 | : 122.154.134.9
Cant Read [ /etc/named.conf ]
5.6.40
apache
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
sbin /
[ HOME SHELL ]
Name
Size
Permission
Action
.ipsec.hmac
65
B
-rw-r--r--
.sshd.hmac
65
B
-rw-r--r--
abrt-auto-reporting
24.84
KB
-rwxr-xr-x
abrt-dbus
32.25
KB
-rwxr-xr-x
abrt-install-ccpp-hook
2.77
KB
-rwxr-xr-x
abrt-server
28.77
KB
-rwxr-xr-x
abrtd
26.02
KB
-rwxr-xr-x
accept
10.24
KB
-rwxr-xr-x
accton
10.45
KB
-rwxr-xr-x
adcli
140.36
KB
-rwxr-xr-x
addgnupghome
3.05
KB
-rwxr-xr-x
adduser
108.71
KB
-rwxr-x---
alsa-delay
19.12
KB
-rwxr-xr-x
alsactl
101.37
KB
-rwxr-xr-x
alternatives
27.9
KB
-rwxr-xr-x
anacron
38.05
KB
-rwxr-xr-x
applygnupgdefaults
2.21
KB
-rwxr-xr-x
arpaname
15.68
KB
-rwxr-xr-x
arpd
41.7
KB
-rwxr-xr-x
arping
17.48
KB
-rwxr-xr-x
atrun
67
B
-rwxr-xr-x
authconfig
37.79
KB
-rwxr-xr-x
authconfig-tui
37.79
KB
-rwxr-xr-x
avcstat
13.66
KB
-rwxr-xr-x
biosdecode
17.77
KB
-rwxr-xr-x
brctl
36.81
KB
-rwxr-xr-x
build-locale-archive
741.4
KB
-rwx------
cacertdir_rehash
644
B
-rwxr-xr-x
cache_check
1.54
MB
-rwxr-xr-x
cache_dump
1.54
MB
-rwxr-xr-x
cache_metadata_size
1.54
MB
-rwxr-xr-x
cache_repair
1.54
MB
-rwxr-xr-x
cache_restore
1.54
MB
-rwxr-xr-x
capsh
16.23
KB
-rwxr-xr-x
chpasswd
49.65
KB
-rwxr-xr-x
chroot
31.03
KB
-rwxr-xr-x
cifs.idmap
10.27
KB
-rwxr-xr-x
cifs.upcall
38.75
KB
-rwxr-xr-x
ck-log-system-restart
18.7
KB
-rwxr-xr-x
ck-log-system-start
18.99
KB
-rwxr-xr-x
ck-log-system-stop
18.7
KB
-rwxr-xr-x
clockdiff
15.16
KB
-rwxr-xr-x
console-kit-daemon
155.27
KB
-rwxr-xr-x
convertquota
68.76
KB
-rwxr-xr-x
cpuspeed
22.05
KB
-rwxr-xr-x
cracklib-check
8.8
KB
-rwxr-xr-x
cracklib-format
218
B
-rwxr-xr-x
cracklib-packer
9.31
KB
-rwxr-xr-x
cracklib-unpacker
8.45
KB
-rwxr-xr-x
crda
13.67
KB
-rwxr-xr-x
create-cracklib-dict
990
B
-rwxr-xr-x
cupsaccept
10.24
KB
-rwxr-xr-x
cupsaddsmb
10.3
KB
-rwxr-xr-x
cupsctl
10.28
KB
-rwxr-xr-x
cupsdisable
10.24
KB
-rwxr-xr-x
cupsenable
10.24
KB
-rwxr-xr-x
cupsfilter
28.05
KB
-rwxr-xr-x
cupsreject
10.24
KB
-rwxr-xr-x
ddns-confgen
26.23
KB
-rwxr-xr-x
dmidecode
80.12
KB
-rwxr-xr-x
dnssec-dsfromkey
40.04
KB
-rwxr-xr-x
dnssec-keyfromlabel
39.27
KB
-rwxr-xr-x
dnssec-keygen
47.87
KB
-rwxr-xr-x
dnssec-revoke
32.86
KB
-rwxr-xr-x
dnssec-settime
38.97
KB
-rwxr-xr-x
dnssec-signzone
94.63
KB
-rwxr-xr-x
dump-acct
14.29
KB
-rwxr-xr-x
dump-utmp
14.37
KB
-rwxr-xr-x
e2freefrag
14.12
KB
-rwxr-xr-x
edquota
80.72
KB
-rwxr-xr-x
efibootmgr
49.73
KB
-rwxr-xr-x
eject
31.36
KB
-rwxr-xr-x
era_check
1.54
MB
-rwxr-xr-x
era_dump
1.54
MB
-rwxr-xr-x
era_invalidate
1.54
MB
-rwxr-xr-x
era_restore
1.54
MB
-rwxr-xr-x
ethtool
233.75
KB
-rwxr-xr-x
exportfs
59.65
KB
-rwxr-xr-x
fdformat
11.15
KB
-rwxr-xr-x
filefrag
13.55
KB
-rwxr-xr-x
foomatic-addpjloptions
29.16
KB
-rwxr-xr-x
foomatic-cleanupdrivers
1.34
KB
-rwxr-xr-x
foomatic-extract-text
4.46
KB
-rwxr-xr-x
foomatic-fix-xml
1.5
KB
-rwxr-xr-x
foomatic-getpjloptions
2.09
KB
-rwxr-xr-x
foomatic-kitload
3.17
KB
-rwxr-xr-x
foomatic-nonumericalids
4.39
KB
-rwxr-xr-x
foomatic-preferred-driver
9.1
KB
-rwxr-xr-x
foomatic-printermap-to-gutenpr...
4.99
KB
-rwxr-xr-x
foomatic-replaceoldprinterids
2.54
KB
-rwxr-xr-x
genhomedircon
33
B
-rwxr-xr-x
genrandom
17.37
KB
-rwxr-xr-x
getcap
10.02
KB
-rwxr-xr-x
getenforce
8.55
KB
-rwxr-xr-x
getpcaps
9.05
KB
-rwxr-xr-x
getsebool
10.42
KB
-rwxr-xr-x
glibc_post_upgrade.x86_64
676.62
KB
-rwx------
groupadd
57.71
KB
-rwxr-x---
groupdel
53.52
KB
-rwxr-x---
groupmems
53.67
KB
-rwxr-x---
groupmod
71.95
KB
-rwxr-x---
grpck
53.63
KB
-rwxr-xr-x
grpconv
49.52
KB
-rwxr-xr-x
grpunconv
49.52
KB
-rwxr-xr-x
htcacheclean
19.52
KB
-rwxr-xr-x
httpd
358.53
KB
-rwxr-xr-x
httpd.event
370.79
KB
-rwxr-xr-x
httpd.worker
370.79
KB
-rwxr-xr-x
httxt2dbm
10.93
KB
-rwxr-xr-x
hwclock
47.52
KB
-rwxr-xr-x
iconvconfig
25.89
KB
-rwxr-xr-x
iconvconfig.x86_64
25.89
KB
-rwxr-xr-x
iotop
452
B
-rwxr-xr-x
ipa-client-automount
17.82
KB
-rwxr-xr-x
ipa-client-install
100.75
KB
-rwxr-xr-x
ipa-getkeytab
37.9
KB
-rwxr-xr-x
ipa-join
40.68
KB
-rwxr-xr-x
ipa-rmkeytab
17.28
KB
-rwxr-xr-x
ipsec
11.82
KB
-rwxr-xr-x
isc-hmac-fixup
18.7
KB
-rwxr-xr-x
krb5-send-pr
14.16
KB
-rwxr-xr-x
latencytop
44.71
KB
-rwxr-xr-x
latencytop-tui
25.03
KB
-rwxr-xr-x
lchage
33.5
KB
-rwxr-xr-x
ldattach
13.23
KB
-rwxr-xr-x
ledctl
51.58
KB
-rwxr-xr-x
ledmon
55.14
KB
-rwxr-xr-x
lgroupadd
29.77
KB
-rwxr-xr-x
lgroupdel
28.7
KB
-rwxr-xr-x
lgroupmod
34.48
KB
-rwxr-xr-x
lid
18.53
KB
-rwxr-xr-x
lnewusers
34.29
KB
-rwxr-xr-x
lnstat
17.64
KB
-rwxr-xr-x
load_policy
10.21
KB
-rwxr-xr-x
lokkit
2.15
KB
-rwxr-xr-x
lpadmin
26.57
KB
-rwxr-xr-x
lpasswd
32.46
KB
-rwxr-xr-x
lpc
14.34
KB
-rwxr-xr-x
lpc.cups
14.34
KB
-rwxr-xr-x
lpinfo
14.23
KB
-rwxr-xr-x
lpmove
10.31
KB
-rwxr-xr-x
lsof
154.44
KB
-rwxr-xr-x
lsusb
105.49
KB
-rwxr-xr-x
luseradd
34.71
KB
-rwxr-xr-x
luserdel
30.52
KB
-rwxr-xr-x
lusermod
36.7
KB
-rwxr-xr-x
makedumpfile
309.8
KB
-rwxr-xr-x
makewhatis
13.79
KB
-rwxr-xr-x
matchpathcon
12.01
KB
-rwxr-xr-x
mcelog
117.1
KB
-rwxr-xr-x
mkdict
218
B
-rwxr-xr-x
mklost+found
9.4
KB
-rwxr-xr-x
mksock
10.41
KB
-rwxr-xr-x
mountstats
34.53
KB
-rwxr-xr-x
mtr
63
KB
-rwxr-xr-x
named-checkconf
40.13
KB
-rwxr-xr-x
named-checkzone
35.8
KB
-rwxr-xr-x
named-compilezone
35.8
KB
-rwxr-xr-x
named-journalprint
17.26
KB
-rwxr-xr-x
newusers
71.93
KB
-rwxr-xr-x
nfsidmap
16.46
KB
-rwxr-xr-x
nfsiostat
23.18
KB
-rwxr-xr-x
nfsstat
27.63
KB
-rwxr-xr-x
nsec3hash
18.2
KB
-rwxr-xr-x
nstat
19.88
KB
-rwxr-xr-x
ntp-keygen
180.27
KB
-rwxr-xr-x
ntpdate
108.3
KB
-rwxr-xr-x
ntpdc
248.45
KB
-rwxr-xr-x
ntpq
246.51
KB
-rwxr-xr-x
ntptime
71.14
KB
-rwxr-xr-x
ntsysv
32.95
KB
-rwxr-xr-x
ownership
11.86
KB
-rwxr-xr-x
packer
9.31
KB
-rwxr-xr-x
pdata_tools
1.54
MB
-rwxr-xr-x
pethtool
8.94
KB
-rwxr-xr-x
pifconfig
3.03
KB
-rwxr-xr-x
ping6
35.63
KB
-rwsr-xr-x
pluginviewer
18.22
KB
-rwxr-xr-x
plymouth-set-default-theme
6.2
KB
-rwxr-xr-x
pm-hibernate
2.76
KB
-rwxr-xr-x
pm-powersave
1.53
KB
-rwxr-xr-x
pm-suspend
2.76
KB
-rwxr-xr-x
pm-suspend-hybrid
2.76
KB
-rwxr-xr-x
postconf
297.07
KB
-rwxr-xr-x
postdrop
184.57
KB
-rwxr-sr-x
postmap
212.7
KB
-rwxr-xr-x
postmulti
124.41
KB
-rwxr-xr-x
postqueue
212.73
KB
-rwxr-sr-x
powertop
426.14
KB
-rwxr-xr-x
prelink
1.25
MB
-rwxr-xr-x
pwck
49.61
KB
-rwxr-xr-x
pwconv
45.52
KB
-rwxr-xr-x
pwunconv
36.43
KB
-rwxr-xr-x
quotastats
11.21
KB
-rwxr-xr-x
raid-check
3.7
KB
-rwxr-xr-x
readprofile
15.25
KB
-rwxr-xr-x
redhat_lsb_trigger.x86_64
2.83
KB
-rwx------
regdbdump
9.26
KB
-rwxr-xr-x
reject
10.24
KB
-rwxr-xr-x
repquota
72.66
KB
-rwxr-xr-x
rndc
40.31
KB
-rwxr-xr-x
rndc-confgen
26.63
KB
-rwxr-xr-x
rotatelogs
16.55
KB
-rwxr-xr-x
rpcdebug
16.03
KB
-rwxr-xr-x
rpcinfo
27.25
KB
-rwxr-xr-x
rtacct
35.56
KB
-rwxr-xr-x
rtcwake
17.44
KB
-rwxr-xr-x
run_init
10.32
KB
-rwxr-xr-x
sa
31.53
KB
-rwxr-xr-x
safe_finger
8.69
KB
-rwxr-xr-x
sasldblistusers2
19.8
KB
-rwxr-xr-x
saslpasswd2
17.62
KB
-rwxr-xr-x
selinuxconlist
10.04
KB
-rwxr-xr-x
selinuxdefcon
10.39
KB
-rwxr-xr-x
selinuxenabled
7.8
KB
-rwxr-xr-x
semodule
18.9
KB
-rwxr-xr-x
sendmail
208.61
KB
-rwxr-xr-x
sendmail.postfix
208.61
KB
-rwxr-xr-x
sestatus
14.44
KB
-rwxr-xr-x
setcap
10.77
KB
-rwxr-xr-x
setenforce
9.1
KB
-rwxr-xr-x
setquota
84.78
KB
-rwxr-xr-x
setregdomain
1.47
KB
-rwxr-xr-x
setsebool
14.41
KB
-rwxr-xr-x
setup
15.59
KB
-rwxr-xr-x
showmount
19.34
KB
-rwxr-xr-x
sm-notify
50.41
KB
-rwxr-xr-x
smartctl
560.77
KB
-rwxr-xr-x
smtp-sink
84.54
KB
-rwxr-xr-x
smtp-source
67.55
KB
-rwxr-xr-x
sosreport
898
B
-rwxr-xr-x
ss
73.9
KB
-rwxr-xr-x
sss_cache
87.11
KB
-rwxr-xr-x
start-statd
300
B
-rwxr-xr-x
suexec
13.66
KB
-r-s--x---
sys-unconfig
180
B
-rwxr-xr-x
system-config-network
188
B
-rwxr-xr-x
system-config-network-cmd
13.4
KB
-rwxr-xr-x
system-config-network-tui
10.02
KB
-rwxr-xr-x
t1libconfig
3.83
KB
-rwxr-xr-x
tcpdmatch
38.01
KB
-rwxr-xr-x
tcpdump
725.63
KB
-rwxr-xr-x
tcpslice
24.02
KB
-rwxr-xr-x
testsaslauthd
14.43
KB
-rwxr-xr-x
thin_check
1.54
MB
-rwxr-xr-x
thin_delta
1.54
MB
-rwxr-xr-x
thin_dump
1.54
MB
-rwxr-xr-x
thin_ls
1.54
MB
-rwxr-xr-x
thin_metadata_size
1.54
MB
-rwxr-xr-x
thin_repair
1.54
MB
-rwxr-xr-x
thin_restore
1.54
MB
-rwxr-xr-x
thin_rmap
1.54
MB
-rwxr-xr-x
thin_trim
1.54
MB
-rwxr-xr-x
tickadj
6.02
KB
-rwxr-xr-x
tmpwatch
21.15
KB
-rwxr-xr-x
togglesebool
10.43
KB
-rwxr-xr-x
tracepath
11.17
KB
-rwxr-xr-x
tracepath6
12.02
KB
-rwxr-xr-x
try-from
19.22
KB
-rwxr-xr-x
tunelp
12.24
KB
-rwxr-xr-x
tzdata-update
12.79
KB
-rwxr-xr-x
unbound-anchor
52.26
KB
-rwxr-xr-x
update-alternatives
27.9
KB
-rwxr-xr-x
update-pciids
1.72
KB
-rwxr-xr-x
update-smart-drivedb
8.25
KB
-rwxr-xr-x
useradd
108.71
KB
-rwxr-x---
userdel
71.93
KB
-rwxr-x---
userhelper
41.3
KB
-rws--x--x
usermod
112.4
KB
-rwxr-x---
usernetctl
8.79
KB
-rwsr-xr-x
vigr
59.95
KB
-rwxr-xr-x
vipw
59.95
KB
-rwxr-xr-x
virt-what
10.06
KB
-rwxr-xr-x
visudo
155.24
KB
-rwxr-xr-x
vnstat.cron
311
B
-rwxr-xr-x
vnstatd
59.95
KB
-rwxr-xr-x
vpddecode
14.49
KB
-rwxr-xr-x
warnquota
80.91
KB
-rwxr-xr-x
yppoll
16.26
KB
-rwxr-xr-x
ypserv_test
19.26
KB
-rwxr-xr-x
ypset
14.2
KB
-rwxr-xr-x
yptest
19.48
KB
-rwxr-xr-x
yum-complete-transaction
9.7
KB
-rwxr-xr-x
yumdb
7.83
KB
-rwxr-xr-x
zdump
16.98
KB
-rwxr-xr-x
zic
49.08
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ipa-client-automount
#!/usr/bin/env python # # Authors: # Rob Crittenden <rcritten@redhat.com> # # Copyright (C) 2012 Red Hat # see file 'COPYING' for use and warranty information # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # # Configure the automount client for ldap. import sys import os import urlparse import time import tempfile import SSSDConfig from optparse import OptionParser from ipalib import api, errors from ipapython import sysrestore from ipapython import ipautil from ipaclient import ipadiscovery from ipaclient import ipachangeconf from ipapython.ipa_log_manager import * from ipapython.dn import DN from ipapython import services as ipaservices AUTOFS_CONF = '/etc/sysconfig/autofs' NSSWITCH_CONF = '/etc/nsswitch.conf' AUTOFS_LDAP_AUTH = '/etc/autofs_ldap_auth.conf' NFS_CONF = '/etc/sysconfig/nfs' IDMAPD_CONF = '/etc/idmapd.conf' CACERT = '/etc/ipa/ca.crt' def parse_options(): usage = "%prog [options]\n" parser = OptionParser(usage=usage) parser.add_option("--server", dest="server", help="IPA server") parser.add_option("--location", dest="location", help="Automount location", default="default") parser.add_option("-S", "--no-sssd", dest="sssd", action="store_false", default=True, help="Do not configure the client to use SSSD for automount") parser.add_option("--debug", dest="debug", action="store_true", default=False, help="enable debugging") parser.add_option("-U", "--unattended", dest="unattended", action="store_true", default=False, help="unattended installation never prompts the user") parser.add_option("--uninstall", dest="uninstall", action="store_true", default=False, help="Unconfigure automount") options, args = parser.parse_args() return options, args def wait_for_sssd(): """ It takes a bit for sssd to get going, lets loop until it is serving data. This function returns nothing. """ n = 0 found = False time.sleep(1) while n < 10 and not found: try: ipautil.run(["getent", "passwd", "admin"]) found = True except Exception, e: time.sleep(1) n = n + 1 # This should never happen but if it does, may as well warn the user if not found: root_logger.debug("Unable to find 'admin' user with 'getent passwd admin'!") print "Unable to find 'admin' user with 'getent passwd admin'!" print "This may mean that sssd didn't re-start properly after the configuration changes." def configure_xml(fstore): from lxml import etree fstore.backup_file(AUTOFS_LDAP_AUTH) try: f = open(AUTOFS_LDAP_AUTH, 'r') lines = f.read() f.close() saslconf = etree.fromstring(lines) element = saslconf.xpath('//autofs_ldap_sasl_conf') root = saslconf.getroottree() except IOError, e: root_logger.debug('Unable to open file %s' % e) root_logger.debug('Creating new from template') element = [etree.Element('autofs_ldap_sasl_conf')] root = element[0].getroottree() if len(element) != 1: raise RuntimeError('Unable to parse %s' % AUTOFS_LDAP_AUTH) element[0].set('usetls', 'no') element[0].set('tlsrequired', 'no') element[0].set('authrequired', 'yes') element[0].set('authtype', 'GSSAPI') element[0].set('clientprinc', 'host/%s@%s' % (api.env.host, api.env.realm)) newconf = open(AUTOFS_LDAP_AUTH, 'w') try: root.write(newconf, pretty_print=True, xml_declaration=True, encoding='UTF-8') newconf.close() except IOError, e: print "Unable to write %s: %s" % (AUTOFS_LDAP_AUTH, e) print "Configured %s" % AUTOFS_LDAP_AUTH def configure_nsswitch(fstore, options): """ Point automount to ldap in nsswitch.conf """ fstore.backup_file(NSSWITCH_CONF) conf = ipachangeconf.IPAChangeConf("IPA Installer") conf.setOptionAssignment(':') if options.sssd: nss_value = ' sss files' else: nss_value = ' ldap files' opts = [{'name':'automount', 'type':'option', 'action':'set', 'value':nss_value}, {'name':'empty', 'type':'empty'}] conf.changeConf(NSSWITCH_CONF, opts) print "Configured %s" % NSSWITCH_CONF def configure_autofs_sssd(fstore, statestore, autodiscover, options): try: sssdconfig = SSSDConfig.SSSDConfig() sssdconfig.import_config() domains = sssdconfig.list_active_domains() except Exception, e: sys.exit(e) if 'autofs' not in sssdconfig.list_services(): sssdconfig.new_service('autofs') try: sssdconfig.activate_service('autofs') except SSSDConfig.NoServiceError: print "Unable to activate the autofs service in SSSD config." root_logger.debug("Unable to activate the autofs service in SSSD config.") domain = None for name in domains: domain = sssdconfig.get_domain(name) try: provider = domain.get_option('id_provider') except SSSDConfig.NoOptionError: continue if provider == "ipa": domain.add_provider('ipa', 'autofs') try: location = domain.get_option('ipa_automount_location') sys.exit('An automount location is already configured') except SSSDConfig.NoOptionError: domain.set_option('ipa_automount_location', options.location) break if domain is None: sys.exit('SSSD is not configured.') sssdconfig.save_domain(domain) sssdconfig.write("/etc/sssd/sssd.conf") statestore.backup_state('autofs', 'sssd', True) sssd = ipaservices.service('sssd') sssd.restart() print "Restarting sssd, waiting for it to become available." wait_for_sssd() def configure_autofs(fstore, statestore, autodiscover, server, options): """ fstore: the FileStore to back up files in options.server: the IPA server to use options.location: the Automount location to use """ if not autodiscover: ldap_uri = "ldap://%s" % server else: ldap_uri = "ldap:///%s" % api.env.basedn search_base = str(DN(('cn', options.location), api.env.container_automount, api.env.basedn)) replacevars = { 'MAP_OBJECT_CLASS': 'automountMap', 'ENTRY_OBJECT_CLASS': 'automount', 'MAP_ATTRIBUTE': 'automountMapName', 'ENTRY_ATTRIBUTE': 'automountKey', 'VALUE_ATTRIBUTE': 'automountInformation', 'SEARCH_BASE': search_base, 'LDAP_URI': ldap_uri, } ipautil.backup_config_and_replace_variables(fstore, AUTOFS_CONF, replacevars=replacevars) ipaservices.restore_context(AUTOFS_CONF) statestore.backup_state('autofs', 'sssd', False) print "Configured %s" % AUTOFS_CONF def configure_autofs_common(fstore, statestore, options): autofs = ipaservices.knownservices.autofs statestore.backup_state('autofs', 'enabled', autofs.is_enabled()) statestore.backup_state('autofs', 'running', autofs.is_running()) try: autofs.restart() print "Started %s" % autofs.service_name except Exception, e: root_logger.error("%s failed to restart: %s", autofs.service_name, e) try: autofs.enable() except Exception, e: print "Failed to configure automatic startup of the %s daemon" % (autofs.service_name) root_logger.error("Failed to enable automatic startup of the %s daemon: %s" % (autofs.service_name, str(e))) def uninstall(fstore, statestore): print "Restoring configuration" if fstore.has_file(AUTOFS_CONF): fstore.restore_file(AUTOFS_CONF) if fstore.has_file(NSSWITCH_CONF): fstore.restore_file(NSSWITCH_CONF) if fstore.has_file(AUTOFS_LDAP_AUTH): fstore.restore_file(AUTOFS_LDAP_AUTH) if fstore.has_file(NFS_CONF): fstore.restore_file(NFS_CONF) if fstore.has_file(IDMAPD_CONF): fstore.restore_file(IDMAPD_CONF) if statestore.has_state('autofs'): enabled = statestore.restore_state('autofs', 'enabled') running = statestore.restore_state('autofs', 'running') sssd = statestore.restore_state('autofs', 'sssd') autofs = ipaservices.knownservices.autofs if not enabled: autofs.disable() if not running: autofs.stop() if sssd: try: sssdconfig = SSSDConfig.SSSDConfig() sssdconfig.import_config() sssdconfig.deactivate_service('autofs') domains = sssdconfig.list_active_domains() for name in domains: domain = sssdconfig.get_domain(name) try: provider = domain.get_option('id_provider') except SSSDConfig.NoOptionError: continue if provider == "ipa": domain.remove_option('ipa_automount_location') domain.remove_provider('autofs') break sssdconfig.save_domain(domain) sssdconfig.write("/etc/sssd/sssd.conf") sssd = ipaservices.service('sssd') sssd.restart() wait_for_sssd() except Exception, e: print 'Unable to restore SSSD configuration: %s' % str(e) root_logger.debug('Unable to restore SSSD configuration: %s' % str(e)) if statestore.has_state('rpcidmapd'): enabled = statestore.restore_state('rpcidmapd', 'enabled') running = statestore.restore_state('rpcidmapd', 'running') rpcidmapd = ipaservices.knownservices.rpcidmapd if not enabled: rpcidmapd.disable() if not running: rpcidmapd.stop() if statestore.has_state('rpcgssd'): enabled = statestore.restore_state('rpcgssd', 'enabled') running = statestore.restore_state('rpcgssd', 'running') rpcgssd = ipaservices.knownservices.rpcgssd if not enabled: rpcgssd.disable() if not running: rpcgssd.stop() return 0 def configure_nfs(fstore, statestore): """ Configure secure NFS """ replacevars = { 'SECURE_NFS': 'yes', } ipautil.backup_config_and_replace_variables(fstore, NFS_CONF, replacevars=replacevars) ipaservices.restore_context(NFS_CONF) print "Configured %s" % NFS_CONF # Prepare the changes # We need to use IPAChangeConf as simple regexp substitution # does not cut it here conf = ipachangeconf.IPAChangeConf("IPA automount installer") conf.case_insensitive_sections = False conf.setOptionAssignment(" = ") conf.setSectionNameDelimiters(("[", "]")) changes = [conf.setOption('Domain', api.env.domain)] section_with_changes = [conf.setSection('General', changes)] # Backup the file and apply the changes fstore.backup_file(IDMAPD_CONF) conf.changeConf(IDMAPD_CONF, section_with_changes) ipaservices.restore_context(IDMAPD_CONF) print "Configured %s" % IDMAPD_CONF rpcidmapd = ipaservices.knownservices.rpcidmapd statestore.backup_state('rpcidmapd', 'enabled', rpcidmapd.is_enabled()) statestore.backup_state('rpcidmapd', 'running', rpcidmapd.is_running()) try: rpcidmapd.restart() print "Started %s" % rpcidmapd.service_name except Exception, e: root_logger.error("%s failed to restart: %s", rpcidmapd.service_name, e) try: rpcidmapd.enable() except Exception, e: print "Failed to configure automatic startup of the %s daemon" % (rpcidmapd.service_name) root_logger.error("Failed to enable automatic startup of the %s daemon: %s" % (rpcidmapd.service_name, str(e))) rpcgssd = ipaservices.knownservices.rpcgssd statestore.backup_state('rpcgssd', 'enabled', rpcgssd.is_enabled()) statestore.backup_state('rpcgssd', 'running', rpcgssd.is_running()) try: rpcgssd.restart() print "Started %s" % rpcgssd.service_name except Exception, e: root_logger.error("%s failed to restart: %s", rpcgssd.service_name, e) try: rpcgssd.enable() except Exception, e: print "Failed to configure automatic startup of the %s daemon" % (rpcgssd.service_name) root_logger.error("Failed to enable automatic startup of the %s daemon: %s" % (rpcgssd.service_name, str(e))) def main(): fstore = sysrestore.FileStore('/var/lib/ipa-client/sysrestore') statestore = sysrestore.StateFile('/var/lib/ipa-client/sysrestore') if not fstore.has_files(): sys.exit('IPA client is not configured on this system.\n') options, args = parse_options() standard_logging_setup( '/var/log/ipaclient-install.log', verbose=False, debug=options.debug, filemode='a', console_format='%(message)s') cfg = dict( context='cli_installer', in_server=False, debug=options.debug, verbose=0, ) api.bootstrap(**cfg) api.finalize() ca_cert_path = None if os.path.exists(CACERT): ca_cert_path = CACERT if options.uninstall: return uninstall(fstore, statestore) if statestore.has_state('autofs'): sys.exit('automount is already configured on this system.\n') autodiscover = False servers = [] ds = ipadiscovery.IPADiscovery() if not options.server: print "Searching for IPA server..." ret = ds.search(ca_cert_path=ca_cert_path) root_logger.debug('Executing DNS discovery') if ret == ipadiscovery.NO_LDAP_SERVER: root_logger.debug('Autodiscovery did not find LDAP server') s = urlparse.urlsplit(api.env.xmlrpc_uri) server = [s.netloc] root_logger.debug('Setting server to %s' % s.netloc) else: autodiscover = True if not ds.servers: sys.exit('Autodiscovery was successful but didn\'t return a server') root_logger.debug('Autodiscovery success, possible servers %s' % ','.join(ds.servers)) server = ds.servers[0] else: server = options.server root_logger.debug("Verifying that %s is an IPA server" % server) ldapret = ds.ipacheckldap(server, api.env.realm, ca_cert_path) if ldapret[0] == ipadiscovery.NO_ACCESS_TO_LDAP: print "Anonymous access to the LDAP server is disabled." print "Proceeding without strict verification." print "Note: This is not an error if anonymous access has been explicitly restricted." elif ldapret[0] == ipadiscovery.NO_TLS_LDAP: root_logger.warning("Unencrypted access to LDAP is not supported.") elif ldapret[0] != 0: sys.exit('Unable to confirm that %s is an IPA server' % server) if not autodiscover: print "IPA server: %s" % server root_logger.debug('Using fixed server %s' % server) else: print "IPA server: DNS discovery" root_logger.debug('Configuring to use DNS discovery') search_base = str(DN(('cn', options.location), api.env.container_automount, api.env.basedn)) print "Location: %s" % options.location root_logger.debug('Using automount location %s' % options.location) # Verify that the location is valid (ccache_fd, ccache_name) = tempfile.mkstemp() os.close(ccache_fd) try: try: os.environ['KRB5CCNAME'] = ccache_name ipautil.run(['/usr/bin/kinit', '-k', '-t', '/etc/krb5.keytab', 'host/%s@%s' % (api.env.host, api.env.realm)]) except ipautil.CalledProcessError, e: sys.exit("Failed to obtain host TGT.") # Now we have a TGT, connect to IPA try: api.Backend.xmlclient.connect() except errors.KerberosError, e: sys.exit('Cannot connect to the server due to ' + str(e)) try: # Use the RPC directly so older servers are supported result = api.Backend.xmlclient.forward( 'automountlocation_show', unicode(options.location), version=u'2.0', ) except errors.VersionError, e: sys.exit('This client is incompatible: ' + str(e)) except errors.NotFound: sys.exit("Automount location '%s' does not exist" % options.location) except errors.PublicError, e: sys.exit("Cannot connect to the server due to generic error: %s" % str(e)) finally: os.remove(ccache_name) if not options.unattended and not ipautil.user_input("Continue to configure the system with these values?", False): sys.exit("Installation aborted") try: configure_nsswitch(fstore, options) configure_nfs(fstore, statestore) if options.sssd: configure_autofs_sssd(fstore, statestore, autodiscover, options) else: configure_xml(fstore) configure_autofs(fstore, statestore, autodiscover, server, options) configure_autofs_common(fstore, statestore, options) except Exception, e: root_logger.debug('Raised exception %s' % e) print "Installation failed. Rolling back changes." uninstall(fstore, statestore) return 1 return 0 try: if not os.geteuid()==0: sys.exit("\nMust be run as root\n") sys.exit(main()) except SystemExit, e: sys.exit(e) except RuntimeError, e: sys.exit(e) except (KeyboardInterrupt, EOFError): sys.exit(1)
Close