Что-то не захотели вместе жить KVR16N11S8/4 и HX316C10F/8 на ASUS H81M-R.
Что ж, буду знать.
воскресенье, 22 декабря 2019 г.
среда, 27 ноября 2019 г.
Я, кажется, носом клюю над альбомом
Своих фотографий. А так берегла!
Куда ж их девать? Разослать по знакомым?
Пусть вспомнят: такая жила да была…
И будут валяться застывшие «миги»,
Пока молодые не вычистят дом,
Чтоб новые вещи, и новые книги,
И новые фото расставить кругом.
Знакомая мамы… А около – папа,
А шляпка-то, шляпка! Комичный наряд,
Такие носили лет сорок назад.
И все эти даты, событья, этапы,
А с ними же платья, причёски и шляпы –
В камин полетят.
(Ларисса Андерсен)
Своих фотографий. А так берегла!
Куда ж их девать? Разослать по знакомым?
Пусть вспомнят: такая жила да была…
И будут валяться застывшие «миги»,
Пока молодые не вычистят дом,
Чтоб новые вещи, и новые книги,
И новые фото расставить кругом.
Знакомая мамы… А около – папа,
А шляпка-то, шляпка! Комичный наряд,
Такие носили лет сорок назад.
И все эти даты, событья, этапы,
А с ними же платья, причёски и шляпы –
В камин полетят.
(Ларисса Андерсен)
пятница, 13 сентября 2019 г.
linux: команда ping и административные привилегии
Заинтересовал исходный код команды ping. Быстро нашелся работающий пример, но насторожило, что работает этот пример только с правами администратора.
Выяснилось, что дело в конструкции socket(AF_INET, SOCK_RAW, IPPROTO_ICMP). Оказывается, непривилегированным пользователям не позволено открывать raw-сокеты. Сделано это, как я понял, из соображений безопасности: raw-сокеты относятся к третьему уровню модели OSI, и могут ничего не знать о портах и прочих прелестях TCP, UDP и т.д., отдавая обработку IP-пакетов целиком на откуп программисту.
Однако возникает закономерный вопрос: команда ping же как-то работает без sudo. Подобное поведение возможно благодаря хитрым правам, розданным файлу /bin/ping. Если у нас есть файл /home/huh-muh/myprog, и мы хотим сделать его таким же крутым, этого можно достигнуть двумя путями.
1. Выполнить последовательность команд:
2. Либо воспользовавшись capabilites:
или
Посмотреть, какие права даны программе, можно командой:
Выяснилось, что дело в конструкции socket(AF_INET, SOCK_RAW, IPPROTO_ICMP). Оказывается, непривилегированным пользователям не позволено открывать raw-сокеты. Сделано это, как я понял, из соображений безопасности: raw-сокеты относятся к третьему уровню модели OSI, и могут ничего не знать о портах и прочих прелестях TCP, UDP и т.д., отдавая обработку IP-пакетов целиком на откуп программисту.
Однако возникает закономерный вопрос: команда ping же как-то работает без sudo. Подобное поведение возможно благодаря хитрым правам, розданным файлу /bin/ping. Если у нас есть файл /home/huh-muh/myprog, и мы хотим сделать его таким же крутым, этого можно достигнуть двумя путями.
1. Выполнить последовательность команд:
# chown root:root /home/huh-muh/myprog # chgrp u+s /home/huh-muh/myprog
2. Либо воспользовавшись capabilites:
#filecap /home/huh-muh/myprog net_raw net_admin
или
#setcap cap_net_raw,cap_net_admin=eip /home/huh-muh/myprog
Посмотреть, какие права даны программе, можно командой:
#getcap /home/huh-muh/myprog
понедельник, 3 июня 2019 г.
ssh: аутентификация с помощью сертификатов
Пусть есть сервер с именем myServer, на котором создана учетная запись myUser, и есть клиентская машина, с которой мы хотим получить доступ по ssh под этой учетной записью, авторизовавшись с помощью сертификатов.
Будем считать, что машины "чистые", т.е., в каталогах ~/.ssh нет никаких файлов id_rsa.*
1. На клиенте: Переходим в каталог ~/.ssh и создаём там пару приватный ключ-открытый ключ командой:
2. На клиенте: Закидываем открытый ключ на сервер командой:
3. На сервере: Добавляем открытый ключ в файл authorized_keys командой:
После этого можно пробовать заходить на сервер myServerс помощью сертификата:
В приниципе, эти ключи необязательно должны иметь имя id_rsa.* и храниться в папке ~/.ssh. Можно при подключении явно указывать имя файла, содержащего приватный ключ:
Будем считать, что машины "чистые", т.е., в каталогах ~/.ssh нет никаких файлов id_rsa.*
1. На клиенте: Переходим в каталог ~/.ssh и создаём там пару приватный ключ-открытый ключ командой:
ssh-keygen -t rsaв результате в каталоге ~/.ssh образуются два файла: id_rsa (приватный ключ) и id_rsa.pub (открытый ключ).
2. На клиенте: Закидываем открытый ключ на сервер командой:
scp ~/.ssh/id_rsa.pub myUser@myServer:~/.ssh/
3. На сервере: Добавляем открытый ключ в файл authorized_keys командой:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/.ssh/id_rsa.pub
После этого можно пробовать заходить на сервер myServerс помощью сертификата:
ssh myUser@myServer
В приниципе, эти ключи необязательно должны иметь имя id_rsa.* и храниться в папке ~/.ssh. Можно при подключении явно указывать имя файла, содержащего приватный ключ:
ssh myUser@myServer -i ~/myCustom_id_rsa
среда, 15 мая 2019 г.
Windows: Установка принтера по умолчанию через реестр
Чтобы указать принтер, используемый по умолчанию, не через папку "Устройства и принтеры", а через реестр, надо сделать следующее:
1. Посмотреть доступные принтеры в разделе:
2. Поправить параметр:
Говорят, еще можно это сделать из командной строки:
Литература:
https://helpdesk.win2pdf.com/index.php?/Knowledgebase/Article/View/63/0/set-default-printer-from-registry
1. Посмотреть доступные принтеры в разделе:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices
2. Поправить параметр:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device(он должен выглядеть примерно так: "myPrinter,winspool,Ne03:")
Говорят, еще можно это сделать из командной строки:
rundll32 printui.dll,PrintUIEntry /y /q /n "myPrinter"
Литература:
https://helpdesk.win2pdf.com/index.php?/Knowledgebase/Article/View/63/0/set-default-printer-from-registry
воскресенье, 28 апреля 2019 г.
Windows 2008: Hyper-V и дилетанты
Предположим, возникла ситуация: жил-был Windows2008-сервер с Hyper-V, на котором работала виртуальная машина, и этот сервер в один не очень прекрасный момент приказал долго жить. К счастью, виртуальная машина лежала на отдельном диске и не пострадала. Возникает две задачи: 1) как добраться до файлов на виртуальном жестком диске и 2) как эту виртуальную машину поднять на другом сервере?
Тут надо сделать небольшой экскурс в структуру файлов, в которых хранится виртуальная машина (пусть её имя QUQU). Выглядит эта структура примерно так:
Насколько я понял, система функционирует следующим образом. До создания фотографий виртуальная машина работает с образом диска - файлом QUQU-c.vhd. При создании фотографии этот файл "замораживается", и создается файл *.avhd, в котором накапливаются дифференциальные изменения диска С: виртуальной машины. И так далее.
Таким образом, чтобы можно было добраться до файлов виртуальной машины, надо как-то скомбинировать файлы дифференциальных накоплений и исходного состояния диска С: виртуальной машины. Говорят, штатным образом это как-то делатся на сервере в гипервизоре Hyper-V, но и без гипервизора можно обойтись.
Оказывается, к решению первой задачи (доступ к файлам ВМ) приводит следующая последовательность действий:
1. Чтобы не порушить структуру ВМ, копируем все QUQU-c.vhd и QUQU-c_33333333-3333-3333-3333-333333333333.avhd в какую-нибудь папку (например, D:\temp)
2. Запускаем с правами администратора утилиту DISKPART.
3. В командной строке diskpart-а выполняем команду:
4. В командной строке diskpart-а выполняем команду:
5. Этот образ при помощи оснастки "Управление дисками" (например, так: с правами администратора команда mmc -> меню "Файл" - > пункт "Добавить или удалить оснастку...") подцепляем к системе: меню "Действие" -> пункт "Присоединить виртуальный жесткий диск".
Вторая задача (по переносу виртуальной машины) решается тоже несложно:
1. Останавливаем сервис Hyper-V:
2. Создаём символические ссылки на конфигурацию виртуальной машины и всех её фотографий в рабочей папке Hyper-V нового сервера:
3. Раздаём этим символическим ссылкам нужные права:
4. Запускаем сервис Hyper-V:
Литература:
http://itexpertclub.blogspot.com/2015/02/how-to-merge-vhd-and-avdh-files-using.html
http://pyatilistnik.org/kak-vosstanovit-virtualnyie-mashinyi-hyper-v-pri-kopirovanii-na-drugoy-host-v-windows-server-2008r2/
http://forum.oszone.net/thread-214658.html
Тут надо сделать небольшой экскурс в структуру файлов, в которых хранится виртуальная машина (пусть её имя QUQU). Выглядит эта структура примерно так:
C: └─ProgramData └─Microsoft └─Windows └─Hyper-V ├─Snapshots │ └─22222222-2222-2222-2222-222222222222.xml <- символическая ссылка на конфигурацию фотографии ВМ └─Virtual Machines └─11111111-1111-1111-1111-11111111111.xml <- символическая ссылка на конфигурацию ВМ ... D: <- диск для хранения виртуальных машин └─QUQU ├─Snapshots <- папка для хранения фотографий ВМ │ ├─22222222-2222-2222-2222-222222222222 <- фотография виртуальной машины │ │ ├─22222222-2222-2222-2222-222222222222.bin │ │ └─22222222-2222-2222-2222-222222222222.vsv │ └─22222222-2222-2222-2222-222222222222.xml <- конфигурация фотографии ВМ ├─Virtual Machines │ ├─11111111-1111-1111-1111-11111111111 <- пустая папка, не знаю, зачем │ └─11111111-1111-1111-1111-11111111111.xml <- конфигурация ВМ ├─QUQU-c.vhd <- образ диска С: виртуальной машины └─QUQU-c_33333333-3333-3333-3333-333333333333.avhd <- изменения на диске С: виртуальной машины
Насколько я понял, система функционирует следующим образом. До создания фотографий виртуальная машина работает с образом диска - файлом QUQU-c.vhd. При создании фотографии этот файл "замораживается", и создается файл *.avhd, в котором накапливаются дифференциальные изменения диска С: виртуальной машины. И так далее.
Таким образом, чтобы можно было добраться до файлов виртуальной машины, надо как-то скомбинировать файлы дифференциальных накоплений и исходного состояния диска С: виртуальной машины. Говорят, штатным образом это как-то делатся на сервере в гипервизоре Hyper-V, но и без гипервизора можно обойтись.
Оказывается, к решению первой задачи (доступ к файлам ВМ) приводит следующая последовательность действий:
1. Чтобы не порушить структуру ВМ, копируем все QUQU-c.vhd и QUQU-c_33333333-3333-3333-3333-333333333333.avhd в какую-нибудь папку (например, D:\temp)
2. Запускаем с правами администратора утилиту DISKPART.
3. В командной строке diskpart-а выполняем команду:
select vdisk file=D:\temp\QUQU-c_33333333-3333-3333-3333-333333333333.avhdэта команда нацелит diskpart на последний файл дифференциального накопления.
4. В командной строке diskpart-а выполняем команду:
merge vdisk depth=1эта команда скомбинирует файлы дифференциального накопления (тут у нас один файл, поэтому depth=1) с исходным файлом и выдаст в QUQU-c.vhd самый свежий образ диска C: виртуальной машины.
5. Этот образ при помощи оснастки "Управление дисками" (например, так: с правами администратора команда mmc -> меню "Файл" - > пункт "Добавить или удалить оснастку...") подцепляем к системе: меню "Действие" -> пункт "Присоединить виртуальный жесткий диск".
Вторая задача (по переносу виртуальной машины) решается тоже несложно:
1. Останавливаем сервис Hyper-V:
net stop vmms
2. Создаём символические ссылки на конфигурацию виртуальной машины и всех её фотографий в рабочей папке Hyper-V нового сервера:
mklink "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\11111111-1111-1111-1111-11111111111.xml" "D:\QUQU\Virtual Machines\11111111-1111-1111-1111-11111111111.xml" mklink "C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\22222222-2222-2222-2222-222222222222.xml" "D:\QUQU\Snapshots\22222222-2222-2222-2222-222222222222.xml"
3. Раздаём этим символическим ссылкам нужные права:
icacls "C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\11111111-1111-1111-1111-11111111111.xml" /grant "ВИРТУАЛЬНАЯ МАШИНА NT\11111111-1111-1111-1111-11111111111":F /T /L icacls "C:\ProgramData\Microsoft\Windows\Hyper-V\Snapshots\22222222-2222-2222-2222-222222222222.xml" /grant "ВИРТУАЛЬНАЯ МАШИНА NT\11111111-1111-1111-1111-11111111111":F /T /L(если операционная система англоязычная, то "ВИРТУАЛЬНАЯ МАШИНА NT" меняем на "NT VIRTUAL MACHINE").
4. Запускаем сервис Hyper-V:
net start vmmsи отправляемся настраивать сетевые адаптеры на восстановленной виртуальной машине.
Литература:
http://itexpertclub.blogspot.com/2015/02/how-to-merge-vhd-and-avdh-files-using.html
http://pyatilistnik.org/kak-vosstanovit-virtualnyie-mashinyi-hyper-v-pri-kopirovanii-na-drugoy-host-v-windows-server-2008r2/
http://forum.oszone.net/thread-214658.html
Подписаться на:
Сообщения (Atom)