Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Давно я чо-то про Линукс тут не писал. Вот, снова вернулся к этому говну. Около двух недель физически не мог заставить себя сесть и прочитать эту хрень, тупо сидел и занимался какой-нить хернёй и полезного ничего не делал, хотя было чего. Потому что я же должен добить этот ебучий экз, а не хочу. Всё оттягивал, прокрастинировал, вот, наконец, взялся.
Чо мы узнали, шпаргалка.
мудрость вековкоманда newgrp временно, в текущем сеансе, переключает тебя в одну из твоих вторичных групп, делает её как первичную. Все вновь созданные файлы будут принадлежать новой группе. Много раз читал, пропускал мимо ушей, щас вроде заметил.
passwd -l username блокирует учётку путём дорисовки к паролю спереди "!" При этом вход по паролю будет запрещён, а другими способами, если они есть - разрешён. Два !! означает, что порол не установлен.
passwd -u username разлочить обратно
passwd -d username убрать порол
userdel -r --remove username - удалить юзера вместе с его /home каталогом. -f --force = немедленно, даже, если он залогинен, гагага
id username показывает всё, про юзера
groups username показывает, в какие группы он входит
getent (hosts, passwd, shadow, group... etc) key =get entry ищет вхождение key в "базах"
ss похожа на netstat. netstat устарел и в будущем будет заменён командой ip
Ну не пидоры, а? Вот сиди, блядь, учи новый синтаксис этого ёбаного ip. Что тебе это даст? А нихуя, то же, что ты раньше получал netstat-ом. Топтание на месте у них называется развитием, блядь.
варианты сислогов:
syslogd rsyslogd syslog-ng systemd-journald
селектор: facility.severity facility & severity можно перечислять в селекторе через запятую или заменять *. А ещё ставить перед severity ! - это значит текущий уровень и ниже. Сами селекторы можно разделять в одной строке через ;
Куда писать:
@name - на удалённую машину
/path/to/file - в файл
* текстовый вывод в окно всем залогиненным юзерам
Боже, неужели кто-то выучил всю эту хуйню? Как она поможет в жизни? ((
logger прога для записи сообщений в файл, сокет или передачи в syslog
logrotate прога для ротирования логов
/etc/logrotate.conf & /etc/logrotate.d - конф.файлы
/etc/systemd/journald.conf - конф.файл
хранит журналы в /var/log/journal
journalctl - утилита для просмотра журналов. $SYSTEMD_PAGER - переменная для просмортщика
ntpdate устарела, netdate чо-то похожее, рекомендуется юзать ntpd -gq
ntpq -p - проверка серверов
в ntp.conf клиента прописать restrict default ignore чтобы не отвечал на подключения
Управление принтерами. В этой книге как-то совсем скромно оно описано.
-Pимя_очереди В старых BSDшных прогах без пробела, в новых CUPSовских пох, можно и так, и так.
lpr [-P,,,] отправить на печать
lpq [-P,,,] посмотреть задания в очереди
lprm [-P,,,] num удалить задание из очереди
lpc - тоже какая-то хня устаревшая, чо-то там смотрит
cupsenable имя_очереди разлочить очередь
cupsdisable имя_очереди залочить очередь
есть ещё lpstat & lpadmin
cron запускается каждую минуту
юзерские кронтабы не имеют поля юзера, а системный crontab (/etc/crontab) имеет.
Номер дня от 0 до 7, 0 & 7 воскресенье
юзерские кронтабы хранятся в /var/spool/cron/{,tab,crontab}
anacron похож на cron, гарантированно запускает задание в нужный отрезок времени, но не в точное время
файл /etc/anacrontab имеет формат
period delay id command
at использует atd
at HH:MM[AM|PM] | MMDDYY | MM/DD/YY | DD.MM.YY | JAN 3 | now + 2 hours | teatime, noon, midnight
atq - просмотр очереди atrm - удалить задание
at.allow & at.deny если их нет, только root может юзать at
batch похожа на at, но запускает задание в минуты простоя системы
IPv4 & IPv6
IPv6 SLAAC Stateless Address Autoconfiguration типа APIPA в IPv4
IPv4 4байт адрес IPv6 16байт адрес, может включать в себя MAC
IPv4 использует ARP, а IPv6 NDP - Neighbour Discovery Protocol
Как читать IPv6 адреса. Адрес состоит из 8 групп, разделённых двоеточиями - по 2 байта в каждой или 4 шестнадцатеричных цифры. То есть, в адресе могут быть буквы только от a до f. Если одна или несколько смежных групп состоит полностью из нулей 0000, то их можно опустить и написать :: Делать такое можно только 1 раз в каждом адресе. Ведущие нули в каждой группе тоже отбрасываются. Таким образом
fe80::10a0::1 - это хуйня
fe80:10a0::1 - а это адрес
loopback ::1
fe80::/10 - автоматически настраиваемые адреса (link local
fec-fef:: - адреса для частных сетей (не маршрутизируются в тырнете)
через % в конце может дописываться имя тырфейса: fe80::1%eth0
IPv6 не поддерживает широковещание, вместо него применяется мультикаст
.example .invalid .localhost .test - зарезервированы для всяких левых доменных имён.
nslookup dig host. host поддерживает IPv6
67 UDP DHCP
123 UDP NTP
177 UDP X-server login managers XDM, GDM etc
389 TCP LDAP
631 TCP IPP (CUPS)
636 TCP LDAP-SSL
5900+ TCP VNC
6000-6007 TCP X-window system
ping & ping6
traceroute & traceroute6 (адреса local link не маршрутизируются)
tracepath & tracepath6 - бюджетная версия traceroute
netstat -p какие проги используют соединение
netstat -M чо-то там с NAT связанное
просмотр переменных env, set, printenv
alias alias_name='command' назначить алиас
alias alias_name посмотреть, что он значит
unalias alias_name убрать алиас
alias -p список всех алиасов
bind -p список хоткеев в терминале. Редактируется через ~/.inputrc или $INPUTRC Работает токо в текстовом режиме, в эмуляторах терминала не работает.
mailq = sendmail -bp просмотр очереди
sendmail -q = postqueue(postfix) = runq(exim) посыл очереди
/etc/aliases формат
name: address1[,address2[,...]]
где name это учётка в системе, а address1,address2 может быть
1) name2 такая же учётка, куда будет пересылаться почта
2) /file/for/mail файл, куда будет писацца почта (распознаётся по /)
3) |command - на конвеер подаётся почта (распознаётся по |)
4) :include:/path/to/file - файл с алиасами или внешняя учётка [email protected]
после изменения перекомпиливать с помощью команды newaliases (в exim она ничего не делает)
файл ~/.forward для пересылки почты на другой адрес.
inetd устарел, использует TCP-wrapper tcpd, который использует файлы hosts.allow & hosts.deny
конф.файлы inetd /etc/inetd.conf & /etc/inetd.d/*
xinetd более новая штука, имеет встроенный TCP-wrapper
конф.файлы xinetd /etc/xinetd.conf & /etc/xinetd.d/*
VNC шифрует только пароли, остальное передаёт в открытую
ssh может туннелировать внутри себя протоколы. Допустим, на какой-то машине у нас установлен ssh-клиент и IMAP или POP3 клиент (или чо там вы хотите туннелировать). А где-то вдали IMAP или POP3 сервер. ssh-клиент подключается на своей же машине на какой-нибудь порт, например, 1142 и слушает его с помощью следующей команды:
ssh -N -f -L 1142:local.example.com:143 [email protected]
Как только IMAP или POP3 клиент, установленный на этой же машине, подключается на порт 1142, а с чего он будет так делать? А мы ему скажем. Дык вот, как только он туда подключается, ssh-клиент сразу пробрасывает туннель на нужный сервер, а глупый IMAP/POP3 клиент, думает, что это он туда подключился. По крайней мере, для него всё выглядит именно так. Обо всех возможностях OpenSSH отдельная книга написана, ну, бля, они это умеют - мозги засрать. Про docbook/XML/XSLT отдельная книга, про awk тоже, про tcl/expect тоже, токо расслабился, тебе сразу насуют полную библиотеку, жизни не хватит всю эту хрень усвоить. А вы слышали о компьютерщиках-миллионерах? Не, ну, понятно, что Стив Джобс, там, Билл Гейц, дык они не изучали готовое, а писали своё. Да даже те же Торвальдс и Столлман тоже писали своё.
Понятно теперь, откуда ветер дует. Эти пидоры, которые netstat заменяют на ip и прочее в таком же духе, типа, тоже пишут своё и надеются разбогатеть и прославицца.
sshrc - тоже, что и .bashrc - дополнительная штука для ssh логинов. Храницца в /etc или /etc/ssh
gpg - GNU pg
Блядь этот чёртов дайрик куда-то похерил приличный кусок текста, хотя этот ёбаный черновик сохраняется каждые две минуты. Сохранялся раньше по крайней мере. Ну и какого хуя, куда всё делось?
gpg - GNU pg (www.gnupg.org) - свободная версия PGP. То есть, что интересно. Чувак напрягался, писал своё PGP, и как только начал его продавать, какие-то пидрилы, хуяк, переписали его изделие с таким же функционалом и раздают его бесплатно. Ну не пиздец ли? Я бы обосрался, вот честно. Даже не знаю, как это описать. Вот представьте, вы решили продавать пирожки около метро. Сделали несколько опытных партий пирожков, выяснили опытным путём, что там ходит одно быдло и предпочитает жрать беляши с мясом, а всякие веганские штуки типа капусты ваще не котирует. Съездили, закупились, значит, мясом, мукой, нахуярили пирожков, и тут вдруг видите, что какой-то еблан напротив напёк точно таких же пирожков и раздаёт их бесплатно! Он даже бля никогда и не додумается, что тут с капустой не пойдут - он просто сделал точно такие как у вас. Ну нормально, не? Ладно, короче.
gpg --gen-key генерим ключ, и он помещается в keyring-файл в каталоге ~/.gnupg. keyring это типа такой файл для хранения ключей я так понял.
gpg --export name > gpg.pub экспортируем из нашего keyring открытый ключ. Ключей там много, у них есть имена, поэтому надо называть по имени, что именно экспортировать.
gpg --keyserver pgp.ex.com --send-keys [email protected] - засылаем на сервер ключей свой откр.ключ
gpg --keyserver pgp.ex.com --recv-keys [email protected] - получаем с сервака чей-то откр.ключ
gpg --import filename
gpg --list-keys - распечатать список хранящихся у нас ключей.
gpg --gen-revoke [email protected] отзыв ключа. Генерим файл отзыва ключа. Он распечатывается на экран, мы его в файл revocation.gpg, после чего импортируем этот отзыв в наш keyring
gpg --import revocation.gpg - импортируем, вот
gpg --keyserver pgp.mit.edu --send-keys [email protected] теперь, если у нас на каких-то серверах хранился этот ключ, надо разослать им отозванную версию - дать знать, что типа ключ теперь недействителен.
gpg --out encrypted-file --recipient uid --armor --encrypt original-file - так мы шифруем файл с помощью ключа. Шифровать надо с помощью открытого ключа того, кому посылаешь. (А ещё можно с помощью своего закрытого, например. Но тогда это сможет прочитать кто угодно, т.к. расшифрует твоим открытым, который общедоступный. А если шифруешь чужим открытым, расшифровать можно только чужим закрытым, который есть только у адресата, во как всё хитро)
gpg --out decrypted-file --decrypt encrypted-file расшифровываем
gpg --clearsign original-file подписываем, что это типа точно послание от нас
gpg --sign original-file подписываем и зашифровываем
gpg --verify received-file - проверяем. gpg сам как-то подбирает нужный ключ
Вот такой пиздец.
Чо мы узнали, шпаргалка.
мудрость вековкоманда newgrp временно, в текущем сеансе, переключает тебя в одну из твоих вторичных групп, делает её как первичную. Все вновь созданные файлы будут принадлежать новой группе. Много раз читал, пропускал мимо ушей, щас вроде заметил.
passwd -l username блокирует учётку путём дорисовки к паролю спереди "!" При этом вход по паролю будет запрещён, а другими способами, если они есть - разрешён. Два !! означает, что порол не установлен.
passwd -u username разлочить обратно
passwd -d username убрать порол
userdel -r --remove username - удалить юзера вместе с его /home каталогом. -f --force = немедленно, даже, если он залогинен, гагага
id username показывает всё, про юзера
groups username показывает, в какие группы он входит
getent (hosts, passwd, shadow, group... etc) key =get entry ищет вхождение key в "базах"
ss похожа на netstat. netstat устарел и в будущем будет заменён командой ip
Ну не пидоры, а? Вот сиди, блядь, учи новый синтаксис этого ёбаного ip. Что тебе это даст? А нихуя, то же, что ты раньше получал netstat-ом. Топтание на месте у них называется развитием, блядь.
варианты сислогов:
syslogd rsyslogd syslog-ng systemd-journald
селектор: facility.severity facility & severity можно перечислять в селекторе через запятую или заменять *. А ещё ставить перед severity ! - это значит текущий уровень и ниже. Сами селекторы можно разделять в одной строке через ;
Куда писать:
@name - на удалённую машину
/path/to/file - в файл
* текстовый вывод в окно всем залогиненным юзерам
Боже, неужели кто-то выучил всю эту хуйню? Как она поможет в жизни? ((
logger прога для записи сообщений в файл, сокет или передачи в syslog
logrotate прога для ротирования логов
/etc/logrotate.conf & /etc/logrotate.d - конф.файлы
/etc/systemd/journald.conf - конф.файл
хранит журналы в /var/log/journal
journalctl - утилита для просмотра журналов. $SYSTEMD_PAGER - переменная для просмортщика
ntpdate устарела, netdate чо-то похожее, рекомендуется юзать ntpd -gq
ntpq -p - проверка серверов
в ntp.conf клиента прописать restrict default ignore чтобы не отвечал на подключения
Управление принтерами. В этой книге как-то совсем скромно оно описано.
-Pимя_очереди В старых BSDшных прогах без пробела, в новых CUPSовских пох, можно и так, и так.
lpr [-P,,,] отправить на печать
lpq [-P,,,] посмотреть задания в очереди
lprm [-P,,,] num удалить задание из очереди
lpc - тоже какая-то хня устаревшая, чо-то там смотрит
cupsenable имя_очереди разлочить очередь
cupsdisable имя_очереди залочить очередь
есть ещё lpstat & lpadmin
cron запускается каждую минуту
юзерские кронтабы не имеют поля юзера, а системный crontab (/etc/crontab) имеет.
Номер дня от 0 до 7, 0 & 7 воскресенье
юзерские кронтабы хранятся в /var/spool/cron/{,tab,crontab}
anacron похож на cron, гарантированно запускает задание в нужный отрезок времени, но не в точное время
файл /etc/anacrontab имеет формат
period delay id command
at использует atd
at HH:MM[AM|PM] | MMDDYY | MM/DD/YY | DD.MM.YY | JAN 3 | now + 2 hours | teatime, noon, midnight
atq - просмотр очереди atrm - удалить задание
at.allow & at.deny если их нет, только root может юзать at
batch похожа на at, но запускает задание в минуты простоя системы
IPv4 & IPv6
IPv6 SLAAC Stateless Address Autoconfiguration типа APIPA в IPv4
IPv4 4байт адрес IPv6 16байт адрес, может включать в себя MAC
IPv4 использует ARP, а IPv6 NDP - Neighbour Discovery Protocol
Как читать IPv6 адреса. Адрес состоит из 8 групп, разделённых двоеточиями - по 2 байта в каждой или 4 шестнадцатеричных цифры. То есть, в адресе могут быть буквы только от a до f. Если одна или несколько смежных групп состоит полностью из нулей 0000, то их можно опустить и написать :: Делать такое можно только 1 раз в каждом адресе. Ведущие нули в каждой группе тоже отбрасываются. Таким образом
fe80::10a0::1 - это хуйня
fe80:10a0::1 - а это адрес
loopback ::1
fe80::/10 - автоматически настраиваемые адреса (link local
fec-fef:: - адреса для частных сетей (не маршрутизируются в тырнете)
через % в конце может дописываться имя тырфейса: fe80::1%eth0
IPv6 не поддерживает широковещание, вместо него применяется мультикаст
.example .invalid .localhost .test - зарезервированы для всяких левых доменных имён.
nslookup dig host. host поддерживает IPv6
67 UDP DHCP
123 UDP NTP
177 UDP X-server login managers XDM, GDM etc
389 TCP LDAP
631 TCP IPP (CUPS)
636 TCP LDAP-SSL
5900+ TCP VNC
6000-6007 TCP X-window system
ping & ping6
traceroute & traceroute6 (адреса local link не маршрутизируются)
tracepath & tracepath6 - бюджетная версия traceroute
netstat -p какие проги используют соединение
netstat -M чо-то там с NAT связанное
просмотр переменных env, set, printenv
alias alias_name='command' назначить алиас
alias alias_name посмотреть, что он значит
unalias alias_name убрать алиас
alias -p список всех алиасов
bind -p список хоткеев в терминале. Редактируется через ~/.inputrc или $INPUTRC Работает токо в текстовом режиме, в эмуляторах терминала не работает.
mailq = sendmail -bp просмотр очереди
sendmail -q = postqueue(postfix) = runq(exim) посыл очереди
/etc/aliases формат
name: address1[,address2[,...]]
где name это учётка в системе, а address1,address2 может быть
1) name2 такая же учётка, куда будет пересылаться почта
2) /file/for/mail файл, куда будет писацца почта (распознаётся по /)
3) |command - на конвеер подаётся почта (распознаётся по |)
4) :include:/path/to/file - файл с алиасами или внешняя учётка [email protected]
после изменения перекомпиливать с помощью команды newaliases (в exim она ничего не делает)
файл ~/.forward для пересылки почты на другой адрес.
inetd устарел, использует TCP-wrapper tcpd, который использует файлы hosts.allow & hosts.deny
конф.файлы inetd /etc/inetd.conf & /etc/inetd.d/*
xinetd более новая штука, имеет встроенный TCP-wrapper
конф.файлы xinetd /etc/xinetd.conf & /etc/xinetd.d/*
VNC шифрует только пароли, остальное передаёт в открытую
ssh может туннелировать внутри себя протоколы. Допустим, на какой-то машине у нас установлен ssh-клиент и IMAP или POP3 клиент (или чо там вы хотите туннелировать). А где-то вдали IMAP или POP3 сервер. ssh-клиент подключается на своей же машине на какой-нибудь порт, например, 1142 и слушает его с помощью следующей команды:
ssh -N -f -L 1142:local.example.com:143 [email protected]
Как только IMAP или POP3 клиент, установленный на этой же машине, подключается на порт 1142, а с чего он будет так делать? А мы ему скажем. Дык вот, как только он туда подключается, ssh-клиент сразу пробрасывает туннель на нужный сервер, а глупый IMAP/POP3 клиент, думает, что это он туда подключился. По крайней мере, для него всё выглядит именно так. Обо всех возможностях OpenSSH отдельная книга написана, ну, бля, они это умеют - мозги засрать. Про docbook/XML/XSLT отдельная книга, про awk тоже, про tcl/expect тоже, токо расслабился, тебе сразу насуют полную библиотеку, жизни не хватит всю эту хрень усвоить. А вы слышали о компьютерщиках-миллионерах? Не, ну, понятно, что Стив Джобс, там, Билл Гейц, дык они не изучали готовое, а писали своё. Да даже те же Торвальдс и Столлман тоже писали своё.
Понятно теперь, откуда ветер дует. Эти пидоры, которые netstat заменяют на ip и прочее в таком же духе, типа, тоже пишут своё и надеются разбогатеть и прославицца.
sshrc - тоже, что и .bashrc - дополнительная штука для ssh логинов. Храницца в /etc или /etc/ssh
gpg - GNU pg
Блядь этот чёртов дайрик куда-то похерил приличный кусок текста, хотя этот ёбаный черновик сохраняется каждые две минуты. Сохранялся раньше по крайней мере. Ну и какого хуя, куда всё делось?
gpg - GNU pg (www.gnupg.org) - свободная версия PGP. То есть, что интересно. Чувак напрягался, писал своё PGP, и как только начал его продавать, какие-то пидрилы, хуяк, переписали его изделие с таким же функционалом и раздают его бесплатно. Ну не пиздец ли? Я бы обосрался, вот честно. Даже не знаю, как это описать. Вот представьте, вы решили продавать пирожки около метро. Сделали несколько опытных партий пирожков, выяснили опытным путём, что там ходит одно быдло и предпочитает жрать беляши с мясом, а всякие веганские штуки типа капусты ваще не котирует. Съездили, закупились, значит, мясом, мукой, нахуярили пирожков, и тут вдруг видите, что какой-то еблан напротив напёк точно таких же пирожков и раздаёт их бесплатно! Он даже бля никогда и не додумается, что тут с капустой не пойдут - он просто сделал точно такие как у вас. Ну нормально, не? Ладно, короче.
gpg --gen-key генерим ключ, и он помещается в keyring-файл в каталоге ~/.gnupg. keyring это типа такой файл для хранения ключей я так понял.
gpg --export name > gpg.pub экспортируем из нашего keyring открытый ключ. Ключей там много, у них есть имена, поэтому надо называть по имени, что именно экспортировать.
gpg --keyserver pgp.ex.com --send-keys [email protected] - засылаем на сервер ключей свой откр.ключ
gpg --keyserver pgp.ex.com --recv-keys [email protected] - получаем с сервака чей-то откр.ключ
gpg --import filename
gpg --list-keys - распечатать список хранящихся у нас ключей.
gpg --gen-revoke [email protected] отзыв ключа. Генерим файл отзыва ключа. Он распечатывается на экран, мы его в файл revocation.gpg, после чего импортируем этот отзыв в наш keyring
gpg --import revocation.gpg - импортируем, вот
gpg --keyserver pgp.mit.edu --send-keys [email protected] теперь, если у нас на каких-то серверах хранился этот ключ, надо разослать им отозванную версию - дать знать, что типа ключ теперь недействителен.
gpg --out encrypted-file --recipient uid --armor --encrypt original-file - так мы шифруем файл с помощью ключа. Шифровать надо с помощью открытого ключа того, кому посылаешь. (А ещё можно с помощью своего закрытого, например. Но тогда это сможет прочитать кто угодно, т.к. расшифрует твоим открытым, который общедоступный. А если шифруешь чужим открытым, расшифровать можно только чужим закрытым, который есть только у адресата, во как всё хитро)
gpg --out decrypted-file --decrypt encrypted-file расшифровываем
gpg --clearsign original-file подписываем, что это типа точно послание от нас
gpg --sign original-file подписываем и зашифровываем
gpg --verify received-file - проверяем. gpg сам как-то подбирает нужный ключ
Вот такой пиздец.