You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-2.1-server/scripts/dhcp

66 lines
2.2 KiB

#!/usr/bin/python
#-*- coding: utf-8 -*-
# Copyright 2009-2010 Mir Calculate. http://www.calculate-linux.org
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
import os
sys.path.insert(0,os.path.abspath('/usr/lib/calculate/calculate-lib/pym'))
sys.path.insert(0,os.path.abspath('/usr/lib/calculate/calculate-server/pym'))
import cl_base
# Логгирование
import cl_log
tr = cl_base.lang()
tr.setGlobalDomain('cl_server')
tr.setLanguage(sys.modules[__name__])
import cl_ldap
if __name__ == "__main__":
ldapObj = cl_ldap.cl_ldap("dhcp")
optObj = cl_ldap.tsOpt(ldapObj,[],False)
flagError = True
if not optObj.flagHelp:
obj = cl_ldap.servDhcp()
logFile = obj.errorLogFile
logFullFile = os.path.join(cl_log.log.logDir,logFile)
user = "dhcp"
uidAndGid = obj.getUserUidAndGid(user)
if not uidAndGid:
sys.exit(1)
uid, gid = uidAndGid
if os.getuid() == 0:
# Меняем владельца процесса на dhcp
try:
os.setgid(gid)
os.setuid(uid)
except:
print(_("ERROR: Can not set owner") + \
" (dhcp:dhcp uid=%s,gid=%s) "%(uid, gid) +\
_("the this process"))
sys.exit(1)
if os.getuid() != uid:
print(_("ERROR: Owner this process not dhcp or root"))
sys.exit(1)
if os.access(logFullFile, os.W_OK):
logObj = cl_log.log(logFile)
else:
logObj = False
if obj.addDNSRecordServer(optObj.opt, logObj):
flagError = False
if flagError:
sys.exit(1)
else:
sys.exit(0)