Решение намного легче, если нормально использовать файл устройств в качестве "файла с ошибками ввода-вывода". Мое предложение для тех случаев, где регулярный файл должен иметь такие ошибки.
> dd if=/dev/zero of=/path/to/ext2.img bs=10M count=10
> losetup /dev/loop0 /path/to/ext2.img
> blockdev --getsz /dev/loop0
204800
> echo "0 204800 linear /dev/loop0 0" | dmsetup create sane_dev
> mke2fs /dev/mapper/sane_dev # ext2 reicht
> mount -t ext2 /dev/mapper/sane_dev /some/where
> dd if=/dev/zero of=/some/where/unreadable_file bs=512 count=4
> hdparm --fibmap /some/where/unreadable_file
/mnt/tmp/unreadable_file:
filesystem blocksize 1024, begins at LBA 0; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
0 2050 2053 4
> umount /dev/mapper/sane_dev
> dmsetup remove sane_dev
> start_sector=$((204800-2053-1))
> echo $'0 2053 linear /dev/loop0 0\n2053 1 error\n2054 '"${start_sector} linear /dev/loop0 2054" |
> dmsetup create error_dev
> mount -t ext2 /dev/mapper/error_dev /some/where
> cat /some/where/unreadable_file # 3rd sector of file is unreadable
cat: /some/where/unreadable_file: Input/output error
Я должен признать, что немного смущен, потому что мне не удалось считать единственные секторы из того файла без ошибки (с dd .. seek=...
). Возможно, это - считанная вперед проблема.
Для этого вам нужно скачать / клон, компилировать и установить NGINX-AUTH-LDAP
Вы можете загрузить ZIP-файл:
wget https://github.com/kvspb/nginx-auth-ldap/archive/master.zip
unzip master.zip
, затем CD
на ваш NGINX Исходная папка и делает:
./configure --add-module=~-/nginx-auth-ldap-master
sudo make install
После этого вы можете настроить Nginx
:
http {
ldap_server test1 {
url ldap://192.168.0.1:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
binddn "TEST\\LDAPUSER";
binddn_passwd LDAPPASSWORD;
group_attribute uniquemember;
group_attribute_is_dn on;
require valid_user;
}
ldap_server test2 {
url ldap://192.168.0.2:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=person);
binddn "TEST\\LDAPUSER";
binddn_passwd LDAPPASSWORD;
group_attribute uniquemember;
group_attribute_is_dn on;
require valid_user;
}
}
server {
listen 8000;
server_name localhost;
auth_ldap "Forbidden";
auth_ldap_servers test1;
auth_ldap_servers test2;
location / {
root html;
index index.html index.htm;
}
}
, как указано в документации модулей.
@ xenoterracide является нормальным, если параметр AutoAddDevice
включен в ServerLayout
вашего xorg.conf
. В противном случае (особенно в конфигурациях с несколькими участками X) необходимо вставить строку XkbOptions
в раздел InputDevice
, описывающий клавиатуру. Например:
Section "InputDevice"
Identifier "keyboard-vmware"
Driver "evdev"
Option "Device" "/dev/input/by-path/platform-i8042-serio-0-event-kbd"
Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
-121--12522- Это не отвечает на заданный точный вопрос, но альтернативное решение состоит в том, чтобы журнал работал на другом сервере/виртуальной машине, чтобы добавить его только с помощью chattr + a
, а затем подключить его по сети. Это не без недостатков, но на мой взгляд - один из лучших подходов к решению этой проблемы.
Также можно использовать модуль auth _ pam . Например, он был включен в последние два стабильных выпуска Debian. Он поддерживает аутентификацию LDAP (и многое другое) через PAM.
Я написал nginx -auth -saslauthd , который связывает nginx с демоном saslauthd и обеспечивает обычную аутентификацию. Демон saslauthd поддерживает как LDAP, так и PAM.