вторник, 3 июня 2014 г.

Настройка печати в Debian и как меня выручил D-Link

Сегодня полдня промучался с настройкой принтера. Надо было распечатать всего пару бумаг, но вот ради них совсем не хотелось ставить драйвер. И в то же время этот принтер, Samsung ML-1860 должен был с успехом работать дома у родителей. Я подумал, что неплохо было бы настроить работу с ним на свежесобранном компьютере, на который несколько дней назад я торжественно водрузил новенький Debian Wheezy 7.5.
Звучит хорошо, но работает намного хуже, чем хотелось бы.
Изначально я просто подключил принтер к компьютеру, понадеявшись на стандартные утилиты. И да, они сработали. Но принтер мигал красным диодом (впрочем, как и сейчас) и ничего не печатал.
Для проверки я удержал сервисную кнопку и он выплюнул свою стандартную бумажку, чем доказал мне свою работоспособность.
Тогда я решил, что дело таки в драйвере и стал читать. Интернеты рассказали мне, что в общем я делал всё правильно, но можно также попробовать установить драйвер, скачав его с сайта производителя.
Сделано.
Однако толку было от этого никакого. Покрутив и повертев, решил написать в поддержку. Там мне посоветовали подключить их репозитории. При этом эта самая поддержка даже не смогла нормально скопировать команды в окно чата. Уж лучше бы ссылку дали. Но, фиг с ними, идиотами.
Когда это не помогло, я спросил: "А тестировали ли этот драйвер на Debian 7.5?" Мне ответили, что не тестировали ни на чём, кроме ubuntu 13.04. С чего они взяли, что это будет работать на всех заявленных у них там дистрибутивах (а это fedora, debian, ubuntu, suse, etc), мне не ясно. Но, как говорится - идиоты.
Пожелав им всего хорошего, пошёл ставить им оценки и писать комментарии и мнение об их работе :-) (Кстати, они даже не удосужились сказать "До свидания" или чего-нибудь подобного.)
Много разного почитав, вспомнил, что у родителей стоит Dir-320, у которого вполне себе есть USB порт, к которому как раз можно подключить принтер. Эврика!
Подключив его, стал искать в сети. Нашёл короткое руководство, которое просто наткнуло меня на нужные мысли. Там совершенно не было сказано по какому адресу мне надо искать сам CUPS. Но всё оказалось просто, как http://127.0.0.1:631/
Там нас, конечно же, попросят залогиниться. Вводим свои админские данные и входим в интерфейс. Без лишних заморочек, строго по шагам, забиваем нужные данные и пользуем принтер всем своим маленьким колхозом :-)
Кстати, меня немало удивило то, что CUPS был создан Apple Inc. Мелочь, а приятно.

среда, 19 марта 2014 г.

Регулирование звука в awesome

Захотелось мне, чтобы звук можно было регулировать не только крутилкой какой-нибудь, которая уже в плеере, или вызывая amixer, но просто понажимав кнопочки, которыми итак всё у меня управляется. И мышь не нужна!
Добавил в rc.lua пару строчек:
    awful.key({ modkey,"Control"  }, "Down",     function () awful.util.spawn_with_shell("amixer -q set Master 5dB- unmute") end),
    awful.key({ modkey,"Control"  }, "Up",     function () awful.util.spawn_with_shell("amixer -q set Master 5dB+ unmute") end),
Теперь всё хорошо и красиво. 90% всех действий выполняются исключительно с клавиатуры и это хорошо.

среда, 19 февраля 2014 г.

Автоматическое выключение linux - машины в определённый день месяца

Встала необходимость сделать так, чтобы в последнюю среду месяца (санитарный день) компьютер выключался самостоятельно несколько раньше, чем обычно. Пошарив немного по руководству cron понял, что вот прямо так сделать никак нельзя. Можно лишь указать промежуток времени особым способом, то есть, можно сказать, что я хочу, чтобы в конце месяца (задаётся числовым промежутком) и если день равен, скажем, среде, выключать в не в 18:00, а в 16:00. Но в этом случае, оно не будет проверять, что оба условия выполняются, а будет делать это если хотя бы одно выполнено.
Поэтому надо было сделать что-то чуть более сложное. В результате, я написал код на питоне. Совсем короткий и простой, но всё же:

import os
import time
from datetime import date
if (31 - date.today().day < 8 and date.today().weekday() == 2):
    os.system('/sbin/poweroff')
quit()
Работает вроде нормально. Добавил задание в cron.

среда, 15 января 2014 г.

Sftp в Linux

Товарищи! Друзья!
На пол срать нельзя!
Для этого есть яма.
Держите жопу прямо.
К чему я это? К тому, что иногда нет никакой возможности защититься от всякого нехорошего барахла. Просто я устал и хочу занести то, что сделал в дневник, чтобы потом было куда подсмотреть.
Значит, задача: организовать sftp - сервер для замены сетевой шары. Так.
Создадим пользователя без хомяка:
 useradd -d /dev/null -M -s /bin/fish user
Ну и пароль ему какой-нибудь придумаем:
passwd user
Это очень круто! Теперь не будет ещё одного гада, который гадит на диск. Но куда-то ему таки надо изливать то, что у него накопилось. Я вообще говоря, так сделал, потому что замучился переносить home. Он отчего-то дико косячил и мне это надоело. Поэтому я просто сделал автоматическое подключение диска и оно заработало, а вот хомяк чего-то никак не хотел. Но это фигня.
Дальше надо создать папку, которую хотим юзануть. Что-нибудь вроде
mkdir /media/diskex/; mkdir /media/diskex/user
Ну и назначим минимальные права. Это будет правильно. Не люблю, когда что-то делается помимо моей воли.
chown -R root:root /media/diskex/user; chmod -R 700 /media/diskex/user; chown -R user:user /media/diskex/user; chmod -R 770 /media/diskex/user
Круть! Теперь надо бы поправить файлик
mcedit /etc/ssh/sshd_config
 И в него уже в конце дописать что-то вроде
Subsystem sftp /usr/lib/openssh/sftp-server
Match user user
ChrootDirectory /media/diskex/
ForceCommand internal-sftp
AllowTcpForwarding no

Match user user2
ChrootDirectory /media/diskex/
ForceCommand internal-sftp
AllowTcpForwarding no

 Здесь, как видно, пользователей может туда ходить два и с разными именами. Если это, конечно, надо и вы создадите ещё и второго пользователя, повторив предыдущие шаги. При этом они никак не смогут лазать в папки, которые им не принадлежат и это тоже очень круто. Только те, что совпадают с их именами. По сути, это их хомяки (для умных /home).
Это всё, безусловно весело и интересно и вы уже поняли, что надо было удалить вот такую фигню:
#Subsystem sftp /usr/lib/openssh/sftp-server
В смысле поставить там решётку, да?
За пояснениями идите на...
(Фуууууф!..)
...идите на этот сайт.
Вот теперь уже всё хорошо и мы можем сделать последний штрих, который в нормальных системах выглядит так:
service ssh restart
Теперь можно радоваться и любоваться результатом. Косяк, конечно есть. И он в том, что люди-то будут видеть чужие хомяки, только войти в них не смогут, а это может породить желание это сделать. Ибо раз закрыто и не пускают, значит что-то скрывают, но вот прямо сейчас я не знаю как можно было бы их скрыть и убрать куда дальше.