понедельник, 26 декабря 2011 г.

Service Desk своими руками

Денис Бобров

Первый вопрос, возникающий у ИТ-руководителя, которому предложили идею процессного подхода к управлению ИТ-инфраструктурой: «Зачем мне нужен ITIL (ITSM, Service Desk, управление инцидентами и т. д.), если у меня и так все хорошо?» Вот каким может быть ответ.


Посмотрим, как обычно происходит управление ИТ-инфраструктурой рядового российского предприятия. Начальнику ИТ-отдела звонит генеральный директор компании и сообщает, например, что у него не работает электронная почта. Руководитель ИТ-подразделения ловит в коридоре технического инженера и отправляет его к директору для восстановления работоспособности почты. К этому моменту секретарь топ-менеджера уже сообщил системному администратору о возникшей проблеме, и тот самоотверженно бросается на помощь. Через считанные минуты в дверях кабинета генерального директора одновременно появляются два запыхавшихся «компьютерщика»… Едва ли такие действия можно назвать эффективным управлением ИТ-инфраструктурой.

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

Сколько это стоит?

Сегодня найдется немало компаний, которые могут помочь в построении службы Service Desk. Квалифицированные консультанты оценят уровень зрелости процессов ITIL на предприятии, разработают для ИТ-департамента план по внедрению того или иного процесса, подберут и настроят оптимальный инструментарий. Однако услуги консультантов не бесплатны. А руководители компаний среднего и малого бизнеса, как правило, не считают ИТ-департамент стратегическим подразделением и, следовательно, неохотно инвестируют средства в ИТ-проекты. Возникает вопрос: как доказать руководству необходимость выделения средств на развертывание службы Service Desk?

Если не удалось с первого раза убедить высшее руководство предприятия в необходимости инвестиций, то все последующие попытки также будут обречены на провал. Доказать инвестиционную привлекательность службы Service Desk практически невозможно, точно так же, как и рассчитать срок возврата инвестиций. Чтобы оценить экономический эффект, потребуются начальные данные, такие как среднее время разрешения одного инцидента, количество инцидентов в день, месяц, год и т. д. Но если в ИТ-департаменте еще не работает служба Service Desk, то как узнать, какое время в среднем тратится на разрешение одного инцидента? Если нет статистики об обращениях пользователей, то где взять информацию о количестве инцидентов? Помимо этого, на практике в первые месяцы работы службы Service Desk время разрешения одного инцидента увеличивается. Сократить его удается не сразу. Следовательно, говорить о положительном экономическом эффекте в первые месяцы работы службы не приходится.

Итак, если не удается построить Service Desk на средства компании, то можно попробовать развернуть службу самостоятельно, без привлечения сторонних консультантов и затрат на специализированное программное обеспечение.

С чего начать?

Многие скажут, что начинать надо с оформления проекта. Однако в случае построения службы Service Desk подобный подход нереализуем. Какие цели проекта следует указать? Какие сроки поставить? Какие риски проекта описать? Практика организаций, в которых работает Service Desk, показывает, что создать идеальную службу невозможно. Она постоянно изменяется и совершенствуется. Поэтому с большой вероятностью описанные грандиозные цели проекта по созданию Service Desk утратят свою актуальность еще в процессе их достижения. А между тем, срок такого проекта может исчисляться годами! Так нужен ли такой проект? С другой стороны, работать без четко описанных целей также невозможно. Необходимо понимать, в каком направлении двигаться и что должно получиться в итоге.

Таким образом, при создании службы Service Desk оптимальный вариант – серия небольших проектов с понятными, осязаемыми краткосрочными целями.

Шаг первый. Фиксируем регламенты

Итак, перейдем к реальным действиям. На первом этапе потребуются всего лишь лист бумаги и ручка. Создание Service Desk начинается с описания регламентов функционирования будущей службы. Даже если есть четкое представление о структуре Service Desk, о ролевых обязанностях сотрудников и о процедурах, по которым будут работать специалисты службы, все равно регламенты необходимо зафиксировать.

Допустим, вы купили новый телевизор. Как часто вы будете пользоваться инструкцией по эксплуатации? Наверное, не очень часто. Тем не менее ни у кого не возникает сомнения в полезности этого документа. То же самое можно сказать об описании функционирования службы Service Desk: оно обычно лежит на полке в одном из кабинетов ИТ-департамента до тех пор, пока не потребуется изменить или усовершенствовать процесс приема и обработки обращений пользователей.

Относительно объема данного документа, его полноты и развернутости четких рекомендаций не существует. Тем не менее нет смысла подробнейшим образом и максимально детально описывать все регламенты службы Service Desk. Документ получится слишком большим и нечитабельным. Однако создавать его излишне кратким также не стоит. В первом варианте документа на один регламент достаточно отвести одну-две страницы.

Какие регламенты и правила функционирования Service Desk следует описать? Однозначных, предельно конкретных советов здесь быть не может. Перечислим лишь наиболее общие из них.

Количество линий поддержки службы Service Desk и распределение ИТ-сотрудников по линиям поддержки. Классика ITIL рекомендует развернуть три линии. К первой линии поддержки могут относиться операторы call-центра, ко второй – администраторы баз данных, системные администраторы, технические специалисты, к третьей – программисты, старшие системные администраторы. Ваши сторонние подрядчики, организации, которые предоставляют вам услуги по сопровождению ПО, провайдеры телекоммуникационных услуг и т. д. также могут быть отнесены к третьей линии поддержки.

Способы приема заявок пользователей. Вариантов достаточно много, начиная от официально оформленной служебной записки в бумажной форме и заканчивая дружеским общением с помощью ICQ. Но в первое время работы службы Service Desk стоит ограничиться одним или двумя способами поступления обращений пользователей. Перечислим наиболее распространенные.

Первый – телефонный звонок пользователя – самый простой и самый эффективный вариант. В этом случае оператор Service Desk имеет возможность успокоить пользователя, если тот чрезмерно взволнован очередным сбоем. Кроме того, в процессе общения с пользователем оператор call-центра может быстро определить причину инцидента и предложить решение. Тем самым запрос будет обработан в самые короткие сроки.

Вторым способом обращений пользователей за поддержкой может быть электронная почта. В этом способе коммуникации с Service Desk есть свои преимущества и недостатки. Далеко не на всех предприятиях пользователи настолько грамотны в области применения ИТ, чтобы с первого раза кратко и понятно описать ситуацию (произошедший сбой). Неточное описание может повлечь за собой долгую переписку между оператором call-центра и пользователем. Результат – увеличение времени решения проблемы. Положительные стороны обращения пользователя в службу Service Desk при помощи электронной почты, разумеется, тоже есть. Например, пользователь направляет электронное письмо с описанием сбоя на определенный адрес. При поступлении нового сообщения в этот почтовый ящик происходит автоматическая регистрация обращения в предварительно настроенной системе службы Service Desk. В этом случае оператор первой линии поддержки не тратит время на регистрацию обращения, а может сразу же приступить к поиску решения инцидента.

Третий способ – корпоративный портал или некий сайт, на котором пользователь может самостоятельно зарегистрировать инцидент. Этот способ обращения пользователя обладает всеми теми же положительными и отрицательными чертами, что и в случае с электронной почтой.

Приоритеты и временные регламенты. Здесь необходимо описать временные рамки и возможные приоритеты обращений пользователей. Например, обращение пользователя в связи с остановкой основного бизнес-приложения, от которого напрямую зависит прибыль компании, должно иметь высший приоритет. А обращению по вопросу сбоя в работе принтера у одного пользователя должен присваиваться низкий приоритет (если, конечно, этот пользователь – не генеральный директор). В зависимости от приоритетов обращений, необходимо указать время реакции. Например, время обработки инцидента с высоким приоритетом на первой линии поддержки не должно превышать 10 минут. Если проблему не удалось ликвидировать, она переводится на вторую линию поддержки, где на ее решение отводится два часа, после чего обращение переводится на третью линию поддержки. На третьей линии инцидент может решаться, например, пять часов. Если в течение и этого времени не удалось восстановить работоспособность, тогда проблема эскалируется на уровень ИТ-менеджера. Существуют более точные, но в то же время и более сложные варианты расчета времени работы над инцидентом.

Каждый сбой в ИТ-инфраструктуре влечет за собой остановку бизнес-процесса одного конкретного специалиста, и/или отдельного отдела, и/или целого предприятия. Следовательно, каждый сбой имеет различные степени влияния. Поломка принтера у одного человека влияет только на бизнес-процессы одного сотрудника предприятия, и то не на все. Если же принтер сетевой, то влияние сбоя усиливается, поскольку сбои в бизнес-процессах затрагивают нескольких сотрудников. Если же остановился сервер обмена сообщениями (например Exchange Server), то сбой, скорее всего, затрагивает большинство подразделений.

При определенном навыке оператор Service Desk может сразу определить степень влияния того или иного сбоя. Например, если принтер остановился в бухгалтерии, то приоритет может быть невысоким. Бухгалтерские отчеты можно распечатать и днем позже (если, конечно, бухгалтерия не печатает отчеты накануне их сдачи в налоговую инспекцию). А остановка принтера, допустим, в главной диспетчерской центрального склада влечет за собой остановку отгрузки товара и, как следствие, убытки для предприятия. Таким образом, имеются два параметра: степень влияния и приоритет обращения. Исходя из этих данных, можно более детально рассчитать сроки прохождения инцидента по линиям поддержки.

Задача на этапе составления документации – определить степени влияния и приоритеты и на их основе рассчитать время разрешения инцидента на первой, второй и третьей линиях поддержки.

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

«Главный регламент». Это не маршрутизация инцидентов и не перечень предоставляемой отчетности. «Главный регламент» – это мотивация ваших сотрудников. По опыту многих организаций и предприятий, которые развертывали службы Service Desk, можно однозначно утверждать: если не будет выстроена система материальной (и нематериальной) мотивации сотрудников, то служба Service Desk никогда не начнет работать эффективно. Необходимо уделить особое внимание этой части документа. Вот несколько рекомендаций, которые помогут в построении грамотной схемы мотивации.

  • Мотивация в большей степени должна быть построена на поощрении сотрудников, а не на наказании. Использовать штрафные санкции допустимо только в крайних случаях, например при нарушении сотрудником установленных регламентов.
  • Материальная мотивация должна быть ощутимой. 5% от оклада специалиста – это пародия на мотивацию.
  • Схема мотивации должна быть проста и понятна каждому сотруднику ИТ-департамента. Пять-шесть параметров, которые используются для расчета премий специалистов, можно считать пределом.

Шаг второй. Обучение

Для того чтобы служба Service Desk начала работать эффективно, недостаточно одной, пусть даже идеальной схемы мотивации сотрудников. Весь штат ИТ-департамента должен знать, а еще лучше – понимать, зачем нужен Service Desk, что такое управление инцидентами и т. д. Для этого необходимо обучить всех сотрудников ИТ-департамента основам ITIL. Затраты при этом будут неизбежны.

Нежелательно обучать специалистов самостоятельно, так как цена неверно понятого описания процесса или термина может оказаться слишком высокой. Наибольший эффект достигается при обучении сотрудников ИТ-отдела профессиональными тренерами. Можно совместить приятное с полезным. К примеру: проведите обучение в выходной день за городом. В этом случае бизнес не останется без поддержки в рабочие дни, а все сотрудники ИТ-департамента приобретут не только полезные знания, но и хорошее настроение. Отказавшись от обучения персонала основам ITIL, можно столкнуться с большой проблемой – саботажем. Выбираться из этой ситуации окажется дороже, чем заранее предотвратить ее, проведя обучение специалистов.

После того как все сотрудники прошли тренинг по основам ITIL/ITSM, следует ознакомить их с регламентами, которые уже составлены. И никак не раньше. Уже с обученными сотрудниками (или с некоторыми из них) можно и нужно проконсультироваться, узнать их мнение, выслушать предложения. Здесь может произойти первая корректировка процесса приема и обработки обращений пользователей.

Шаг третий. Организация call-центра

«Что может быть проще! – скажете вы. – Берем стол, стул, компьютер, телефон, принимаем на работу девушку с приятным голосом. И вот call-центр готов». Однако не все так просто. Существует как минимум два вопроса, которым требуется уделить особое внимание: какими качествами должен обладать оператор и где расположить его рабочее место.

Приятный голос – это далеко не самое главное, чем должен обладать человек, работающий на первой линии поддержки Service Desk. Стрессоустойчивость гораздо важнее для оператора, который в течение одного рабочего дня может несколько десятков раз слышать одну и ту же фразу: «У меня не работает компьютер!» — и при этом обязан всегда одинаково невозмутимо и доброжелательно выяснять у пользователя, что же действительно сломалось. Кроме того, сотрудник первой линии поддержки должен хорошо владеть русским языком. Грубые грамматические и синтаксические ошибки, допущенные оператором при регистрации обращения пользователя, могут неблагоприятно отразиться на понимании сути заявки другими специалистами. Наконец, оператор call-центра должен обладать общими ИТ-знаниями. Комментарии здесь излишни. Очевидно, что оператор, услышав слово «винчестер», должен представлять себе устройство долговременного хранения информации, а не огнестрельное оружие.

Практика показывает, что нахождение первой и третьей линий поддержки в одном помещении крайне негативно сказывается на результатах работы высококвалифицированных специалистов. Резко снижается эффективность системных администраторов. Количество ошибок в программном коде у программистов возрастает в несколько раз! Этот факт обусловлен тем, что сотрудники, работающие на третьей линии поддержки, решают, как правило, нетривиальные задачи, требующие высокой степени сосредоточенности. А как можно сосредоточиться, если рядом каждые десять минут звонит телефон, и оператор отвечает: «Добрый день, отдел ИТ слушает»?

Совсем другая обстановка возникает, если расположить рабочее место оператора call-центра рядом с рабочими местами сотрудников второй линии поддержки. Решение задач второй линии поддержки не требует особой сосредоточенности и, следовательно, общение оператора с пользователями не будет сильно их отвлекать. В то же время тесное общение специалистов первой линии поддержки с сотрудниками второй линии может дать положительные результаты: через некоторое время часть проблем, которые ранее решались на второй линии, смогут устраняться уже на первой. Этим можно улучшить один из главных показателей эффективности Service Desk – сократить среднее время решения проблем.

Шаг четвертый

Когда принципы функционирования службы Service Desk описаны (подготовлена документация), сотрудники знают и понимают основы ITIL/ITSM и определено рабочее место операторов call-центра, стоит задуматься об инструментарии. Для того чтобы контролировать процесс приема и обработки обращений пользователей, необходимо специализированное программное обеспечение. Наиболее распространенным инструментом сегодня является HP OpenView ServiceDesk. Но многие компании не имеют средств на приобретение такого программного обеспечения, да и нужен ли на стартовом этапе инструмент такого высокого уровня? Скорее всего, нет, так как сначала требуется наладить сам процесс приема и обработки обращений пользователей.

Если в штате ИТ-департамента есть хотя бы один программист, то задача построения собственной системы приема и обработки обращений пользователей решается сама собой. Любой программист менее чем за месяц может создать базу данных и подготовить генерацию стандартных отчетов. Если же программиста нет, то можно пойти еще более простым путем: достаточно зайти на сайт http://www.helpdesk.com, где хранится огромный список ссылок на различного рода программное обеспечение для поддержки служб Help Desk, Service Desk и call-центров. Потратив немного времени, можно найти бесплатный и вполне достаточный по набору функций инструментарий. Если и этот вариант не устраивает по каким-либо причинам, то можно, наконец, использовать «подручные» средства – Microsoft Excel и Access. Потратив несколько часов рабочего времени, можно создать свой собственный уникальный инструмент для службы Service Desk.

Первые результаты

Теперь все готово для запуска в работу новой службы Service Desk. Конечно, нужно не забыть оповестить всех пользователей о новой услуге, сообщить единый телефонный номер отдела ИТ, по которому пользователи могут обратиться с любым вопросом.

Каких же результатов стоит ожидать? Если в первый день работы службы на телефон call-центра поступит более одного звонка от пользователей – это достижение. Если в первый месяц работы хотя бы один сотрудник компании скажет, что ему стало удобнее общаться с ИТ-департаментом, – это победа.

Можно выделить две основные проблемы, с которыми придется столкнуться в первое время работы службы Service Desk. Первая заключается в том, что большинство пользователей в первые месяцы будут продолжать «по старинке» звонить системным администраторам, программистам и т. д. Но если система мотивации сотрудников ИТ была выстроена достаточно грамотно и был проведен тренинг по основам ITIL, то об этом можно не беспокоиться. ИТ-руководитель не будет тратить массу своего времени на разъяснительные беседы с пользователями о полезности службы Service Desk. Системный администратор, которому в очередной раз позвонит пользователь, сам объяснит, куда и к кому надо обращаться с вопросами. Причем он найдет такие аргументы, о которых ни один ИТ-менеджер даже не догадывается. Такой путь — приучить пользователей звонить по одному определенному номеру —максимально эффективен.

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

Вторая проблема, с которой придется столкнуться, – увеличение среднего времени обработки одного инцидента. Это плата за те статистические данные по обращениям, которые получит менеджер уже после первого месяца работы службы Service Desk. Увеличение времени решения инцидента, безусловно, будет заметно для пользователей, и именно с этим будут связаны основные негативные эмоции сотрудников предприятия. Ничего особенного в этом нет: служба только-только начала работать, процесс управления инцидентами еще слабо настроен, и сотрудники ИТ не привыкли действовать по новой схеме. Но уже через месяц после запуска Service Desk можно получить данные, из анализа которых видно, где в процессе слабое место, что и как нужно исправить, кто мешает нормальному ходу процесса. Начнется бесконечная настройка и модернизация службы Service Desk. В зависимости от скорости реагирования на выявленные проблемы и неточности в функционировании службы будет сокращаться среднее время решения инцидентов, повышаться удовлетворенность пользователей и т. д.

Пути развития

После того как служба Service Desk начала стабильно работать и прошел период адаптации, после того как улягутся первые страсти пользователей, можно задуматься о том, в каком направлении развиваться дальше. Путей много. Самым очевидным из них является повышение компетенции первой линии поддержки. Сразу после запуска службы первая линия (операторы call-центра) сможет закрывать максимум 20-30% всех регистрируемых инцидентов. Этот результат весьма хорош. Но совершенству нет предела. Развивая компетенцию операторов, обучая их, добавляя им дополнительные права и обязанности, можно повысить процент инцидентов, закрываемых на первой линии поддержки. В этом случае специалисты второй и третьей линий в большей степени смогут посвятить себя сложным и нетривиальным задачам. Второй эффект от увеличения числа инцидентов, закрываемых операторами, проявится в большей удовлетворенности пользователей работой департамента ИТ: та часть вопросов, которая ранее решалась, к примеру, в течение двух-трех часов (время реакции второй линии поддержки), теперь будет решаться за 10-20 минут.

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

Без рисков не обойтись

Конечно, при самостоятельном выстраивании процессного подхода в управлении ИТ-инфраструктурой не исключены риски, связанные с принятием ошибочных решений, что может нарушить сроки построения и настройки процесса управления инцидентами. Эти риски значительно снижаются, если воспользоваться услугами квалифицированных и опытных консультантов. Но какой бы путь вы ни избрали, стоит помнить: основой для любого процесса ITIL является информация, которую можно получить только имея грамотно построенную и работающую службу Service Desk. И именно с построения этой службы следует начинать работу по эффективному управлению ИТ-инфраструктурой предприятия.

Денис Бобров, заместитель руководителя ИТ-департамента ЗАО «Талосто», Bobrov_DA@talosto.ru

http://www.osp.ru

Читать далее...

понедельник, 19 декабря 2011 г.

Тест Лимончелли

32 краеугольных принципа хорошей команды системного администрирования http://www.n-ix.com/ipesin/translations/other/32LimoncelliTest.html
Читать далее...

четверг, 10 ноября 2011 г.

WiFi адаптер на Asus P5G41T-M LX3

Установка и настройка WiFi адаптера Asus USB-N13 на материнку Asus P5G41T-M LX3, ОС Fedora 13
Обновляем Kernel до последней версии:
yum update kernel

Смотрим версию ядра:
uname -a

Устанавливаем драйверы на адаптер беспроводной сети, в частности для Asus USB-N13 (может, конает и для других, хз):
yum install kmod-rt3070 (если ядро, к примеру kernel-2.6.34.9-69.fc13.i686)
либо же
yum install kmod-rt3070-PAE (если ядро kernel-2.6.34.9-69.fc13.i686.PAE)

А вообще, делаем yum search kmod и смотрим доступные пакеты и выбираем тот, который соответствует по версии установленному ядру kernel.
Ну а дальше адаптер после ребута нормально определяется в NetworkManager.

P.S. Сеть ethernet на Fedora 13 и Fedora 14 не определяется автоматом, возможно нужны танцы с бубном для установки дров на сетевуху. Сеть автоматом определилась только в Fedora 15

Читать далее...

четверг, 3 ноября 2011 г.

SAMBA и SELINUX

Confining Samba with SELinux (in Russian)En: As Dan Walsh wrote he started updating the man pages for different confined domains. So, I will update Russian version because now in Fedora 8, Russian man pages are still based on old version of man pages.

Ru: Страницы руководств по сконфигурированным (для которых существует политика SELinux) доменам не обновлялись с 2005 года. Недавно Dan Walsh начал переписывать ряд руководств, приводя описание к современному состоянию политик. Обновленная страница samba_selinux уже в Fedora 7/8. Перевод же в дистрибутиве пока не доступен (точнее, там мой старый перевод на основе старого же оригинала). Новый:

$ man samba_selinux
samba_selinux(8) Samba Selinux Policy documentation samba_selinux(8)

НАЗВАНИЕ
samba_selinux - Защита Samba при помощи SELinux

ОПИСАНИЕ
Security-Enhanced Linux обеспечивает защиту сервера Samba при помощи гибко настраиваемого мандатного контроля доступа. По умолчанию политика SELinux для Samba использует принцип наименьших привилегий. Для настройки того, как SELinux работает с Samba, существует ряд переключателей (booleans) и контекстов файлов.

ОБЩИЙ ДОСТУП К ФАЙЛАМ
SELinux требует наличия у файлов расширенных атрибутов, определяющих тип файла. Политика управляет видом доступа демона к этим файлам. Когда вы предоставляете общий доступ к файлам, у вас есть несколько вариантов как пометить файлы. Если вы хотите предоставить общий доступ к файлам/директориям за пределами домашних или стандартных директорий, этим файлам/директориям необходимо присвоить контекст samba_share_t. Например, при создании специальной директории /var/eng, необходимо установить контекст для этой директории при помощи утилиты chcon.

# chcon -R -t samba_share_t /var/eng

Однако назначенные таким образом метки не сохранятся при выполнении операции обновления меток. Наилучшее решение - сделать эти изменения постоянными. Для этого требуется рассказать системе SELinux об этих изменениях. Команда semanage может изменить назначенный по умолчанию контекст файлов на вашей машине. А команда restorecon прочтет файл file_context и установит описанные контексты для файлов и директорий..

# semange fcontext -a -t samba_share_t ’/var/eng(/.*)?’
# restorecon -R -v /var/eng

ОБЩИЙ ДОСТУП К ДОМАШНИМ ДИРЕКТОРИЯМ
По умолчанию политика SELinux запрещает удаленный доступ к домашним директориям. Если вы настроили эту машину как сервер Samba и желаете предоставить доступ к домашним директориям, вы должны установить переключатель samba_enable_home_dirs.

# setsebool -P samba_enable_home_dirs 1

СОВМЕСТНОЕ ВЛАДЕНИЕ ФАЙЛАМИ
Если вы хотите организовать между несколькими доменами (Apache, FTP, rsync, Samba) совместный доступ к файлам, то вы можете установить контекст файлов в public_content_t и public_content_rw_t. Данный контекст позволяет любому из выше перечисленных демонов читать содержимое. Если вы хотите, чтобы конкретный домен имел право записи в домен public_content_rw_t, вы должны установить соответствующий переключатель allow_ДОМЕН_anon_write. Таким образом, для samba вы должны выполнить:

# semange fcontext -a -t public_content_rw_t ’/var/eng(/.*)?’
# restorecon -R -v /var/eng
# setsebool -P allow_smbd_anon_write 1

ОБЩИЙ ДОСТУП К СИСТЕМНЫМ ФАЙЛАМ
Замечание: Вы не должны применять действия, описанные выше, к стандартным или домашним директориям! Например, директориям, принадлежащим RPM. Если вы хотите сделать /usr доступным через Samba, то изменение контекста этой директории и всех поддиректорий на samba_share_t - плохая идея. Дело в том, что другие сконфигурированные домены не смогут получить доступ на чтение к /usr, что может вызвать катастрофические последствия для машины. Для предоставления общего доступа к стандартным директориям существуют два переключателя (booleans). Если вы хотите предоставить общий доступ только на чтение к любой стандартной директории, вы можете установить переключатель samba_export_all_ro.

# setsebool -P samba_export_all_ro 1

Данный переключатель позволяет Samba прочесть каждый файл в системе. Аналогично, если вы хотите предоставить общий доступ Samba ко всем файлам и директориям в системе, установите samba_export_all_rw

# setsebool -P samba_export_all_rw 1

Этот переключатель позволяет Samba читать и писать каждый файл в вашей системе. Таким образом, в случае компрометации Samba серверу может угрожать серьезная опасность.

ОБЩИЙ ДОСТУП К NFS ФАЙЛАМ
По умолчанию политика SELinux запрещает демонам Samba чтение/запись nfs ресурсов. Если вы используете Samba для предоставления общего доступа к файловым системам NFS, то вам нужно включить переключатель samba_share_nfs

# setsebool -P samba_share_nfs 1

ИСПОЛЬЗОВАНИЕ CIFS/SAMBA ДЛЯ РАЗМЕЩЕНИЯ ДОМАШНИХ ДИРЕКТОРИЙ
Политика SELinux для Samba запрещает любому сконфигурированному приложению доступ к удаленным samba-ресурсам, смонтированным на вашей машине. Если вы хотите использовать удаленный сервер Samba для хранения домашних директорий вашей машины, то необходимо установить переключатель use_samba_home_dirs.

# setsebool -P use_samba_home_dirs 1

СКРИПТЫ SAMBA
Samba можно настроить для исполнения пользовательских скриптов. По умолчанию если вы инсталлируете такие скрипты в /var/lib/samba/scripts, то они будут помечены как samba_unconfined_script_exec_t. Так как эти скрипты могут использоваться для различных действий в системе, вы можете запускать их как несконфигурированные. Но при этом вам необходимо включить переключатель samba_run_unconfined

# setsebool -P samba_run_unconfined 1

Если вы пишете собственную политику, в файле samba.if описан интерфейс, называемый samba_helper_template(APP). Этот интерфейс создает файловый контекст samba_APP_script_exec_t, и домен samba_APP_script_t. Samba запускает скрипт, помеченный samba_app_script_exec_t, в домене samba_APP_script_t. Далее при помощи audit2allow вы можете создать политику для своего скрипта.

ИСПОЛЬЗОВАНИЕ SAMBA В КАЧЕСТВЕ КОНТРОЛЛЕРА ДОМЕНА
Если вы хотите использовать samba как контроллер домена, то есть добавить машины в файл passwd на сервере под управлением Linux, вам нужно включить переключатель samba_domain_controller. Это позволит демону Samba запускать и осуществлять переход в домены утилит passwd, useradd и groupadd. Данные утилиты предназначены для манипуляций базой данных passwd.

УТИЛИТА С ГРАФИЧЕСКИМ ИНТЕРФЕЙСОМ system-config-selinux
Для управления всеми описанными выше контекстами файлов и переключателями SELinux можно использовать утилиту с графическим интерфейсом system-config-selinux.

АВТОРЫ
Эту страницу руководства написал Dan Walsh.
Перевод руководства - Андрей Маркелов, 2007г.

СМОТРИ ТАКЖЕ
selinux(8), semanage(8), samba(7), chcon(1), setsebool(8), restorecon(8),

dwalsh at redhat com 9 Ноября 2007 samba_selinux(8)
(c)

Читать далее...

Настройка SELinux для SAMBA

Confining Samba with SELinux My next few blogs will be taking different confined domains and writing about the types and booleans related to that domain, I will be updating the man pages for these confined domains. And then showing how the policy for the domain works.

samba has had a man page available for some time named samba_selinux, here is my rewrite for Fedora 7/8

> man samba_selinux

samba_selinux(8) Samba Selinux Policy documentation samba_selinux(8)

NAME
samba_selinux - Securing Samba with SELinux

DESCRIPTION
Security-Enhanced Linux secures the Samba server via flexible mandatory access control. SELinux Samba policy defaults to least privilege access. Several Booleans and file contexts are available to customize the way Samba SELinux works.

SHARING FILES
SELinux requires files be labeled with an extended attribute to define the file type. Policy governs the access daemons have to these files. When sharing files with Samba you have many options on how to label the files. If you want to share files/directories other than home directories or standard directory. You should label these files/directories as samba_share_t. For example if you created the directory /var/eng, you can label the directory and its contents with the chcon tool.

# chcon -R -t samba_share_t /var/eng

This label will not survive a relabel. A better solution to make the change permanent, you must tell the SELinux system about the label customization. The semanage command can customize the default file contexts on your machine. restorecon will read the file_context and apply it to the files and directories..

# semanage fcontext -a -t samba_share_t ’/var/eng(/.*)?’
# restorecon -R -v /var/eng

SHARING HOME DIRECTORIES
By default SELinux policy turns off SELinux sharing of home directories If you are setting up this machine as a Samba server and wish to share the home directories, you need to set the samba_enable_home_dirs boolean.

# setsebool -P samba_enable_home_dirs 1

SHARING PUBLIC FILES
If you want to share files with multiple domains (Apache, FTP, rsync, Samba), you can set a file context of public_content_t and public_content_rw_t. These context allow any of the above domains to read
the content. If you want a particular domain to write to the public_content_rw_t domain, you must set the appropriate boolean. allow_DOMAIN_anon_write. So for samba you would execute:

# semanage fcontext -a -t public_content_rw_t ’/var/eng(/.*)?’
# restorecon -R -v /var/eng
# setsebool -P allow_smbd_anon_write 1

SHARING FILES SYSTEM FILES
Note: You should not do the above for standard directories or home directories! For example directories owned by an RPM. If you wanted to share /usr via Samba, changing its context and all of the sub directories to samba_share_t would be a bad idea. Other confined domains would no longer be able to read /usr and this would cause havoc on the machine. There are two booleans that you can set to allow the sharing of standard directories. If you want to share any standard directory read/only you can set the boolean samba_export_all_ro.

# setsebool -P samba_export_all_ro 1

This boolean will allow Samba to read every file on the system.Similarly if you want to share all files and directories via Samba, you set the samba_export_all_rw

# setsebool -P samba_export_all_rw 1

This boolean would allow Samba to read and write every file on your system. So a compromised Samba server would be very dangerous.

SHARING PUBLIC NFS FILES
SELinux prevents the Samba daemons from reading/writing nfs shares by default. If you are using samba to share NFS file systems you need to turn on the samba_share_nfs boolean

# setsebool -P samba_share_nfs 1

USING CIFS/SAMBA HOME DIRECTORIES
Samba SELinux policy will not allow any confined applications to access remote samba shares mounted on your machine. If you want to use a remote Samba server for the home directories on this machine, you must set the use_samba_home_dirs boolean.

# setsebool -P use_samba_home_dirs 1

SAMBA Scripts
Samba can be setup to run user defined scripts, by default if you install these scripts /var/lib/samba/scripts they will be labeled samba_unconfined_script_exec_t. Since these scripts can do just about anything on the system you can run them as unconfined. But you need to turn on the samba_run_unconfined boolean

# setsebool -P samba_run_unconfined 1

If you are willing to write policy an interface exists in samba.if called samba_helper_template(APP). This interface will create a file context of samba_APP_script_exec_t, and a domain of samba_APP_script_t. Samba will transition scripts labeled samba_app_script_exec_t to samba_APP_script_t, you can then user audit2allow to write policy to confine your script.

USING SAMBA AS A DOMAIN CONTROLLER
If you want to run samba as a domain controller, IE Add machines to the passwd file on a Linux box, you need to turn on the samba_domain_controller boolean. This allows the Samba daemon to run and transition to the passwd, useradd, and groupadd utilities. These tools can manipulate the passwd database.

GUI system-config-selinux
system-config-selinux is a GUI tool available to customize all of the SELinux booleans and file context described above.

AUTHOR
This manual page was written by Dan Walsh .

SEE ALSO
selinux(8), semanage(8), samba(7), chcon(1), setsebool(8), restorecon(8),

dwalsh@redhat.com 9 Nov 2007 samba_selinux(8)

(с)

Читать далее...

среда, 26 октября 2011 г.

Тонкая настройка Gnome (мануал, en)

GNOME Display Manager Reference Manual http://library.gnome.org/admin/gdm/stable/configuration.html.en
Читать далее...

понедельник, 3 октября 2011 г.

Не запускается хром

/usr/bin/google-chrome: error while loading shared libraries: cannot restore segment prot after reloc: Permission deniederror while loading shared libraries: [что-нибудь]: cannot restore segment prot after reloc: Permission denied
Эксперементировал с дровами на свою ATI'шную видяху - пока прогресс никакой. Даже регресс. Запускаю mplayer или amarok - выдает сабж (error while loading shared libraries: /usr/lib/xorg/libGL.so.1: cannot restore segment prot after reloc: Permission denied). Решается он, как оказалось, отключением SELinux. А делается это вот так:

setenforce 0
===============================================
Отключение SELinux - не лучший вариант.
Мне помогло следующее:
semanage fcontext -a -t textrel_shlib_t '/opt/google/chrome/chrome'
restorecon -v '/opt/google/chrome/chrome'
grep chrome-sandbox /var/log/audit/audit.log | audit2allow -M mychromesandbox
semodule -i mychromesandbox.pp
===============================================
либо как сказал SEtroubleshoot
#semanage fcontext -a -t textrel_shlib_t '/opt/google/chrome/chrome'
#restorecon -v '/opt/google/chrome/chrome'
#grep chrome /var/log/audit/audit.log | audit2allow -M mypol
#semodule -i mypol.pp
===============================================
типа рабочий вариант:
#semanage fcontext -a -t textrel_shlib_t '/opt/google/chrome/chrome'
#restorecon -v '/opt/google/chrome/chrome'
#chcon -t usr_t /opt/google/chrome/chrome-sandbox

Читать далее...

среда, 31 августа 2011 г.

VNC-Server CentOS

Настройка VNC-Server CentOS
http://wiki.centos.org/HowTos/VNC-Server
http://xgu.ru/wiki/VNC#CentOS_5.5_.2F_RHEL_5.5
Плюс естессно не забываем настроить iptables

Читать далее...

вторник, 30 августа 2011 г.

Munin

Ссылки по настройке Munin
http://eb.net.ua/2010/08/28/ustanovka-munin-pod-centos/
http://hudson.su/2009/05/30/lazy-monitoring-with-munin/
http://root.blogz.name/2008/11/27/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-munin-%D0%BF%D0%BE%D0%B4-centos/
http://webmastak.com.ua/main/16-ustanovka-munin-na-centos.html
http://bezha.od.ua/centos-munin/
http://forum.clodo.ru/index.php/topic/63-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-munin-145-%D0%BD%D0%B0-ubuntu/
http://448dmg.ru/munin-ubuntu-289
http://lanav.ru/computers/603-monitoring-centos-servera.html
http://0pl.ru/ustanovka-i-nastroyka-munin-v-debian/
http://zmej.org.ua/node/77

Читать далее...

вторник, 16 августа 2011 г.

LINUX: Работа в командной строке

LINUX: Работа в командной строке

Из разряда: нужно знать каждому! 8-)

Файлы и директории
cd /home – перейти в директорию ‘/home’
cd …– перейти в директорию уровнем выше
cd …/… – перейти в директорию двумя уровнями выше
cd – перейти в домашнюю директорию
cd ~user – перейти в домашнюю директорию пользователя user
cd – — перейти в директорию, в которой находились до перехода в текущую директорию
pwd – показать текущюю директорию
ls – отобразить содержимое текущей директории
ls -F – отобразить содержимое текущей директории с добавлением к именам символов, храктеризующих тип
ls -l – показать детализированое представление файлов и директорий в текущей директории
ls -a – показать скрытые файлы и директории в текущей директории
ls *[0-9]*– показать файлы и директории содержащие в имени цифры
tree
lstree – показать дерево файлов и директорий, начиная от корня (/)
mkdir dir1– создать директорию с именем ‘dir1′
mkdir dir1 dir2– создать две директории одновременно
mkdir -p /tmp/dir1/dir2– создать дерево директорий
rm -f file1– удалить файл с именем ‘file1′
rmdir dir1 – удалить директорию с именем ‘dir1′
rm -rf dir1– удалить директорию с именем ‘dir1′ и рекурсивно всё её содержимое
rm -rf dir1 dir2 – удалить две директории и рекурсивно их содержимое
mv dir1 new_dir – переименовать или переместить файл или директорию
cp file1 file2 – сопировать файл file1 в файл file2
cp dir/*. – копировать все файлы директории dir в текущую директорию
cp -a /tmp/dir1 .– копировать директорию dir1 со всем содержимым в текущую директорию
cp -a dir1 dir2– копировать директорию dir1 в директорию dir2
ln -s file1 lnk1*– создать символическую ссылку на файл или директорию
ln file1 lnk1– создать «жёсткую» (физическую) ссылку на файл или директорию
touch -t 0712250000 fileditest– модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm)

Поиск файлов
find / -name file1– найти файлы и директории с именем file1. Поиск начать с корня (/)
find / -user user1 – найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/)
find /home/user1 -name «*.bin» – Найти все файлы и директории, имена которых оканчиваются на ‘. bin’. Поиск начать с ‘/ home/user1′*
find /usr/bin -type f -atime +100 – найти все файлы в ‘/usr/bin’, время последнего обращения к которым более 100 дней
find /usr/bin -type f -mtime -10 – найти все файлы в ‘/usr/bin’, созданные или изменённые в течении последних 10 дней
find / -name *.rpm -exec chmod 755 ‘{}’ \;– найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, и изменить права доступа к ним
find / -xdev -name «*.rpm» – найти все фалы и директории, имена которых оканчиваются на ‘.rpm’, игнорируя съёмные носители, такие как cdrom, floppy и т.п.
locate «*.ps» – найти все файлы, сожержащие в имени ‘.ps’. Предварительно рекомендуется выполнить команду ‘updatedb’
whereis halt– показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу ‘halt’
which halt – отображает полный путь к файлу ‘halt’

Системная информация
uname -m – отобразить архитектуру компьютера
uname -r– отобразить используемую версию ядра
dmidecode -q – показать аппаратные системные компоненты – (SMBIOS / DMI)
hdparm -i /dev/hda– вывести характеристики жесткого диска
hdparm -tT /dev/sda– протестировать производительность чтения данных с жесткого диска
cat /proc/cpuinfo – отобразить информацию о процессоре
cat /proc/interrupts– показать прерывания
cat /proc/meminfo– проверить использование памяти
cat /proc/swaps – показать файл(ы) подкачки
cat /proc/version– вывести версию ядра
cat /proc/net/dev– показать сетевые интерфейсы и статистику по ним
cat /proc/mounts – отобразить смонтированные файловые системы
lspci -tv – показать в виде дерева PCI устройства
lsusb -tv – показать в виде дерева USB устройства
date – вывести системную дату
cal 2007 – вывести таблицу-календарь 2007-го года
date 041217002007.00* – установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды)
clock -w– сохранить системное время в BIOS

Монтирование файловых систем
mount /dev/hda2 /mnt/hda2 – монтирует раздел ‘hda2′ в точку монтирования ‘/mnt/hda2′. Убедитесь в наличии директории-точки монтирования ‘/mnt/hda2′
umount /dev/hda2– размонтирует раздел ‘hda2′. Перед выполнением, покиньте ‘/mnt/hda2′
fuser -km /mnt/hda2– принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем
umount -n /mnt/hda2– выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты «только чтение» или недостаточно места на диске
mount /dev/fd0 /mnt/floppy – монтировать флоппи-диск
mount /dev/cdrom /mnt/cdrom– монтировать CD или DVD
mount /dev/hdc /mnt/cdrecorder– монтировать CD-R/CD-RW или DVD-R/DVD-RW (±)
mount -o loop file.iso /mnt/cdrom – смонтировать ISO-образ
mount -t vfat /dev/hda5 /mnt/hda5– монтировать файловую систему Windows FAT32
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share – монтировать сетевую файловую систему Windows (SMB/CIFS)
mount -o bind /home/user/prg /var/ftp/user – «монтирует» директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в «песочнице» (chroot), когда симлинки сделать невозможно. Выполнение данной команды сделает копию содержимого /home/user/prg в /var/ftp/user

Дисковое пространство
df -h – отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах)
ls -lSr |more– выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр
du -sh dir1– подсчитывает и выводит размер, занимаемый директорией ‘dir1′ (Прим.переводчика. ключ -h работает не во всех *nix системах)
du -sk * | sort -rn– отображает размер и имена файлов и директорий, с соритровкой по размеру
rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n – показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.)
dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n– показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.)

Остановка системы
shutdown -h now
init 0
telinit 0 – Остановить систему
shutdown -h hours:minutes &– запланировать остановку системы на указанное время
shutdown -c – отменить запланированную по расписанию остановку системы
shutdown -r now
reboot – перегрузить систему
logout – выйти из системы

Пользователи и группы
groupadd group_name – создать новую группу с именем group_name
groupdel group_name– удалить группу group_name
groupmod -n new_group_name old_group_name- переименовать группу old_group_name в new_group_name
useradd -c «Nome Cognome» -g admin -d /home/user1 -s /bin/bash user1– создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell’а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome
useradd user1– создать пользователя user1
userdel -r user1– удалить пользователя user1 и его домашний каталог
usermod -c «User FTP» -g system -d /ftp/user1 -s /bin/nologin user1 – изменить атрибуты пользователя
passwd – сменить пароль
passwd user1– сменить пароль пользователя user1 (только root)
chage -E 2005-12-31 user1– установить дату окончания действия учётной записи пользователя user1
pwck– проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow
grpck – проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group
newgrp [-] group_name– изменяет первичную группу текущего пользователя. Если указать «-», ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd

Выставление/изменение полномочий на файлы
ls -lh – просмотр полномочий на файлы и директории в текущей директории
ls /tmp | pr -T5 -W$COLUMNS– вывести содержимое директории /tmp и разделить вывод на пять колонок
chmod ugo+rwx directory1 – добавить полномочия на директорию directory1 ugo (User Group Other)+rwx (Read Write eXecute) – всем полные права. Аналогичное можно сделать таким образом chmod 777 directory1
chmod go-rwx directory1 – отобрать у группы и всех остальных все полномочия на директорию directory1.
chown user1 file1 – назначить владельцем файла file1 пользователя user1
chown -R user1 directory1– назначить рекурсивно владельцем директории directory1 пользователя user1
chgrp group1 file1– сменить группу-владельца файла file1 на group1
chown user1:group1 file1– сменить владельца и группу владельца файла file1
find / -perm -u+s – найти, начиная от корня, все файлы с выставленным SUID
chmod u+s /bin/binary_file– назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла.
chmod u-s /bin/binary_file– снять SUID-бит с файла /bin/binary_file.
chmod g+s /home/public– назначить SGID-бит директории /home/public.
chmod g-s /home/public– снять SGID-бит с директории /home/public.
chmod o+t /home/public– назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам
chmod o-t /home/public– снять STIKY-бит с директории /home/public

Специальные атрибуты файлов
chattr +a file1 – позволить открывать файл на запись только в режиме добавления
chattr +c file1 – позволяет ядру автоматически сжимать/разжимать содержимое файла.
chattr +d file1 – указавет утилите dump игнорировать данный файл во время выполнения backup’а
chattr +i file1– делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.
chattr +s file1 – позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных.
chattr +S file1 – указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync
chattr +u file1 – данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить
lsattr – показать атрибуты файлов

Архивирование и сжатие файлов
bunzip2 file1.bz2– разжимает файл ‘file1.gz’
gunzip file1.gz —
gzip file1
bzip2 file1 – сжимает файл ‘file1′
gzip -9 file1 – сжать файл file1 с максимальным сжатием
rar a file1.rar test_file – создать rar-архив ‘file1.rar’ и включить в него файл test_file
rar a file1.rar file1 file2 dir1 – создать rar-архив ‘file1.rar’ и включить в него file1, file2 и dir1
rar x file1.rar– распаковать rar-архив
unrar x file1.rar —
tar -cvf archive.tar file1 – создать tar-архив archive.tar, содержащий файл file1
tar -cvf archive.tar file1 file2 dir1– создать tar-архив archive.tar, содержащий файл file1, file2 и dir1
tar -tf archive.tar – показать содержимое архива
tar -xvf archive.tar– распаковать архив
tar -xvf archive.tar -C /tmp – распаковать архив в /tmp
tar -cvfj archive.tar.bz2 dir1 – создать архив и сжать его с помощью bzip2 (Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -xvfj archive.tar.bz2– разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах)
tar -cvfz archive.tar.gz dir1– создать архив и сжать его с помощью gzip
tar -xvfz archive.tar.gz – разжать архив и распаковать его
zip file1.zip file1– создать сжатый zip-архив
zip -r file1.zip file1 file2 dir1 – создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий
unzip file1.zip – разжать и распаковать zip-архив

RPM пакеты (Fedora, Red Hat и т.п.)
rpm -ivh package.rpm– установить пакет с выводом сообщений и прогресс-бара
rpm -ivh –nodeps package.rpm – установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей
rpm -U package.rpm – обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен
rpm -F package.rpm– обновить пакет только если он установлен
rpm -e package_name.rpm – удалить пакет
rpm -qa– отобразить список всех пакетов, установленных в системе
rpm -qa | grep httpd – среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
rpm -qi package_name – вывести информацию о конкрентном пакете
rpm -qg «System Environment/Daemons» – отобразить пакеты входящие в группу пакетов
rpm -ql package_name – вывести список файлов, входящих в пакет
rpm -qc package_name– вывести список конфигурационных файлов, входящих в пакет
rpm -q package_name –whatrequires – вывести список пакетов, необходимых для установки конкретного пакета по зависимостям
rpm -q package_name –whatprovides – show capability provided by a rpm package
rpm -q package_name –scripts – отобразит скрипты, запускаемые при установке/удалении пакета
rpm -q package_name –changelog– вывести историю ревизий пакета
rpm -qf /etc/httpd/conf/httpd.conf– проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла.
rpm -qp package.rpm -l– отображает список файлов, входящих в пакет, но ещё не установленных в систему
rpm –import /media/cdrom/RPM-GPG-KEY– ипортировать публичный ключ цифровой подписи
rpm –checksig package.rpm – проверит подпись пакета
rpm -qa gpg-pubkey – проверить целостность установленного содержимого пакета
rpm -V package_name – проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменеия пакета
rpm -Va – проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью!
rpm -Vp package.rpm – проверить пакет, который ещё не установлен в систему
rpm2cpio package.rpm | cpio –extract –make-directories *bin*– извлечь из пакета файлы содержащие в своём имени bin
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm– установить пакет, собранный из исходных кодов
rpmbuild –rebuild package_name.src.rpm – собрать пакет из исходных кодов

YUM – средство обновления пакетов (Fedora, RedHat и т.п.)
yum install package_name– закачать и установать пакет
yum update – обновить все пакеты, установленные в систему
yum update package_name – обновить пакет
yum remove package_name – удалить пакет
yum list– вывести список всех пакетов, установленных в систему
yum search package_name – найти пакет в репозитории
yum clean packages– очисть rpm-кэш, удалив закачанные пакеты
yum clean headers – удалить все заголовки файлов, которые система использует для разрешения зависимостей
yum clean all – очисть rpm-кэш, удалив закачанные пакеты и заголовки

DEB пакеты (Debian, Ubuntu и т.п.)
dpkg -i package.deb – установить / обновить пакет
dpkg -r package_name – удалить пакет из системы
dpkg -l– показать все пакеты, установленные в систему
dpkg -l | grep httpd– среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени «httpd»
dpkg -s package_name -отобразить инфрмацию о конкретном пакете
dpkg -L package_name– вывести список файлов, входящих в пакет, установленный в систему
dpkg –contents package.deb – отобразить список файлов, входящих в пакет, который ешё не установлен в систему
dpkg -S /bin/ping– найти пакет, в который входит указанный файл.

APT – средство управление пакетами (Debian, Ubuntu и т.п.)
apt-get install package_name – установить / обновить пакет
apt-cdrom install package_name– установить / обновить пакет с cdrom’а
apt-get update– получить обновлённые списки пакетов
apt-get upgrade– обновить пакеты, установленные в систему
apt-get remove package_name – удалить пакет, установленный в систему с сохранением файлов конфигурации
apt-get purge package_name – удалить пакет, установленный в систему с удалением файлов конфигурации
apt-get check – проверить целостность зависимостей
apt-get clean – удалить загруженные архивные файлы пакетов
apt-get autoclean – удалить старые загруженные архивные файлы пакетов

Просмотр содержимого файлов
cat file1 – вывести содержимое файла file1 на стандартное устройсво вывода
tac file1 – вывести содержимое файла file1 на стандартное устройсво вывода в обратном порядке (последняя строка становиться первой и т.д.)
more file1 – постраничный вывод содержимого файла file1 на стандартное устройство вывода
less file1 – постраничный вывод содержимого файла file1 на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п.
head -2 file1 – вывести первые две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
tail -2 file1 – вывести последние две строки файла file1 на стандартное устройство вывода. По-умолчанию выводится десять строк
tail -f /var/log/messages – выводить содержимое файла /var/log/messages на стандартное устройство вывода по мере появления в нём текста.

Манипуляции с текстом
cat file_originale | [operation: sed, grep, awk, grep и т.п.] > result.txt– общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый
cat file_originale | [operazione: sed, grep, awk, grepи т.п.] >> result.txt – общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан
grep Aug /var/log/messages– из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug»
grep ^Aug /var/log/messages– из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug»
grep [0-9] /var/log/messages– из файла ‘/var/log/messages’ отобрать и вывести на стандартное устройство вывода строки, содержащие цифры
grep Aug -R /var/log/* – отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug», во всех файлах, находящихся в директории /var/log и ниже
sed ‘s/stringa1/stringa2/g’ example.txt – в файле example.txt заменить «string1″ на «string2″, результат вывести на стандартное устройство вывода.
sed ‘/^$/d’ example.txt– удалить пустые строки из файла example.txt
sed ‘/ *#/d; /^$/d’ example.txt – удалить пустые строки и комментарии из файла example.txt
echo ‘esempio’ | tr ‘[:lower:]‘ ‘[:upper:]‘ – преобразовать символы из нижнего регистра в верхний
[color=red]sed -e ’1d’ result.txt– удалить первую строку из файла example.txt
sed -n ‘/string1/p’ [/color]– отобразить только строки содержашие «string1″
sed -e ‘s/ *$//’ example.txt – удалить пустые символы в в конце каждой строки
sed -e ‘s/string1//g’ example.txt – удалить строку «string1″ из текста не изменяя всего остального
sed -n ’1,8p;5q’ example.txt– взять из файла с первой по восьмую строки и из них вывести первые пять
sed -n ’5p;5q’ example.txt– вывести пятую строку
sed -e ‘s/0*/0/g’ example.txt – заменить последовательность из любого количества нулей одним нулём
cat -n file1– пронумеровать строки при выводе содержимого файла
cat example.txt | awk ‘NR%2==1′– при выводе содержимого файла, не выводить чётные строки файла
echo a b c | awk ‘{print $1}’– вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
echo a b c | awk ‘{print $1,$3}’– вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции
paste file1 file2 – объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
paste -d ‘+’ file1 file2– объединить содержимое file1 и file2 в виде таблицы с разделителем «+»
sort file1 file2– отсортировать содержимое двух файлов
sort file1 file2 | uniq– отсортировать содержимое двух файлов, не отображая повторов
sort file1 file2 | uniq -u– отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода)
sort file1 file2 | uniq -d– отсортировать содержимое двух файлов, отображая только повторяющиеся строки
comm -1 file1 file2 – сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1′
comm -2 file1 file2– сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2′
comm -3 file1 file2 – сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах

Преобразование наборов символов и файловых форматов

dos2unix filedos.txt fileunix.txt– конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата коретки)
unix2dos fileunix.txt filedos.txt– конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата коретки)
recode …HTML page.html– конвертировать содержимое тестового файла page.txt в html-файл page.html
recode -l | more – вывести список доступных форматов

Анализ файловых систем
badblocks -v /dev/hda1 – проверить раздел hda1 на наличие bad-блоков
fsck /dev/hda1– проверить/восстановить целостность linux-файловой системы раздела hda1
fsck.ext2 /dev/hda1
e2fsck /dev/hda1– проверить/восстановить целостность файловой системы ext2 раздела hda1
e2fsck -j /dev/hda1– проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же
fsck.ext3 /dev/hda1– проверить/восстановить целостность файловой системы ext3 раздела hda1
fsck.vfat /dev/hda1
fsck.msdos /dev/hda1
dosfsck /dev/hda1– проверить/восстановить целостность файловой системы fat раздела hda11

Форматирование файловых систем
mkfs /dev/hda1 – создать linux-файловую систему на разделе hda1
mke2fs /dev/hda1 – создать файловую систему ext2 на разделе hda1
mke2fs -j /dev/hda1 – создать журналирующую файловую систему ext3 на разделе hda1
mkfs -t vfat 32 -F /dev/hda1– создать файловую систему FAT32 на разделе hda1
fdformat -n /dev/fd0 – форматирование флоппи-диска без проверки
mkswap /dev/hda3 – создание swap-пространства на разделе hda3

SWAP-пространство
mkswap /dev/hda3– создание swap-пространства на разделе hda3
swapon /dev/hda3 – активировать swap-пространство, расположенное на разделе hda3
swapon /dev/hda2 /dev/hdb3– активировать swap-пространства, расположенные на разделах hda2 и hdb3

Создание резервных копий (backup)
dump -0aj -f /tmp/home0.bak /home– создать полную резервную копию директории /home в файл /tmp/home0.bak
dump -1aj -f /tmp/home0.bak /home – создать инкрементальную резервную копию директории /home в файл /tmp/home0.bak
restore -if /tmp/home0.bak– восстановить из резервной копии /tmp/home0.bak
rsync -rogpav –delete /home /tmp– синхронизировать /tmp с /home
rsync -rogpav -e ssh –delete /home ip_address:/tmp– синхронизировать через SSH-туннель
rsync -az -e ssh –delete ip_addr:/home/public /home/local– синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием
rsync -az -e ssh –delete /home/local ip_addr:/home/public – синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’ – сделать «слепок» локального диска в файл на удалённом компьютере через ssh-туннель
tar -Puf backup.tar /home/user– создать инкрементальную резервную копию директории ‘/home/user’ в файл backup.tar с сохранением полномочий
( cd /tmp/local/ && tar c. ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’ – копирование содержимого /tmp/local на удалённый компьютер через ssh-туннель в /home/share/
( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’ – копирование содержимого /home на удалённый компьютер через ssh-туннель в /home/backup-home
tar cf –. | (cd /tmp/backup; tar xf – )– копирование одной директории в другую с сохранением полномочий и линков
find /home/user1 -name ‘*.txt’ | xargs cp -av –target-directory=/home/backup/ –parents – поиск в /home/user1 всех файлов, имена которых оканчиваются на ‘.txt’, и копирование их в другую директорию
find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2– поиск в /var/log всех файлов, имена которых оканчиваются на ‘.log’, и создание bzip-архива из них
dd if=/dev/hda of=/dev/fd0 bs=512 count=1– создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 – восстановить MBR с флоппи-диска на /dev/hda

CDROM
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force– clean a rewritable cdrom
mkisofs /dev/cdrom > cd.iso– create an iso image of cdrom on disk
mkisofs /dev/cdrom | gzip > cd_iso.gz– create a compressed iso image of cdrom on disk
mkisofs -J -allow-leading-dots -R -V «Label CD» -iso-level 4 -o ./cd.iso data_cd– create an iso image of a directory
cdrecord -v dev=/dev/cdrom cd.iso – burn an ISO image
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom- burn a compressed ISO image
mount -o loop cd.iso /mnt/iso– mount an ISO image
cd-paranoia -B – rip audio tracks from a CD to wav files
cd-paranoia — «-3″ – rip first three audio tracks from a CD to wav files
cdrecord –scanbus – scan bus to identify the channel scsi

Сеть (LAN и WiFi)

ifconfig eth0– показать конфигурацию сетевого интерфейса eth0
ifup eth0– активировать (поднять) интерфейс eth0
ifdown eth0 – деактивировать (опустить) интерфейс eth0
ifconfig eth0 192.168.1.1 netmask 255.255.255.0– выставить интерфейсу eth0 ip-адрес и маску подсети
ifconfig eth0 promisc– перевести интерфейс eth0 в promiscuous-режим для «отлова» пакетов (sniffing)
ifconfig eth0 -promisc– отключить promiscuous-режим на интерфейсе eth0
dhclient eth0– активировать интерфейс eth0 в dhcp-режиме.
route -n
netstat -rn – вывести локальную таблицу маршрутизации
route add -net 0/0 gw IP_Gateway – задать ip-адрес шлюза по умолчанию (default gateway)
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1– добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1
route del 0/0 gw IP_gateway – удалить ip-адрес шлюза по умолчанию (default gateway)
echo «1″ > /proc/sys/net/ipv4/ip_forward– разрешить пересылку пакетов (forwarding)
hostname – отобразить имя компьютера
host www.linuxguide.it– разрешить имя www.linuxguide.it хоста в ip-адрес и наоборот
host 62.149.140.85
ip link show– отобразить состояние всех интерфейсов
mii-tool eth0– отобразить статус и тип соединения для интерфейса eth0
ethtool eth0 – отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения
netstat -tupn – отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, обеспечивающих эти соединения
netstat -tupln – отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID’ы и имена процессов, слушающих порты
tcpdump tcp port 80– отобразить весь трафик на TCP-порт 80 (обычно – HTTP)
iwlist scan – просканировать эфир на предмет, доступности беспроводных точек доступа
iwconfig eth1 – показать конфигурацию беспроводного сетевого интерфейса eth1

Microsoft Windows Networks (SAMBA)
nbtscan ip_addr
nmblookup -A ip_addr– разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba.
smbclient -L ip_addr/hostname– отобразить ресурсы, предоставленные в общий доступ на windows-машине
smbget -Rr smb://ip_addr/share– подобно wget может получить файлы с windows-машин через smb-протокол
mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share – смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему

IPTABLES (Firewall)
iptables -t filter -nL
iptables -nL – отобразить все цепочки правил
iptables -t nat -L– отобразить все цепочки правил в NAT-таблице
iptables -t filter -F
iptables -F – очистить все цепочки правил в filter-таблице
iptables -t nat -F – очистить все цепочки правил в NAT-таблице
iptables -t filter -X – удалить все пользовательские цепочки правил в filter-таблице
iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT – позволить входящее подключение telnet’ом
iptables -t filter -A OUTPUT -p tcp –dport http -j DROP — блокировать исходящие HTTP-соединения
iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT – позволить «прокидывать» (forward) POP3-соединения
iptables -t filter -A INPUT -j LOG –log-prefix «DROP INPUT» – включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса «DROP INPUT»
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE– включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2:22 – перенаправление пакетов, адресованных одному хосту, на другой хост

Мониторинг и отладка
top – отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных)
ps -eafw – отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды)
ps -e -o pid,args –forest– вывести PID’ы и процессы в виде дерева
pstree– отобразить дерево процессов
kill -9 98989
kill -KILL 98989– «убить» процесс с PID 98989 «на смерть» (без соблюдения целостности данных)
kill -TERM 98989 – Корректно завершить процесс с PID 98989
kill -1 98989
kill -HUP 98989– заставить процесс с PID 98989 перепрочитать файл конфигурации
lsof -p 98989– отобразить список файлов, открытых процессом с PID 98989
lsof /home/user1 – отобразить список открытых файлов из директории /home/user1
strace -c ls >/dev/null– вывести список системных вызовов, созданных и полученных процессом ls
strace -f -e open ls >/dev/null– вывести вызовы бибилотек
watch -n1 ‘cat /proc/interrupts’ – отображать прерывания в режиме реального времени
last reboot – отобразить историю перезагрузок системы
last user1 – отобразить историю регистрации пользователя user1 в системе и время его нахождения в ней
lsmod– вывести загруженные модули ядра
free -m – показать состояние оперативной памяти в мегабайтах
smartctl -A /dev/hda – контроль состояния жёсткого диска /dev/hda через SMART
smartctl -i /dev/hda – проверить доступность SMART на жёстком диске /dev/hda
tail /var/log/dmesg – вывести десять последних записей из журнала загрузки ядра
tail /var/log/messages – вывести десять последних записей из системного журнала

Другие полезные команды
apropos …keyword – выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду
man ping– вызов руководства по работе с программой, в данном случае, – ping
whatis …keyword– отображает описание действий указанной программы
mkbootdisk –device /dev/fd0 `uname -r`– создаёт загрузочный флоппи-диск
gpg -c file1– шифрует файл file1 с помощью GNU Privacy Guard
gpg file1.gpg – дешифрует файл file1 с помощью GNU Privacy Guard
wget -r www.example.com – загружает рекурсивно содержимое сайта www.example.com
wget -c www.example.com/file.iso – загрузить файл www.example.com/file.iso с возможностью останова и продолжения в последствии
echo ‘wget -c www.example.com/files.iso’ | at 09:00 – начать закачку в указанное время
ldd /usr/bin/ssh – вывести список библиотек, необходимых для работы ssh
alias hh=’history’– назначить алиас hh команде history

Читать далее...

Команды SSH

Команды SSH, как подключиться?

Что такое ssh доступ?

Командная строка в nix'ах позволяет экономить нам время и силы при работе с web серверами.
После того как мы научимся использовать ssh консоль, Вы сможете устанавливать и обновлять свои CMS, всего за несколько секунд, удобно управлять файлами, а также быстро закачивать сайты и БД. И еще узнаем много полезного.
Команды SSH
Помощь

man ИмяКоманды — помощь по работе с командой
Для возврата в режим управления — Ctrl+C
Например, man cron — информация о команде cron
Файловые команды

Подключение из консоли:
ssh user@host – подключится к host как user
ssh -p port user@host – подключится к host на порт port как user
ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

ls — список файлов и каталогов
ls -al — форматированный список со скрытыми каталогами и файлами
cd dir — сменить директорию на dir
cd — сменить на домашний каталог
pwd — показать текущий каталог
mkdir dir — создать каталог dir
rm file — удалить file
rm -r dir — удалить каталог dir
rm -f file — удалить форсированно file
rm -rf dir — удалить форсированно каталог dir *
cp file1 file2 — скопировать file1 в file2
cp -r dir1 dir2 — скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 — переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2
ln -s file link — создать символическую ссылку link к файлу file
touch file — создать file
cat > file — направить стандартный ввод в file
more file — вывести содержимое file
head file — вывести первые 10 строк file
tail file — вывести последние 10 строк file
tail -f file — вывести содержимое file по мере роста, начинает с последних 10 строк
view file — вывести файл на экран

Процессы

ps — вывести ваши текущие активные процессы
top — показать все запущенные процессы
kill pid — убить процесс с id pid
killall proc — убить все процессы с именем proc
bg — список остановленных и фоновых задач; продолжить выполнение остановленной задачи в фоне
fg — выносит на передний план последние задачи
fg n — вынести задачу n на передний план

Права доступа на файлы

chmod octal file — сменить права file на octal, раздельно для пользователя, группы и для всех добавлением:
? 4 — чтение ®
? 2 — запись (w)
? 1 — исполнение (x) Примеры:
chmod 777 — чтение, запись, исполнение для всех (потенциальная угроза безопасности)
chmod 755 — rwx для владельца, rx для группы и остальных.
Дополнительные опции: man chmod.
SSH

ssh user@host — подключится к host как user
ssh -p port user@host — подключится к host на порт port как user
ssh-copy-id user@host — добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

Поиск

grep pattern files — искать pattern в files
grep -r pattern dir — искать рекурсивно pattern в dir
command | grep pattern — искать pattern в выводе command
locate file — найти все файлы с именем file

Системная информация

date — вывести текущую дату и время
cal — вывести календарь на текущий месяц
uptime — показать текущий аптайм
w — показать пользователей онлайн
whoami — имя, под которым вы залогинены
finger user — показать информацию о user
uname -a — показать информацию о ядре
cat /proc/cpuinfo — информация ЦПУ
cat /proc/meminfo — информация о памяти
man command — показать мануал для command
df — показать инф. о использовании дисков
du — вывести «вес» текущего каталога
free — использование памяти и swap
whereis app — возможное расположение программы app
which app — какая app будет запущена по умолчанию

Архивация

tar cf file.tar files — создать tar-архив с именем file.tar содержащий files
tar xf file.tar — распаковать file.tar
tar czf file.tar.gz files — создать архив tar с сжатием Gzip
tar xzf file.tar.gz — распаковать tar с Gzip
tar cjf file.tar.bz2 — создать архив tar с сжатием Bzip2
tar xjf file.tar.bz2 — распаковать tar с Bzip2
gzip file — сжать file и переименовать в file.gz
gzip -d file.gz — разжать file.gz в file
Сеть

ping host — пропинговать host и вывести результат
whois domain — получить информацию whois для domain
dig domain — получить DNS информацию domain
dig -x host — реверсивно искать host
wget file — скачать file
wget -c file — продолжить остановленную закачку

Установка пакетов
Установка из исходников:
./configure
make
make install
dpkg -i pkg.deb — установить пакет (Debian)
rpm -Uvh pkg.rpm — установить пакет (RPM)

Автоматизация работы

cron — выполнение заданной команды в определенное время

Клавиатурные сочетания

Ctrl+C — завершить текущую команду
Ctrl+Z — остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D — разлогиниться, тоже самое, что и exit
Ctrl+W — удалить одно слово в текущей строке
Ctrl+U — удалить строку
!!! — повторить последнюю команду
exit — выход

Читать далее...