LINUX.ORG.RU

Сообщения Kiborg

 

Продам игровой ноутбук Asus GL552JX core i7 8gb

Ноут новый (куплен в августе, на гарантии, вскрыт и запущен 1 раз, чуть помят тканевый чехол, в котором он лежал в коробке).

В комплекте расово верный DOS вместо ОС, при желании могу поставить туда Linux :)

Объява на авито
Подробные характеристики

Цена 52000 р.

 

Kiborg
()

Управление сервисом из программы на C/C++

Представим, что нужно из программы, запущенной с нужными привилегиями, управлять службой systemd/upstart/etc. Как это правильно делать?

Понятно, что в общем случае всегда поможет exec("/sbin/service xxx restart"); (или соответствующий аналог), но хотелось бы какие-то сишные интерфейсы, без system и exec.

Больше остальных интересует systemd, с высокой вероятностью кроме него поддерживать ничего не нужно будет. Нашел описание интерфейса D-Bus к нему. Но из исходников systemctl я выяснил, что он работает не через D-Bus, а через какой-то свой сокет, либо через kdbus. Я так понял, что это внутренняя шина, и лучше ей не пользоваться. Короче, что правильно использовать, D-Bus, system(), или может есть какие-то другие пути?

В целях самообразования интересно также, есть ли какой-то подобный интерфейс у upstart?

UPD. DBus интерфейс для Upstart тоже есть, и более того, он является предпочитаемым с точки зрения разработчиков Upstart.

 , , ,

Kiborg
()

Запись в anonymous pipe - перенаправление stdin программы, запущенной в другой сессии

Всем привет. Есть следующая ситуация: mercurial при коммите требует ввода текстового сообщения. TortoiseHG в некоторых случаях для этих целей открывает в редакторе (sensible-editor) временный текстовый файл, который после закрытия пользователем используется в качестве источника сообщения. Все было бы, вероятно, хорошо, если бы этим редактором не оказался vim. Он открылся в каком-то своем shell, доступа к которому из графической среды, естественно, нет. А коммит блокируется, пока не закрыт vim.

Хотел сделать echo ':wq' > /proc/PID/fd/0, но говорят permission denied, даже из-под рута. ls -l говорит, что 0 -> pipe[60898].

Собственно, вопрос: куда писать :q!, чтобы выйти из vim? Спортлото не предлагать.

P. S. вим просто прибил в итоге, так было быстрее и проще, но thg прибилось вместе с ним.

 , , ,

Kiborg
()

Doom для Android с возможностью использовать оригинальные ресурсы

Компания Eltechs представила игру Doom для смартфонов и планшетов под управлением ОС Android. Это не первый порт знакомой многим игры под мобильные устройства, однако он отличается возможностью использовать ресурсы игры из оригинальной версии для PC.

Для использования оригинальных ресурсов игры нужно скопировать их (*.wad) в каталог /Android/data/com.eltechs.originaldoom/ устройства, сделав перед этим резервное копирование содержимого этого каталога.

Компания Eltechs занимается разработкой системы, благодаря которой возможен запуск на процессорах ARM программ, скомпилированных для процессоров семейства x86. В данном случае за основу взята версия игры для ОС Linux (x86), запускаемая через транслятор. Игра является демонстрацией возможностей такой системы.

Подробности

Перемещено mono из games

 ,

Kiborg
()

Мессенджеры + vk

Сабж, кто чем пользуется? Вроде бы кто-то хотел напейсать что-нибудь взамен xmpp под pidgin, есть успехи?

P. S. да-да, вконтакт не нужен и т. д. и т. п., не забудьте пометить вашими «не нужно» другие треды, ведь лору срочно требуется ваше мнение.

P. P. S. Есть наколенное поделие в сорцах, которое нужно еще заметно допилить (или вообще переписать). Умеет аватарки, текстовые статусы, показывать «мобильные клиенты», отправлять и получать сообщения, обновлять появившихся в сети и вышедших.

Перемещено mono из development

 ,

Kiborg
()

Samba + AD, подключение к ресурсам без указания домена

Есть домен Active Directory, есть Samba 3.6.18, настроенная как сервер в составе этого домена. Нужно разрешить пользователям подключаться к ресурсам, даже если пользователь заходит с компьютера, не введенного в домен.

Конфиг самбы:

[global]
	dos charset = 866
	workgroup = DOMAIN
	realm = DOMAIN
	server string = %h server (Samba)
	security = ADS
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	name resolve order = wins bcast
	load printers = No
	disable spoolss = Yes
	show add printer wizard = No
	dns proxy = No
	panic action = /usr/share/samba/panic-action %d
	template homedir = /data/samba/%U
;	winbind use default domain = Yes
;	map untrusted to domain = Yes
	idmap config DOMAIN : range = 10000-200000
	idmap config DOMAIN : backend = tdb
	idmap config * : range = 9000-9999
	idmap config * : backend = tdb

[Public]
	comment = Fileshare
	path = /pub
	valid users = @DOMAIN\smbusers
	read list = @DOMAIN\smbusers
	write list = @DOMAIN\smbusers
	read only = No
	create mask = 0777

Закомментированные опции пробовал раскомментировать в разных комбинациях, эффекта 0. Вроде бы на поведение при аутентификации должны влиять именно они. В частности, при включенной опции «winbind use default domain» удалось логиниться в систему по имени доменного пользователя, если еще указать «template shell = /bin/bash». Но к ресурсам все равно не пускает, логи такие:

1) map untrusted to domain = no =>

"check_ntlm_password: sam authentication for user [ user ] FAILED with error NT_STATUS_NO_SUCH_USER
Not using winbind, requested domain [SRV] was for this SAM.

2) map untrusted to domain = yes =>

Got user=[ user ] domain=[WORKGROUP] workstation=[CLIENT] len1=24 len2=128
Mapping user [WORKGROUP]\[ user ] from workstation [CLIENT]
Mapped domain from [WORKGROUP] to [DOMAIN] for user [ user ] from workstation [CLIENT]
check_ntlm_password: winbind authentication for user [ user ] FAILED with error NT_STATUS_NO_SUCH_USER"

При этом:

user@kiborg:~$ smbclient //srv/Public -U DOMAIN\\user
Enter DOMAIN\user's password: 
Domain=[DOMAIN] OS=[Unix] Server=[Samba 3.6.18]
smb: \> quit
user@kiborg:~$ smbclient //srv/Public -U user
Enter user's password: 
session setup failed: NT_STATUS_LOGON_FAILURE
... в обоих случаях.

wbinfo -u и wbinfo -g всё что нужно показывают, net ads info тоже работает нормально. Что интересно: wbinfo -a user проходит plaintext проверку пароля, а вот challenge-response проходит только если запустить через sudo. wbinfo -a DOMAIN\\user проходит проверку в обоих случаях всегда.

Какие есть идеи?

А, забыл еще. Почему-то «getent passwd» не показывает пользователей из домена, хотя «getent passwd user» показывает инфу о доменном пользователе user. Та же фигня с «getent group».

 ,

Kiborg
()

include «other_code.cpp» посреди кода

Что бы вы подумали, если бы читая код, написанный другим разработчиком, увидели следующее:

#include <*.h> куча инклудов, как всегда
...
blablabla
// классы-функции, вся фигня

#include <other_code.cpp>

// и дальше тоже какие-то куски кода

?

Причем в other_code.cpp нет никаких инклудов, это просто кусок кода вынесен отдельно.

В связи с этим, кстати, второй вопрос: как грамотно вынести кусок громоздкого файла в другой файл, если хочется просто разделить один сиплюсплюсный исходник на два? Ну, например, допустим что есть класс, надо его реализацию сделать не в одном файле, а в двух, часть функций-членов в одном файле, часть — в другом. Эти файлы ведь нельзя будет собирать по очереди, так как в одном не будет одной половины методов, в другом — другой.

P. S.: Модераторам: первый вопрос все-таки нетехнический, поэтому поместил в Talks. Если ошибся — перенесите в правильное место.

Перемещено mono из talks

 , оформление кода

Kiborg
()

Cron и несуществующие/неисполняемые команды

Дано: в кронтабе пользователя user содержится строка вида (для примера)

MAILTO=""
* * * * * abcdef

Так как программы с именем abcdef в $PATH не содержится, то запуск, естественно, оказывается неудачным. Однако в логах содержится только запись

Jab 1 12:00:01 host CRON[00000]: (user) CMD (abcdef)
Никаких сообщений о том, что код возврата не равен 0, нет. Разбираться с почтой не хочется, а кроме того, поскольку вывод команды пустой, есть подозрение, что сообщение отправлено не будет.

Что делать?

 ,

Kiborg
()

VLAN в DIR-320NRU

Настроил в веб-интерфейсе роутера DIR-320 NRU на вкладке «VLAN» два ... эээ .. ну в общем в их терминологии один «прозрачный» VLAN с тэгом 2 из вай-фая (untagged) и порта 5 (tagged) (он на корпусе помечен «WAN») и еще один «локальный» vlan (т. е. без tagged порта) из портов 1-5. Для тестов перенес 3 порт из второй группы в первую. На этом порту включается машина и пытается получить адрес по DHCP. Другой машиной смотрю, что ходит по сети.

Видно, что tagged пакеты, приходящие на 5 порт, не обрабатываются vlan, т. е. роутер считает что они приходят на (физический) eth2.5, а не на (созданный vconfig-ом) eth2.5.2. Доступ по телнету есть, что можно попробовать сделать, чтобы пакеты на 5 порту если tagged, отправлялись на eth2.5.2, если нет - попадали в eth2.5?

На линуксовой машине сделал виртуальный vlan-интерфейс поверх физического - работает отлично.

 ,

Kiborg
()

Флэш vs флеш

Написание слова flash русскими буквами как «флеш» транслитерируется обратно в латиницу как «flesh» -> «плоть, мясо». Фраза «у меня флеш отключен» встречается на лоре в каждом первом треде про браузеры. Что думают профессиональные лингвисты лора по этому поводу? Может я не прав, и надо везде писать «флеш»? Меня лично такое написание немного коробит, потому как я знаю перевод слова flesh на русский.

 

Kiborg
()

Показ удаленных комментариев в многостраничных тредах

Еще выловил кое-что, не пойму только баг или нет. Сразу скажу, что у меня количество комментариев на одну страницу 150 (мало ли, с чем глюк связан).

Когда я захожу в многостраничный тред и нажимаю кнопку «показать удаленные комментарии», происходит следующее: страница перезагружается, и я вижу на ней сразу все комментарии треда (включая удаленные). При этом я также вижу внизу под комментариями счетчик страниц, установленный на первой. Кликнуть на цифре 1 нельзя, а при клике на любой другой номер счетчика я попадаю на страницу с этим номером, ну и там я просто вижу сообщения этой страницы (без удаленных).

Подозреваю, что это таки баг, и на самом деле либо эта простыня должна быть разбита на страницы, по которым можно перемещаться (было бы удобнее, на мой взгляд, но тогда надо как-то отменять режим «показывать удаленные комментарии» => еще одна кнопка?), либо надо pager снизу убрать.

В связи с этим предлагаю такую фичу: если пользователь однажды нажал кнопку (которую можно было бы переделать в галочку) «показывать удаленные комментарии», то для текущего треда этот режим сохраняется до явной отмены (нажатия кнопки «скрыть удаленные» или снятия галки).

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

 ,

Kiborg
()

Неправильная ссылка на Wiki в трекере

Так должна выглядеть ссылка (так она выглядит в строке браузера):

http://www.linux.org.ru/wiki/en/Установка+Debian+через+другой+GNU/Linux+(debootstrap)
(ссылка номер 1)
GNU/Linux

В файрфоксе довольно странно организована работа с адресами, и если его копировать сюда из адресной строки полностью (ctrl+a, ctrl+c), получится вот что:

http://www.linux.org.ru/wiki/en/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0+Ubuntu+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9+GNU%2FLinux+%28debootstrap%29

(Если же копировать только кусок адреса с русскими буквами, будет скопировано нормально, без процентов и т. п.)

А вот какой адрес получается в строке при переходе из трекера:

http://www.linux.org.ru/wiki/en/Установка+Debian+через+другой+GNU%2FLinux+(debootstrap)
(ссылка номер 2)
GNU%2FLinux

Он же, но полученный копипастингом адреса целиком:

http://www.linux.org.ru/wiki/en/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0+Debian+%D1%87%D0%B5%D1%80%D0%B5%D0%B7+%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B9+GNU/Linux+%28debootstrap%29

При переходе по ссылке номер 2 браузер показывает белый экран, а не 404 или что-нибудь еще (исходный код страницы пустой).

Браузер Firefox 13.

Kiborg
()

Использование const в аргументах функции в сях

Такой вопрос: в чем принципиальная разница между

void func(int arg)
и
void func(const int arg)
? Ведь во втором случае, получается, единственное чего нельзя делать - это использовать arg в качестве изменяемой локальной переменной. Но все равно ведь можно сделать так:
void func(const int arg) {
    int arg_local = arg;
    arg_local++;
    ...
}

Была мысль, что в первом случае нельзя сделать такой вызов:

func(5)
то есть подать на вход константу. Но gcc даже warning-ов не выдает. Так все же: имеет ли какой-то смысл использование const для стандартных типов в аргументах функции при передаче по значению (т. е. без использования указателей)?

Kiborg
()

Сотни тысяч машин под управлением Mac OS подхватили троян

По сообщениям производителя антивирусных программ Dr. Web, более 500 000 компьютеров под управлением Mac OS X оказались под контролем трояна с названием BackDoor.Flashback.39, который запускается при помощи Java-скрипта с инфицированных сайтов и представляет собой апплет Java, содержащий эксплоит Java-машины. Этот апплет исполняет инструкции, получаемые с удаленных серверов, которые перед этим должны выдать подписанное RSA сообщение.

«3 апреля Apple выпустила обновление для устранения уязвимости Java, которую использует троян. Ars Technica отмечает, что разработчик Java Oracle закрыл аналогичную уязвимость на Linux и Windows в середине февраля. » (http://lenta.ru/news/2012/04/05/flashback/)

Троян с именем BackDoor.Flashback.39 известен достаточно давно (по крайней мере с февраля 2012 года) и эта версия является его модификацией.

Подробности

Перемещено tazhate из security

Kiborg
()

Софт для мониторинга процессов

В общем, по-моему угадал с форумом, хотя не уверен.

Есть несколько серверов, на которых должны запускаться какие-то процессы, работающие с данными. Т. е. на машину в определенную папку по NFS или самбе или как-то еще заливаются файлы, а в кроне (или каким-то другим способом) запускается процесс, который что-то с этими данными должен делать (например, распаковать архив, и разные файлы из него отправить в разные места, или добавить запись в БД или что-то еще).

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

Процессы-обработчики будут писаться самостоятельно, так что вопрос «пересобрать с такой-то либой» или жестко прибитых гвоздями кодов возврата не стоит.

Спасибо.

Kiborg
()

[SOPA][ен.википедия]просмотр страниц

А все заметили, что на англопедии в честь принятия сопы не отключили сервера, и даже не сделали редирект, а просто замаскировали страницы стилями display: none и картинкой с текстом? Почему так? Неужели это проще, чем временно настроить редирект? За полчаса, думаю, знающие люди смогут написать плагин для огнелиса (скрипт для greasemonkey, например) и не отказывать себе в англоязычных статьях.

Kiborg
()

RSS подписка на новые темы