CIFS с kerberos-авториацией

Решил окучить вопрос подключения windows-шар с использованием билета kerberos. Небезопасно как-то хранить plain-текстом доменные учётные данные, а вводить каждый раз ручками — не наш метод. В принципе, оказалось, что всё, что надо, есть из коробки. Потребуются пакеты:

sudo apt-get update 

sudo apt-get install krb5-user cifs-utils keyutils

 При грамотно настроенном DNS настройка kerberos-клиента сводится к указанию REALM домена windows по-умолчанию (рекомендуется указывать в верхнем регистре, например EXAMPLE.COM), который будет запрошен при установке и может быть изменен в /etc/krb5.conf. Если всё правильно, то с получением билет не должно возникнуть проблем:

kinit vasiliy
Password for 
vasiliy@EXAMPLE.COM:
klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: vasiliy@
EXAMPLE.COM
Valid starting       Expires              Service principal
22.06.2015 21:28:02  23.06.2015 07:28:02  krbtgt/
EXAMPLE.COM@EXAMPLE.COM
renew until 23.06.2015 21:27:57

Вывод команды klist отобразит информацию о полученном билете. Чтобы монтировать сетевую шару без необходимости прав root внесем в /etc/fstab следующую строку:

//host.example.com/development /home/vasiliy/Dev cifs rw,user,noauto,sec=krb5,username=vasiliy,domain=EXAMPLE.COM 0 0

Точку монтирования /home/vasiliy/Dev, естественно, надо создать. Также хочу указать на необходимость указания  настроек подключения cifs именно в fstab — с командой строки они браться не будут. Если не указывать username и domain, то будут использоваться из хранилища ключей (?). Т.е. строку можно будет использовать любому пользователю станции. Монтируем и отмонтируем командами, соответственно:

mount /home/vasiliy/Dev
umount /home/vasiliy/Dev

ЗЫ. Ошибка вида:

mount error(128): Key has been revoked 

Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) 

решается полным завершением сеанса оболочки и повторным логином. Такое ощущение, что mount не может найти, где лежит keytab… Нужно проверять.

Автор: Василий Иванов
Дата публикации: 2015-06-22T05:10:00.000-07:00

Руководство для начинающих для вставки фрагментов php из интернета в WordPress

Сегодня мы научим вас правильно добавлять фрагменты кода в свой файл темы functions.php. Этот процесс довольно легок для специалистов PHP, но сложен для новых пользователей. Часто новички стремятся быстро написать код или вставить нужный код, но из-за нехватки знаний в PHP, порой приводит к поломке сайта. Это нормально, и если читаете эту статью, значит у вашего сайта проблемы, и мы хотим заверить вас, что Вы не один такой. Все мы совершали подобную ошибку как минимум по несколько раз. Сейчас мы расскажем вам, наиболее популярные ошибки и как избежать их при вставке кода из других источников и материалов в файл functions.php.

Примечание: не путайте файл functions.php расположенный в папке /wp-content/themes/yourthemename/ и файл ядра Wordpess functions.php находящийся в папке /wp-includes/.

Основной код семантики РНР пишется так:

//Это начальный тег

<?РНР

 

//Это конечный тег

?>

Основная причина, почему необходимо знать данный код происходит потому, что более 95% проблем которые мы исправили для наших пользователей, предполагают вставку кода в неположенном месте. Поэтому знание семантики РНР очень необходимо. Ниже описаны, по нашему мнению, наиболее популярные ошибки.

1-я распространенная ошибка

Владелец сайта вставляет код между тэгами PHP, как показано ниже, но вставляют его неверно.

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

Пример кода functions.php (Примечание. Файл functions.php обычно имеет гораздо больший объем, но смысл тот же):

<?php

//смешивают код PHP с существующим здесь

	 

//Программер вставляет код который он нашёл в интернете

	 

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

?>

Это будет явно ошибка на Вордпресс, потому что у вас уже есть начальный тег который который еще не закрыли. Есть два решения данной проблемы. Первый, вставляем элемент в правильном месте:

<?php

//смешивают код PHP с существующим здесь

	 

//Видите, как мы правильно закрыли тег PHP

?>

//Теперь можем открыть тег.

<?php

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

Заметьте, насколько мы правильно вставили код после закрытия предыдущего.

Другой способ-просто удалить начальный и конечный теги с вашего нового кода. Так будет выглядеть:

<?php

//смешивают код PHP с существующим здесь

	 

// Новый код просто вставляется сюда (обратите внимание, что мы удалили начальный и конечный тег из вставленного кода)

	 

add_filter( 'login_headerurl', 'Fcustom_logins_url' );

function Fcustom_logins_url($url) {

    return 'http://AndreyEx.ru';

}

?>

2-я распространенная ошибка

У каждого учебника есть свой собственный стиль написания. Некоторые держат их в фрагментах, обматывают тегом PHP, которые вы видели выше. Другие не оборачивают свои фрагменты вокруг PHP-тегом. Это подводит нас к очередной проблемы. Пример:

function Fcustom_logins() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

Автор исходит из того, что вы знаете, что этот код должен быть внутри тегов. Некоторые думают, что Вы разместите их код внизу вашего файла functions.php. Пример ошибки новичка:

<?php

//смешивают код PHP с существующим здесь

	?>

	 

//Затем пользователь вставляет код здесь (обратите внимание на PHP-теги которые уже закрыты выше):

	 

function Fcustom_logins() {

echo '<style type="text/css">

h1 a {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

Если вы заметили, код вставлен вне тегов. Вордпресс не знает, что это за код, таким образом получается ошибка. Пример правильного кода:

<?php

//смешивают код PHP с существующим здесь

 

//Новый идет здесь

function Fcustom_logins() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/logins.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_logins');

	 

//PHP End Tag

?>

3-я распространенная ошибка

Далее последняя ошибка. которая является самой распространенной, когда пользователь вставляет новый фрагмент в пределах существующей функции.

Устройство функции обычно выглядит так:

function Fcustom_function_name() { // это начальный

	 

// код функции идет здесь

	 

} // Это конечный тег

Если поместить одну функцию внутри другой, то она вызывает исключение на вашем сайте. Пример этой ошибки примерно такой:

function Fcustom_name_function() { // здесь начальный тег

	 

	// код функции идет здесь

	 

function Fcustom_login() {

echo '<style type="text/css">

h1 {background-image: url('.get_bloginfo('template_directory').'/images/login.png) !important; }

</style>';

	}

add_action('login_head', 'Fcustom_login');

	 

} // Тут конечный тег

Вы не можете сделать это. Каждая функция являются независимой, поэтому нельзя ставить два вместе. Далее правильный код вставки:

function Fcustom_name_function() { // это начальный тег

	 

// код функции идет здесь

	 

	 

} // Это конечный тег

	 

function Fcustom_login() {

echo '<style type="text/css">

h1 a {background-image: url('.get_bloginfo('template_directory').'/images/login.png) !important; }

</style>';

}

add_action('login_head', 'Fcustom_login');

Выше указанные три ошибки, вероятной причиной, почему ваша тема неисправна, после того как Вы дополнили фрагментом кода ваш файл functions.php

Другие Советы

Бывают случаи, когда мы сталкиваемся с вопросами, просто чтобы узнать, какой вставленный код с ошибками. Некоторые из них действительно небрежные ошибки от невнимательности. В то же время как другие функциональные ошибки с кодом или сам пользователь не следует инструкциям правильно.

В некоторых учебниках авторы просто вызывают функции без проверки наличия напрямую в их фрагменте, не имея условных операторов для проверки, что плагин существует. Вы можете винить как пользователей так и авторов. Автор должен был иметь условный оператор на месте, но пользователь должен также читать статьи правильно перед тем как установить необходимый плагин.

Бывают случаи, когда вы сталкиваетесь с длинными фрагментами. Например, наш код формирования сниппета. Авторы имеют тенденцию объяснять код для их пользователей (который является хорошо), но он также приводит к ошибкам в коде. Так, мы делаем прокрутку вниз или вверх, чтобы получить окончательный фрагмент кода, а не собираем все воедино сами.

Узнаете ли вы эти ошибки? Как вы с ними справлялись? Были у вас ошибки, которые мы не упомянули выше? Если да, то поделитесь в комментариях с нами.

Руководство для начинающих для вставки php фрагментов из интернета в WordPress



2015-06-21T22:38:26
CMS WordPress

Накрутка групп в вконтакте или как бесплатно продвинуть свой проект

Раскручиваете свою страницу в ВКонтакте, а результата нет? Не грусти! Сегодня я напишу вам, как продвинуть свою страницу или группу в вк быстро!

Совсем недавно я понял , что пора заканчивать общаться в интернете и начинать получать деньги с зависимости людей от ВК . Я начал рекламировать свои страницы вконтакте, накручивая ее с помощью сервиса VKlikers.ru. Расскажу детально … Читать

Доступ пользователей из доверительных доменов к VMware vSphere ESXi.

В VMware vSphere 5.5 был полностью переписан движок сервисов аутентификации Single-Sign-On (SSO), так как раньше VMware использовала стороннее решение. Теперь же нет старой базы RSA, а контроллеры доменов Active Directory не нужно указывать напрямую. Механизм аутентификации стал проще, но при этом эффективнее.

Читать

KVM / Создание снимков виртуальных машин

Qemu-KVM поддерживает создание снимков виртуальных машин. От суперпользователя заходим в virsh и выполняем следующую команду:

virsh # snapshot-create-as name

name — это имя виртуальной машины.

После того, как снимок виртуальной машины будет сделан, резервные копии файлов конфигураций будут лежать в директории /var/lib/libvirt/qemu/snapshot/.

Просмотреть снимки можно следующей командой:

virsh # snapshot-list name

Name Creation Time State
— 2340593244 2015-06-18 17:34:04 +0200 running
2340594479 2015-06-18 17:54:39 +0200 running

Восстановить из snapshot можно так:

virsh # snapshot-revert name 2340593244

Удалить не нужный снимок можно так:

virsh # snapshot-delete name 2340593244

Автор: AugustuS Karro

Как отключить все плагины, когда не удается получить доступ к WP-admin

Для устранения неисправности на сайтах, довольно часто рекомендуют отключить плагины и включать их по одиночки. Это случается когда вы не можете получить доступ к своей админ панели WordPress. Если вы сталкивались с белым экраном, так называемым экраном белый смерти, то вы понимаете, о чём мы говорим. В статье мы расскажем вам, как отключить все плагины WordPress, когда Вы не можете получить доступ к WP-admin.

Существует два способа отключить все плагины. Первый требует для использования FTP, а второй утилиту phpmyadmin.

Отключить все плагины через FTP

В первом методе, вам нужно будет использовать либо файловый менеджер хостинга либо FTP. Перейдите к папке /WP-content/. Вы увидите папку под названием plugins. Переименовать папку plugins на нечто вроде plugins_, как вам нравится. После этой процедуры все плагины на сайте будут деактивированы.

Зачастую, Вам необходим данный способ, когда заблокирован доступ к вашей админ-панели. Если ошибка была в каком нибудь плагине, то вы после отключения должны войти в свой /WP-admin/. После, возвращайтесь в /WP-content/ каталог и переименуйте “plugins_” обратно plugins. Теперь активируйте один плагин на за другим, проверяя после каждого активирования, работает ваш сайт или нет. Так вы узнаете, какой именно плагин был причиной неработоспособности сайта.

Деактивация плагинов с помощью phpmyadmin

Через FTP, безусловно, проще, на наш взгляд решить эту проблему, однако вы можете также деактивировать все плагины с помощью phpmyadmin. Для использования phpmyadmin, мы рекомендуем использовать метод FTP описанный выше.

Зайдите в вашу БД WordPress, перейдите к таблице wp_options, кстати название таблицы может быть другим по шаблону «*_options», где под звездочкой может быть любой набор из букв и цифр. Найдите параметр строки “active_plugins” и измените значение параметра на: a:0:{}, я также пробовал пустое значение оставлять, работало!

Мы надеемся, что эта статья решила Вашу проблему недоступности сайта при помощи отключения плагинов.



2015-06-19T04:47:07
CMS WordPress