fix right in bootstrap, modified force key event

master3.3
Спиридонов Денис 12 years ago
parent 92c4e30410
commit 10dbb89a00

@ -77,7 +77,7 @@ def new_key_req(key, cert_path, server_host_name, auto = False):
req = makeRequest(rsa, pkey, server_host_name, auto)
crtreq = req.as_pem()
req_file = cert_path + '/%s.csr' %server_host_name
req_file = os.path.join(cert_path, '%s.csr' %server_host_name)
crtfile = open(req_file, 'w')
crtfile.write(crtreq)
crtfile.close()
@ -216,9 +216,7 @@ def client_get_cert(cert_path, args):
md5 = hashlib.md5()
md5.update(ca_root)
md5sum = md5.hexdigest()
print "\n================================================="
print "md5sum = ", md5sum
if not os.path.exists(root_cert_md5):
fc = open(root_cert_md5,"w")
fc.close()
@ -258,7 +256,6 @@ def client_get_cert(cert_path, args):
fa = open(user_root_cert, 'a')
fa.write(ca_root)
fa.close()
print _("filename = "), filename
print _("CERTIFICATE ADD")
else:
print _("file with ca certificates exists")

@ -22,10 +22,9 @@ import datetime, subprocess, shutil
from calculate.core.client.cert_func import new_key_req
from calculate.core.client.function import get_ip_mac_type
from calculate.core.datavars import DataVarsCore
from calculate.lib.utils.files import makeDirectory
from calculate.lib.utils import ip as ip_mod
import os, hashlib, OpenSSL, pwd, socket, sys
from os import path
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_core',sys.modules[__name__])
@ -40,13 +39,13 @@ def createDate(date):
def check(cert, key, cert_path, data_path, certbase, args):
error_flag = 0
if not path.isfile(cert):
if not os.path.isfile(cert):
error_flag = 1
print _('Certificate %s not found') %cert
if not path.isfile(key):
if not os.path.isfile(key):
error_flag = 1
print _('Secret key %s not found') %key
if path.isfile(cert) and path.isfile(key):
if os.path.isfile(cert) and os.path.isfile(key):
# check correspondence certificate and private key
cmd_cert = 'openssl x509 -noout -modulus -in ' + cert
cmd_key = 'openssl rsa -noout -modulus -in ' + key
@ -81,38 +80,30 @@ def init(cert, key, cert_path, data_path, certbase, args, port, user_name):
new_serv_cert = False
if not check_serv_cert(cert_path):
print 'Generate Server Certificate'
print _('Generate Server Certificate')
for step in range (2):
args = change_args(args, step)
create_server_cert(cert, key, cert_path, args, port)
new_serv_cert = True
else:
print 'Server certificate already exists'
print _('Server certificate already exists')
if new_serv_cert or not check_client_cert(user_name):
print 'Generate Client Certificate'
print _('Generate Client Certificate')
create_client_cert(cert, cert_path, data_path, certbase, user_name)
try:
pwdObj = pwd.getpwnam(user_name)
except KeyError, e:
print e
return 1
change_owner(pwdObj, user_name)
else:
print 'Client certificate already exists'
print _('Client certificate already exists')
def check_serv_cert(cert_path):
if path.isfile (cert_path + '/server.crt') and path.isfile \
(cert_path + '/server.key'):
if os.path.isfile(os.path.join(cert_path, 'server.crt')) and \
os.path.isfile(os.path.join(cert_path, 'server.key')):
return True
return False
def check_client_cert(user_name):
client_cert_path = check_user_path(user_name)
server_host_name = socket.getfqdn()
if path.isfile (client_cert_path + server_host_name + '.crt') and \
path.isfile (client_cert_path + server_host_name + '.key'):
if os.path.isfile(os.path.join(client_cert_path,server_host_name+'.crt')) and \
os.path.isfile(os.path.join(client_cert_path,server_host_name+'.key')):
return True
return False
@ -134,12 +125,12 @@ def create_server_cert(cert, key, cert_path, args, port):
def create_client_cert(server_cert, cert_path, data_path, certbase, user_name):
client_cert_path = check_user_path(user_name)
if not client_cert_path:
print 'not exists client certificate path'
print _('not exists client certificate path')
return 1
req_id = create_request(server_cert, cert_path, data_path, certbase, \
client_cert_path)
sign_certificate(req_id, cert_path, data_path)
get_certificate(cert_path, data_path, certbase, client_cert_path)
get_certificate(cert_path, data_path, certbase, client_cert_path, user_name)
def check_user_path(user_name):
try:
@ -149,26 +140,32 @@ def check_user_path(user_name):
return None
home_dir = pwdObj.pw_dir
if not path.isdir(home_dir):
from calculate.lib.utils.files import makeDirectory
if not os.path.isdir(home_dir):
if not makeDirectory(home_dir):
print _('could not create directory')
return None
os.chown(home_dir, pwdObj.pw_uid, pwdObj.pw_gid)
os.chmod(home_dir, 0777)
os.chmod(home_dir, 0700)
calc_dir = os.path.join(home_dir, '.calculate')
cert_dir = os.path.join(calc_dir, 'client_cert')
for directory in [calc_dir, cert_dir]:
if not os.path.isdir(directory):
if not makeDirectory(directory):
return None
os.chown(directory, pwdObj.pw_uid, pwdObj.pw_gid)
os.chmod(directory, 0755)
for path in os.walk(cert_dir):
os.chown(path[0], pwdObj.pw_uid, pwdObj.pw_gid)
for file in path[2]:
os.chown('/'.join([path[0], file]),pwdObj.pw_uid,pwdObj.pw_gid)
os.chmod(directory, 0644)
calc_dir = home_dir + '/.calculate'
if not path.isdir(calc_dir):
os.makedirs(calc_dir)
client_cert_path = calc_dir + '/client_cert/'
if not path.isdir(client_cert_path):
os.makedirs(client_cert_path)
return client_cert_path
return cert_dir
def create_request(server_cert, cert_path, data_path, certbase,client_cert_path):
server_host_name = socket.getfqdn()
key = client_cert_path + server_host_name + '.key'
key = os.path.join(client_cert_path, server_host_name + '.key')
#csr_file = cert_path + server_host_name +'.csr'
#pritn 'request file = ', csr_file
@ -180,7 +177,7 @@ def create_request(server_cert, cert_path, data_path, certbase,client_cert_path)
req_id = post_request.serv_post_client_request (data, data_path, ip, mac, \
client_type, certbase, cert_path)
fc = open(client_cert_path + 'req_id', 'w')
fc = open(os.path.join(client_cert_path, 'req_id'), 'w')
fc.write(req_id)
fc.close()
return req_id
@ -188,21 +185,22 @@ def create_request(server_cert, cert_path, data_path, certbase,client_cert_path)
def sign_certificate(req_id, cert_path, data_path):
cert_cmd.sing_req_by_server(req_id, cert_path, data_path, auto = True)
def get_certificate(cert_path, data_path, certbase, client_cert_path):
if not os.path.exists(client_cert_path + 'req_id'):
print _("request was not sent or deleted file %s") \
%(client_cert_path + 'req_id')
def get_certificate(cert_path, data_path, certbase, client_cert_path,user_name):
req_id_file = os.path.join(client_cert_path, 'req_id')
if not os.path.exists(req_id_file):
print _("request was not sent or deleted file %s") %req_id_file
return 1
fc = open(client_cert_path + 'req_id', 'r')
fc = open(req_id_file, 'r')
req_id = fc.read()
fc.close()
server_host_name = socket.getfqdn()
if not os.path.exists(client_cert_path + server_host_name + '.csr'):
print _('Request %s not found') %(client_cert_path + server_host_name + '.csr')
req_file = os.path.join(client_cert_path, server_host_name + '.csr')
if not os.path.exists(req_file):
print _('Request %s not found') %req_file
return 1
request = open(client_cert_path + server_host_name + '.csr').read()
request = open(req_file).read()
md5 = hashlib.md5()
md5.update(request)
md5sum = md5.hexdigest()
@ -225,11 +223,21 @@ def get_certificate(cert_path, data_path, certbase, client_cert_path):
elif cert == '4':
print _("Request was sent from another ip.")
return 1
fc = open(client_cert_path + server_host_name + '.crt', 'w')
cert_file = os.path.join(client_cert_path, server_host_name + '.crt')
fc = open(cert_file, 'w')
fc.write(cert)
fc.close()
os.unlink(client_cert_path + 'req_id')
print 'OK. Certificate save. Your certificate id = %s' %req_id
try:
pwdObj = pwd.getpwnam(user_name)
except KeyError, e:
print e
return None
os.chown(cert_file, pwdObj.pw_uid, pwdObj.pw_gid)
os.chmod(cert_file, 0700)
os.unlink(req_id_file)
print _('Certificate save. Your certificate id = %s') %req_id
if ca_root:
clVars = DataVarsCore()
@ -240,15 +248,14 @@ def get_certificate(cert_path, data_path, certbase, client_cert_path):
if ca_root in open(system_ca_db, 'r').read():
return 0
if not path.isdir (client_cert_path + 'ca'):
os.makedirs(client_cert_path + 'ca')
root_cert_md5 = client_cert_path + "ca/cert_list"
ca_dir = os.path.join(client_cert_path, 'ca')
if not os.path.isdir(ca_dir):
os.makedirs(ca_dir)
root_cert_md5 = os.path.join(ca_dir, "cert_list")
md5 = hashlib.md5()
md5.update(ca_root)
md5sum = md5.hexdigest()
print "\n================================================="
print "md5sum = ", md5sum
if not os.path.exists(root_cert_md5):
fc = open(root_cert_md5,"w")
@ -279,34 +286,31 @@ def get_certificate(cert_path, data_path, certbase, client_cert_path):
print _('Not found field "CN" in certificate!')
return 1
fd = open(client_cert_path + 'ca/' + filename, 'w')
fd = open(os.path.join(ca_dir, filename), 'w')
fd.write(ca_root)
fd.close()
user_root_cert = client_cert_path + "ca/ca_root.crt"
user_root_cert = os.path.join(ca_dir, 'ca_root.crt')
fa = open(user_root_cert, 'a')
fa.write(ca_root)
fa.close()
print _("filename = "), filename
print _("CERTIFICATE ADD")
else:
print _("file with ca certificates exists")
return 0
def change_owner(pwdObj, user_name):
if user_name == 'root':
return 1
else:
home_dir = '/home/' + user_name
for path in os.walk(home_dir + '/.calculate'):
os.chown(path[0], pwdObj.pw_uid, pwdObj.pw_gid)
for file in path[2]:
os.chown('/'.join([path[0], file]), pwdObj.pw_uid, pwdObj.pw_gid)
def key_force(cert_path, data_path):
import ipdb
ipdb.set_trace()
while True:
try:
resp = raw_input(_('You really want to remove all certificates, '
'requests and config files on server') + '? (yes/no): ')
except KeyboardInterrupt:
resp = 'no'
if resp.lower() in ['n', 'no']:
return 0
elif resp.lower() in ['y', 'yes']:
break
if os.path.isdir(cert_path):
shutil.rmtree(cert_path)
remove_dirs = ['conf', 'server_certs','client_certs','pids','sids']

@ -1201,7 +1201,7 @@ def parse():
help=_('bootstrap action'))
parser.add_argument(
'--force', action='store_true', default=False, dest = 'force',
help=_('use with key --bootstrap, remove all certificates, requests'
help=_('use with key --bootstrap, remove all certificates, requests '
'and config files on server'))
parser.add_argument(
'-d', '--dump', action='store_true', default=False, dest = 'dump',

@ -39,7 +39,7 @@ def serv_post_client_request (request, data_path, ip, mac, client_type, \
try:
ip = curThread.REMOTE_ADDR
except:
print "EXCEPT ip = curThread.REMOTE_ADDR!!!"
#print "EXCEPT ip = curThread.REMOTE_ADDR!!!"
ip = 'localhost'
# Finding Id for the current certificate
@ -175,7 +175,8 @@ def serv_post_server_request (request, data_path,\
try:
ip = curThread.REMOTE_ADDR
except:
print "EXCEPT ip = curThread.REMOTE_ADDR!!!!!!"
#print "EXCEPT ip = curThread.REMOTE_ADDR!!!!!!"
ip = 'not_defined'
# Finding Id for the current certificate
ID_FILE = data_path + '/server_certs/id.int'

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: calculate-api\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-24 16:43+0300\n"
"PO-Revision-Date: 2012-05-24 16:43+0300\n"
"POT-Creation-Date: 2012-05-25 10:26+0300\n"
"PO-Revision-Date: 2012-05-25 10:26+0300\n"
"Last-Translator: Denis <ds@mail.ru>\n"
"Language-Team: \n"
"Language: \n"
@ -138,7 +138,7 @@ msgstr "ID процесса не найден"
#: /var/calculate/mydir/git/calculate-api/core/client/pid_information.py:30
#: /var/calculate/mydir/git/calculate-api/core/client/template.py:31
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:317
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:314
msgid "Permission denied"
msgstr "Доступ запрещён"
@ -439,7 +439,7 @@ msgstr "Не удалось получить данные сертификата
#: /var/calculate/mydir/git/calculate-api/core/client/sid_func.py:47
#: /var/calculate/mydir/git/calculate-api/core/client/sid_func.py:70
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:294
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:291
#, python-format
msgid "Permission denied %s"
msgstr "Доступ запрещён %s"
@ -630,48 +630,44 @@ msgstr "Запрос на подпись сертификата не соотв
msgid "Request was sent from another ip."
msgstr "Запрос был послан с другого ip."
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:248
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:246
msgid "Not found field \"CN\" in certificate!"
msgstr "Нет поля \"CN\" в сертификате!"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:261
msgid "filename = "
msgstr "имя файла = "
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:262
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:259
msgid "CERTIFICATE ADD"
msgstr "Сертификат добавлен"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:264
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:261
msgid "file with ca certificates exists"
msgstr "файл с сертификатом центра авторизации создан"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:275
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:272
msgid "You do not have a certificate. Use key --gen-cert-by HOST for generate new certificate or key --get-cert-from HOST for get new certificate from server."
msgstr "У вас нет сертификата. Используйте ключ --gen-cert-by HOST для генерации нового сертификата или ключа --get-cert-from HOST для получения нового сертификата с сервера."
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:288
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:285
msgid "Certificate not found in server!"
msgstr "Сертификат не найден на сервере!"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:291
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:288
msgid "Error input certificate ID!"
msgstr "Ошибка создания номера сертификата!"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:297
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:294
#, python-format
msgid "Certificate with ID = %d can execute:"
msgstr "Сертификат с номером = %d может запускать:"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:303
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:300
msgid "Certificate ID: "
msgstr "Номер сертификата: "
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:307
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:304
msgid "Error certificate id"
msgstr "Ошибка номера сертификата"
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:314
#: /var/calculate/mydir/git/calculate-api/core/client/cert_func.py:311
msgid "Enter correctly cert id!"
msgstr "Введите корректный номер сертификата!"
@ -683,6 +679,11 @@ msgstr "Сертификат не найден на стороне клиент
msgid "Error open file"
msgstr "Ошибка открытия файла"
#: /var/calculate/mydir/git/calculate-api/core/client/client_class.py:172
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:300
msgid "filename = "
msgstr "имя файла = "
#: /var/calculate/mydir/git/calculate-api/core/client/client_class.py:185
msgid "Server certificate is not valid"
msgstr "Сертификат сервера недействителен"
@ -939,32 +940,57 @@ msgstr "Анти-бот тест"
msgid "Gratulations!"
msgstr "Поздравляю!"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:45
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:44
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1059
#, python-format
msgid "Certificate %s not found"
msgstr "Сертификат %s не найден"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:48
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:47
#, python-format
msgid "Secret key %s not found"
msgstr "Секретный ключ %s не найден"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:58
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:57
msgid "Certificate does not match the private key"
msgstr "Сертификат не соответствует секретному ключу"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:71
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:70
msgid "Certificate creation date greater than current date"
msgstr "Дата создания сертификата больше текущей даты"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:74
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:73
msgid "Expiry date certificate has passed"
msgstr "Срок годности сертификата истёк"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:151
msgid "could not create directory"
msgstr "не удаётся создать директорию"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:83
msgid "Generate Server Certificate"
msgstr "Генерация сертификата сервера"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:89
msgid "Server certificate already exists"
msgstr "Сертификат сервера создан"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:91
msgid "Generate Client Certificate"
msgstr "Генерация сертификата клиента"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:94
msgid "Client certificate already exists"
msgstr "Сертификат клиента создан"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:128
msgid "not exists client certificate path"
msgstr "не создан путь к сертификату клиента"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:241
#, python-format
msgid "Certificate save. Your certificate id = %s"
msgstr "Сертификат сохранён. Номер Вашего сертификата = %s"
#: /var/calculate/mydir/git/calculate-api/core/server/bootstrap.py:309
msgid "You really want to remove all certificates, requests and config files on server"
msgstr "Вы действительно хотите удалить все сертификаты, запросы и конфигурационные файлы на сервере"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:110
#, python-format
@ -1221,78 +1247,82 @@ msgid "bootstrap action"
msgstr "начальные загрузки"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1204
msgid "use with key --bootstrap, remove all certificates, requests and config files on server"
msgstr "используйте с ключом --bootstrap, удаление всех сертификатов, запросов и конфигурационных файлов на сервере"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1208
msgid "dump (using with -c [ID])"
msgstr "дамп (используйте с ключом -c [ID])"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1207
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1211
msgid "debug"
msgstr "режим отладки (debug)"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1210
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1214
msgid "remove selected certificate (using with -c [ID])"
msgstr "удалить выбранный сертификат (используйте с ключом -c [ID])"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1213
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1217
msgid "Add right for certificate (or list via ',') (using with -c [ID])"
msgstr "добавить права для сертификата (или списка через ',') (используйте с ключом -c [ID])"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1217
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1221
msgid "Delete right(s) for certificate (using with -c [ID])"
msgstr "удаление прав сертификата (используйте с -c [ID])"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1220
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1224
msgid "generate a root (CA) certificate"
msgstr "генерировать корневой сертификат (сертификат удостоверяющего центра)"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1223
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1227
msgid "send request to sign root certificate"
msgstr "отправить запрос на подписание корневого сертификата"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1229
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1233
msgid "use root certificate as server cert"
msgstr "использовать корневой сертификат как сертификат сервера"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1232
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1236
msgid "sign client's request by server certificate"
msgstr "подписать запрос на подписание сертификата клиента сертификатом сервера"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1235
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1239
msgid "sign server's request by root certificate"
msgstr "подписать запрос на подписание сертификата сервера корневым сертификатом"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1238
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1242
msgid "refuse to sign server request"
msgstr "отвергнуть серверный запрос на подпись сертификата"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1241
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1245
msgid "refuse to sign client request"
msgstr "отвергнуть клиентский запрос на подпись сертификата"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1244
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1248
msgid "revoke early signed server (or ca) certificate. rm to remove CRL"
msgstr "отозвать ранее подписанный сертификат сервера (удостоверяющего центра). rm для удаления списка отзыва"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1247
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1251
msgid "display value for specified variable (section.variablename). If section skipped then using variables from main section"
msgstr "отобразить значение для указанной переменной (раздел.имя_переменной). Если раздел пропущен, то используются переменные из основного раздела"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1251
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1255
msgid "Display variable as human readable"
msgstr "выводить значение в удобном для человека виде"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1254
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1258
msgid "write value for variable (section.variablename=value)"
msgstr "записать значение для переменной (секция.имя_переменной=значение)"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1257
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1261
msgid "check configuration"
msgstr "проверка конфигурации"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1260
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1264
msgid "path to log files"
msgstr "путь к файлам логов"
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1263
#: /var/calculate/mydir/git/calculate-api/core/server/cert_cmd.py:1267
msgid "prints the version number, then exits"
msgstr "вывод версии программы и выход"
@ -1569,100 +1599,5 @@ msgstr "Сертификат сервера не найден"
msgid "use cl-core with key --gen-cert-by HOST (--get-cert-from HOST) or --use-root-as-server)"
msgstr "используйте cl-core с ключом --gen-cert-by HOST (--get-cert-from HOST) или --use-root-as-server)"
#: /var/calculate/mydir/git/calculate-api/build/lib/calculate/core/server/cert_cmd.py:987
#, python-format
msgid "Request or certificate with id = %s not found!"
msgstr "Запрос или сертификат с идентификатором = %s не найден!"
#: /var/calculate/mydir/git/calculate-api/build/lib/calculate/core/server/cert_cmd.py:1031
msgid "successfully removed"
msgstr "успешно удалено"
#~ msgid "refuse to sign request"
#~ msgstr "отвергнуть запрос на подпись сертификата"
#~ msgid "Current offset = %d"
#~ msgstr "Текущее смещение = %d"
#~ msgid "set certificate rights"
#~ msgstr "права сертификата"
#, fuzzy
#~ msgid "set group rights"
#~ msgstr "Права группы"
#~ msgid "Empty group"
#~ msgstr "Пустая группа"
#~ msgid "lang %s not supported!"
#~ msgstr "язык %s не поддерживается!"
#~ msgid "Management Groups"
#~ msgstr "Управление группами"
#~ msgid "cl-template"
#~ msgstr "Наложение шаблонов"
#~ msgid "View Requests"
#~ msgstr "Просмотр запросов"
#~ msgid "View Cert"
#~ msgstr "Просмотр сертификатов"
#~ msgid "Closing\n"
#~ msgstr "Закрытие\n"
#~ msgid ""
#~ "root certificate not found (use cl-api-server with key --gen-root-cert)"
#~ msgstr ""
#~ "корневой сертификат не найден (используйте cl-api-server с ключом --gen-"
#~ "root-cert)"
#~ msgid "Variables cl_api_monitor_period or cl_api_sid_live not found"
#~ msgstr "Переменная cl_api_monitor_period или cl_api_sid_live не найдены"
#~ msgid ""
#~ "use cl-api-server with key --gen-cert-by HOST (--get-cert-from HOST) or --"
#~ "use-root-as-server)"
#~ msgstr ""
#~ "используйте cl-api-server с ключом --gen-cert-by HOST (--get-cert-from "
#~ "HOST) или --use-root-as-server)"
#~ msgid "Api"
#~ msgstr "Api"
#~ msgid "Press for advanced settings"
#~ msgstr "Нажмите для дополнительных настроек"
#, fuzzy
#~ msgid "Group name must be int"
#~ msgstr "Количество должно быть целочисленным"
#, fuzzy
#~ msgid "Changed Group"
#~ msgstr "Изменить"
#~ msgid "Certificate id: "
#~ msgstr "Номер сертификата: "
#~ msgid "Enter Certificate id"
#~ msgstr "Введите номер сертификата"
#, fuzzy
#~ msgid "Serial Number = </b>"
#~ msgstr "Серийный номер = "
#~ msgid "For autopartition need select install device"
#~ msgstr "For autopartition need select install device"
#~ msgid "killed %d"
#~ msgstr "убит %d"
#~ msgid "Enter Your Password: "
#~ msgstr "Введите свой пароль: "
#~ msgid "Password Incorrect!"
#~ msgstr "Пароль неверен!"
#~ msgid "Password is correct"
#~ msgstr "Пароль верен"
#~ msgid "could not create directory"
#~ msgstr "не удаётся создать директорию"

Loading…
Cancel
Save