2010-09-26

Question of the day

вопрос 1:
пользователь с интервалом в 10 минут выполняет 3 команды с использованием sudo. сколько раз пользователю придется ввести свой пароль?

ответ:
при установках по-умолчанию - 1 раз.


вопрос 2:
сколько времени sudo позволит пользователю не вводить свой пароль при повторном вызове?

ответ:
при установках по-умолчанию, пользователю позволено не вводить свой повторно в течении 15 минут с последнего вызова sudo (man sudoers /timestamp_timeout)


вопрос 3:
как можно продлить срок беспарольного вызова sudo или сбросить его что б следующая команда потребовала повторный ввод пароля?

ответ:
sudo -v продляет срок на еще один интервал(15 минут)
sudo -k сбрасывает срок

Question of the day

вопрос:

дано имя файла(возможно исполняемого, возможно конфига, возможно произвольного). необходимо определить какому пакету он принадлежит, и установить этот пакет.

ответ:
для примера рассмотрим поиск пакета которому принадлежит мега-утилита users-admin (у нас не установлен gnome, и соответственно данной утилиты нет).


если пакет установлен, то нам поможет dpkg -S:



# dpkg -S users-admin

dpkg: *users-admin* not found.

мы видим что пакет действительно не установлен :)



можно воспользоваться утилитой apt-file, например что бы узнать какому пакету принадлежит файл:




# apt-get install apt-file
# apt-file update
# apt-file search users-admin
gnome-system-tools: /usr/bin/users-admin
...



если искомый файл - исполняемый, то можно воспользоваться услугой пакета command-not-found:


# apt-get install command-not-found
# bash
# users-admin
The program 'users-admin' is currently not installed. You can install it by typing:
apt-get install gnome-system-tools



2010-09-24

Question of the day

вопрос:

какие поля заголовка IPv4 НЕ защищаются от модификаций контрольными суммами(ICV) заголовка AH?

ответ:
согласно RFC2402, следующие поля заголовка IPv4 не должны учитываться при создании ICV: TOS, Flags, Fragment Offset, TTL, Checksum, а также другие дополнительные опциональные поля для которых должно быть явно определено поведение AH.

2010-09-18

Question of the day

вопрос:
как посмотреть последние успешные попытки входа в систему?
безуспешные попытки входа?
последний вход в систему конкретного пользователя?

ответ:
1) last
2) lastb
3) lastlog

Question of the day

вопрос:
что значит второе поле в /etc/passwd, и какие допустимые его значения?

ответ:
второе поле /etc/passwd - пароль.
если значение "x" - пароль задан в /etc/shadow
если значение пустая строка - пустой пароль, и возможен вход без пароля (см. pam_unix nullok)
иначе - поле содержит шифрованый пароль (см. /etc/login.defs ENCRYPT_METHOD)
если задать там значение отличное от "x", от пустой строки, и недопустимое для указанного в login.defs алгоритма шифрования, то пользователь зайти не сможет :)

2010-09-17

как в ubuntu lucid вернуть работоспособный chromium

проблема:

  • chromium 6.0 и старше приблизительно на 30% больше тормозит (это конечно субъективно, но после обновления при открытом хромиуме LA не падает ниже 2х, раньше было в районе 1)
  • теперь URL не содержит протокол, т.е. вместо http://www.google.com просто www.google.com (я принципиально против такого дурацкого подхода что "протокол пугает пользователей")
  • теперь tab pinning ничего не дает, табы не являются перманентными (тот факт что у pinned таба не отображается заголовок херня а не фича), т.е. без проблем закрываются (в т.ч. случайно)
  • убогие меню (см. шумиху на тему мега-офигезных супер-пальцатых кнопочно-вложено-выложеных гиперь-меню в хроме)
решение:
1) откатываем до версии 5.0:
# apt-get install 'chromium-browser=5.0*' 'chromium-browser-inspector=5.0*'

2) делаем pin запрещающий обновление. создаем файл /etc/apt/preferences.d/chromium:
Package: chromium-browser
Pin: version 5.0*
Pin-Priority: 1111

Package: chromium-browser-inspector
Pin: version 5.0*
Pin-Priority: 1111

update: не забудьте, что старая версия не сможет работать с сохраненным профилем новой. rm -rf ~/.config/chromium

2010-09-16

Question of the day

вопрос:
может ли isis использовать jumbo-frames?

ответ:
предположительно нет.
если глянуть на формат кадра isis (http://packetlife.net/captures/protocol/isis/), можно обратить внимание что используется инкапсуляция 802.3/802.2/SNAP/ISIS (рисунок)
при этом длина кадра ограничена максимальным значением поля Length (при использовании заголовка 802.2LLC это именно поле length а не type), т.е. 1500 (значения больше могут быть только при использовании поля type)

Question of the day

вопрос:
как выглядит правильная обжимка crossover-кабеля для gigabit ethernet?

ответ:
http://en.wikipedia.org/wiki/Ethernet_crossover_cable#Crossover_cable_pinouts
правда на практике почему-то работают и прямые(auto-mdi-x), и кроссы для 100BASE-TX, и вообще экзотические варианты обжимки :)

Question of the day

вопрос:

бывает ли half-duplex на gigabit ethernet?

ответ:
вариант 1: да, см:
http://en.wikipedia.org/wiki/802.3ab
IEEE 802.3 chapter 40, section 3 page 149


вариант 2: нет:
# show interface status | include Gi0/1
Gi0/1                        connected    1          a-full a-1000 10/100/1000BaseTX
# conf t
(config)#int gi0/1
(config-if)#duplex half

% Duplex cannot be set to half when speed autonegotiation subset contains 1Gbps

SW4(config-if)#speed 1000
SW4(config-if)#duplex half
Gigabit port is restricted to full duplex

2010-09-15

Question of the day

вопрос 1:
дан mac-address 0123.4567.89a0, как (в двоичной форме) будет передаваться этот адрес(например как адрес в поле destination address) при передаче кадра ethernet в сеть?

вопрос 2:
что такое canonical address format? где можно встретить не-canonical формат адреса?

вопрос 3:
что индицирует поле CFI в теге 802.1q?

2010-09-05

[faq] как сделать что б в убунту работало ...

  • сохранялись и загружались правила файрвола
сразу предполагается что файрвол это iptables, а не ubuntu-f*ckingwall(ufw), сносим ufw:
apt-get purge ufw

создаем upstart job, vim /etc/init/iptables.conf:



description "Load and save iptables"

start on runlevel [23]
stop on runlevel [016]

console output

task

post-stop script
    iptables-save > /etc/iptables.conf
    iptables -F
    iptables -X
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
end script

pre-start script
    if test -f /etc/iptables.conf; then
        iptables-restore < /etc/iptables.conf
    else
        iptables -F
        iptables -X
        iptables -P INPUT DROP
        iptables -P FORWARD DROP
        iptables -A INPUT -i lo -j ACCEPT
        iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    fi  
end script
создаем базовую настройку в /etc/iptables/conf (или можно iptables-save >/etc/iptables.conf):



*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:ACCEPT_NEW - [0:0]
:SERVICES - [0:0]
-A INPUT -i lo -j ACCEPT 
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -m conntrack --ctstate NEW -j SERVICES 
-A ACCEPT_NEW -m limit --limit 100/sec -j ACCEPT 
-A ACCEPT_NEW -j DROP 
-A SERVICES -p tcp -m tcp --dport 22 -j ACCEPT_NEW 
-A SERVICES -p tcp -m tcp --dport 21 -j ACCEPT_NEW 
-A SERVICES -p tcp -m tcp --dport 8010 -j ACCEPT_NEW 
COMMIT


  • загружался мой любовно написаный(скопипащенный) конфиг screen'а, а не эта непонятная херь

echo > /etc/screenrc
chattr +i /etc/screenrc
 (опустошаем дебильный убунтушный конфиг, и делаем что б при апгрейде никто его не тронул)


  • загружался мой любовно написаный(скопипащенный) конфиг zsh'а, а не эта непонятная херь, и что б нормально работала история и кнопки навигации/редактирования
rm -rf /etc/zsh
touch /etc/zsh
chattr +i /etc/zsh
 (опустошаем дебильный убунтушный конфиг, и делаем что б при апгрейде никто его не тронул)




  • возвращаем к жизни нетворк менеджер (ошибка 'network management is disabled (C)')
vim /var/lib/NetworkManager/NetworkManager.state
меняем

NetworkingEnabled=false
на
NetworkingEnabled=true

  • ускоряем  работу с сетью/веб (тщетные попытки убунты резолвить dns через хрен знает что)
по-умолчанию убунта пробуем разрешать имена не через dns-сервер прописанный в /etc/resolv.conf, а через avahi-daemon. это приводит к значительным задержкам при открытии сайтов.

update-rc.d -f avahi-daemon remove

  • избавляемся от подлых авто-апдейтов, пользующих без спросу наш драгоценный инет
удаляем любые намеки на автоапдейт из настроек apt:
vim /etc/apt/apt.conf.d/10periodic
для надежности можно удалить сам запуск автоапдейтов из крона (внимание, при апгрейде может без спросу вернуться)
rm /etc/cron.daily/99apt