Как получить рутовый доступ в Ubuntu без пароля
Случайно удалил себя из группы admin. Как известно в Ubuntu по умолчанию пользователи группы admin являются судоирами. И если вы случайно удалили себя из группы admin команды через sudo выполнить уже не получится.
Оказывается, зайти на компьютер как root при наличии физического доступа проще простого:
- при перезагрузке, когда на экране покажется меню grub жмем "e"
- не экране повится текстовый файл в котором заменяем gfxpayload=$linux_gfx_mode на gfxpayload=$text и ro queet spash на rw init=/bin/bash, нажимаем ctrl-x
После проделанных нехитрых манипуляций получим текстовый терминал с зарегистрированным root пользователем.
Вот видео как это сделать:
Все люди - идиоты
Раньше я считал, что идиоты - только те люди которые совершают идиотские поступки и принимают идиотские решения. Мир разделился на идиотов и нормальных людей.
Потом, присмотревшись ко, вполне нормальным, с виду, людям повнимательнее, увидел, что они тоже делают идиотские вещи. Нормальными людьми остались только мои ближайшие друзья и знакомые. Идиотов в мире оказалось подавляющее большинство.
Друзья и знакомые совершая идиотские поступки, постепенно, один на другим, тоже попали в список идиотов. В этом мире остался лишь один нормальный человек. Я.
Долгое время считал, что я в этом мире только один нормальный - а все остальные идиоты, о чем частенько говорил идиотам. Разумеется, не все идиоты с моей точкой зрения соглашались...
Но лишь недавно понял, какая это идиотская точка зрения. Получается, что и я тоже...
Все в мире - идиоты, включая меня.
Как жить-то теперь, дядь Вань?
Простой скрипт для резервного копирования
Все знают, что данные резервировать - вещь плезная и нужная, вот только мало кто всерьёз озадачивается этой проблемой до тех пор пока сохранность данных не оказывается под угрозой, но, вот только, как правило бекапить оказывается уже нечего.
На рынке, сейчас огромное количество решений для резервного копирования, но при небольшом количестве данных, вполне можно обойтись, тем софтом, который есть в любом linux дистрибутиве.
Вот типовая задача резервного копирования. Резервировать нужно компьютеры под управлением Windows и Linux. Бекап должен делаться ежеденевно на жёсткий диск одной из рабочих станций. При этом, сперва должен делаться полный бекап, потом, в течении, скажем, двух недель, каждый день, должен делаться инкрементальный бекап. Все файлы должны сохраняться в папку для бекапов. Через определённый временной интервал файлы нужно заливать на DVD-R болванки и класть в долгий ящик. При этом, файлы должны зиповаться, чтобы занимать меньше места и чтобы можно было восстанавливать файлы не пользуясь сторонним софтом. Софт должен быть с открытым исходным кодом и работать на всех вышеназванных платформах.
В качестве возможного софта я рассматривал несколько вариантов. Bacula. Первоначально это то, что я планировал использовать - мощная и гибкая система. Единственное, что меня смущало, это формат хранения данных. Индекс храниться в MySQL базе данных и если что случится с сервером то нужно будет сначала восстанавливать базу данных а потом бекапы. Другое свойство этой программы, которое мне совершенно не понравилось - это хранение резервных копий в файлах фиксированного размера. Изначально, Bacula заточена под магнитную ленту но, что хорошо для ленты то дико неудобно для файлов. Кроме этого, восстановление файлов оказалось делом довольно долгим так как делалось через специальную консольную программу с неудобным синтаксисом. Как вытащить файл из архива в случае если сервера под рукой нет для меня так и осталось загадкой.
Backuppc наверно, замечательная штука, но мне так и не удалось его корректно настроить, так как, для его работы нужен был определенный модуль perl, который мне так и не удалось поставить на один из копьютеров, поэтому от использования также пришлось отказаться.
Хотелось, что-то простого, что не требует монструозной настройки. Оказалось, что для решения данной задачи подойдет обычный rsync в сочетании с tar.
Основным вопросом при этом было как организовать инкрементный бекап. Rsync прекрасно прекрасно умеет создавать дифференциальные бекапы - т.е. разницу между двумя полными бекапами, но про инкрементальные бекапы в интернете я почти ничего не нашёл.
Но решение оказалось оказалось очень простым, ведь инкрементный бекап - это не что иное, как дифференциальный бекап относительно последнего бекапа. Поэтому, чтобы сделать архив содержащий изменные файлы после последнего полного или дифференциального бекапа достаточно просто сделать полный бекап а затем сравнить два последних бекапа и разница как раз и будет инкрементным бекапом. Но хранить полные бекапы за каждый день очень накладно, ведь каждая копия будет занимать много места. К счастью, хранить копии отдельно не обязательно - ведь rsync умеет использовать жесткие ссылки на одинаковые файлы. В том случе если файл не изменен то будет использована не копия а ссылка на файл, таким образом архив из n полных копий размером m будет в случае неизменных файлов будет занимать не n*m а всего лишь 1*m.
В результате получился вот такой скрипт.
Скрипт запускается через cron каждый день в определенноё время, когда компьютер простаивает, копирует данные в папку для резервного копирования и зипует её в именем кодирующим текущую дату и тип архива - полный или дифференциальный. Rsync умеет делать копии с нескольких серверов по ssh, что очень удобно. При этом для востановления достаточно распаковать сначала полный архив, затем последовательно накотить поверх все дифференциальные бекапы.
Скрипт не умеет отлеживать удаленные файлы, но задача резервного копирования, прежде всего, это - недопустить пропажи информации, поэтому задачи отслеживать удаление файлов у меня не стояло.
Таким образом, в системе сохраняется полная резервная копия за последние n дней, при этом места эти копии, благодаря использованию жёстких ссылок, занимают как одна копия. На компьютере с windows rsync, также, легко запускается для этого нужно поставить cygwin.
Софт для чтения книжек под Android
Очень люблю читать, но к сожалению, времени на это катастрофически не хватает, к тому же, если я начинаю читать какую нибудь книжку, особенно, если та окажется интересной, то, пока её не прочитаю от корки до корки, делать ничего не могу. Очень часто выручают аудиокниги - с ними можно одновременно и читать и делать что нибудь еще, если это что-то не требует значительной концентрации внимания, но аудиокниги есть под рукой не всегда.
Поэтому, чтобы превратить книгу в аудиокнигу долгое время я использовал старую добрую "Говорилку" - программку, которая умеет начитывать текст используя языковой движек от Microsoft. И хотя Microsoft уже давно не развивает свой Speach API а сайт "Говорилки" уже давно в оффлайне, как ни странно - ничего лучше этого решения я до последнего времени не встречал. Так что, говорилка оставалась для меня единственным вариантом для превращения текстовых книг в аудиокниги многие годы.
Но вот последнее время голосовые технологии неплохо продвинулись вперед и захотелось, чего-нибудь более удобного и более качественного. Есть, например, сервис от Google - но он пока не позволяет начитывать целые книги, разве что отдельные слова.
Интересным представлялся вариант синтеза речи под Андроид. К сожалению бесплатных русских голосов под Андроид я не нашёл, поэтому прикупил голос Katja от SVOX, который оказался вполне качественным, стоит он $3, что вполне терпимо. Оставалось только найти программу для чтения.
Как ни странно, нормальных программ для чтения голосом найти оказалось непросто. Большинство выглядели так, как будто их писали студенты двоечники, впрочем в большинстве случаев так оно и было. Еще несколько месяцев назад чтение голосом прекрасно выполнял Cool Reader, но, почему то, его новая версия читает только текущую страницу и когда доходит до конца начинает читать ту же страницу снова. Возможно, это какой-то баг, который будет когда-либо исправлен, не знаю.
В конце концов, для чтения книг голосом идеальным вариантом, по крайней мере для меня, оказался FBReader с плагином FBReader TTS+ - почему то родной плагин TTS у меня так не заработал, зато этот работает отлично.