Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта
Взлом
Реклама
Я слушаю Радио ENERGY
Наш опрос
Какой самый лучший сайт?
javascript:; javascript:;
Всего ответов: 80

Онлайн
Пользователи :
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Онлайн :
Новости сайта

Все о взломе Unix

Система Unix Часть 1: Операционная система программиста UNIX, конечно, был изобретен где-то в 60-ых как "операционная система программиста". Во времена, когда изобрели UNIX, эта цель не была, вероятно, достигнута, зато теперь, похоже, UNIX стала ОС программиста. Как уже говорилось, это многозадачная и многопользовательская ОС. К тому же она написана на языке С, во всяком случае, немалая ее часть, что делает ее портативной операционной системой. Мы знаем, что МС-ДОС соответствует компьютерам IBM и их клонам, верно? Так вот, с UNIX ситуация иная. Он не соответствует никаким компьютерам, поскольку был адаптирован ко многим, и существует много вариантов UNIX (то есть, UNIX измененный продавцом, или нечто подобное). Некоторые AT&T компьютеры работают под UNIX, а некоторые под МС-ДОС (AT&T 6300). Рабочие станции Sun работают под SunOS, это тоже вариант UNIX, а некоторые VAX компьютеры управляются Ultrix, это VAX-версия UNIX. Запомните: независимо оттого, как называется операционная система (BSD, UNIX, SunOS, Ultrix, Xenix, и т.д.), они все имеют много общего вроде команд, которые используются операционной системой. Некоторые варианты могут иметь особенности, которых нет в других, но они в основном схожи в том, что имеют много одинаковых команд и файлов данных. Когда вам кто-то станет доказывать, что UNIX используется в определенных типах компьютеров, то это, возможно, и так, но помните, что некоторые компьютеры имеют более одной операционной системы.Например, вам могут сказать, что UNIX соответствует компьютерам VAX так же, как МС-ДОС соответствует IBM-клонам. Это неверно, и мы упоминаем об этом только потому, что видели много сообщений с подобными сравнениями, которые смущают пользователей, когда они видят VAX, работающий под VMS. Часть 2: Идентификация Unix С этого момента мы будем обозначать все варианты UNIX просто как UNIX, так что когда будет говориться что-то о UNIX, то, как правило, будут подразумеваться все варианты (то есть, варианты Unix System V: BSD, SunOS, Ultrix, Xenix, и т.д., если только явно не будет указан конкретный. Теперь пора рассказать, как unix обычно вас приветствует. Сначала, когда вы вызываете UNIX, или соединяетесь с машиной, где он работает, вы обычно видите такую подсказку: Login: Порядок. Это означает, что это вероятно Unix, хотя имеются BBS, способные имитировать login-процедуру OS (операционной системы), и заставлять некоторых верить в то, что это и есть Unix. (Ха!) Некоторые Unix'ы представляются или выдают перед Login: сообщение вроде такого: Welcome to SHUnlx. Please log in. (Добро пожаловать в SHUN IX. Пожалуйста зарегистрируйтесь) Login: Или что-то в этом роде. Unix'ы свободного доступа (например, в BBS свободного доступа) сообщат вам, как надо регистрироваться, если вы - новый пользователь. К сожалению, эта Часть не о Unix'ax свободного доступа, но о них мы кратко поговорим позже, например об адресе UUCP/USENET/BITNET^ почты. Итак. Вы добрались до регистрации (login)! Теперь вам надо ввести действующий экаунт (account). Он обычно состоит из 8 или меньше символов. После ввода экаунта вы скорее всего увидите приглашение ввести пароль. Приглашения могут иметь различный вид, поскольку исходные коды для программы регистрации обычно поставляются вместе с UNIX, или доступны бесплатно. Так вот, можно посоветовать такой простейший способ регистрации: получите экаунт или попробуйте ввести значения по умолчанию. Эти значения поставляются вместе с операционной системой в стандартной форме. Вот список некоторых значений по умолчанию: ACCOUNT ПАРОЛЬ r root root - (редко откоыт для хакеров) sys sys / system/bin bin sys / bin mountfsys mountfsys adm adm uucp uucp nuucp anon user user games games install install reboot * ni. ie?a demo demo umountfsys umountfsys sync sync admin admin guest guest daemon daemon Экаунты root, mountfsys, umountfsys, install и, иногда, sync - это экаунты корневого уровня. Это означает, что они работают на уровне системного администратора или глобально. Остальные логины есть всего лишь логины "пользовательского уровня", и это означает, что им подвластны лишь файлы/процессы, принадлежащие этому конкретному пользователю. Логин REBOOT относится к так называемым командным логинам, он не пропускает вас в ОС, а просто-напросто выполняет связанную с ним программу. Как правило, он делает именно то, что обозначает, - перезагружает систему. Возможно, он не стандартен во всех Юниксах, но его можно увидеть в Юниксах UNISYS, a также в системах HP/UX (Hewlett Packard Unixes). Пока что эти экаунты не защищены паролями, что на наш взгляд весьма глупо. Командные логины Существуют "командные логины", которые, подобно логину перезагрузки (reboot), исполняют команду и отключают вас от системы, не позволяя пользоваться интерпретатором команд. Наличием таких логинов печально знамениты компьютеры BSD и MIT (Массачусетского технологического института). Вот список некоторых: o rwho - показать, кто в онлайне o finger - то же o who - то же Они весьма полезны, поскольку выдают список экаунтов подключенных пользователей, и тем самым показывают реально существующие экаунты. Ошибки Когда вы введете ошибочный экаунт/пароль, или и то, и другое, система выдаст сообщение об ошибке. Обычно это сообщение "login incorrect". Когда компьютер выдает такое сообщение, это означает, что вы ошиблись, и ввели или неверный экаунт, или верный экаунт, но неверный пароль. По очевидным причинам система не станет вам подсказывать, какую именно ошибку вы допустили. Кроме того, когда вы регистрируетесь с ошибкой, обновляется файл журнала регистрации, и об этом узнает сисадмин. Другое сообщение об ошибке - это "Cannot change to home directory" или "Cannot Change Directory". Это означает отсутствие "home directory", то есть "корневого" раздела экаунта, то есть раздела, из которого вы начинаете работу. В ДОС вы стартуете из А: или С:, или еще откуда-то, а в Юниксе - из /homedirectory. (Примечание: в Юниксе в разделах используется / (прямой слеш), а не (обратный слеш)). Большинство систем отключит вас после такого прокола, но некоторые сообщат, что поместят вас в корневой раздел ['/']. Другое сообщение об ошибке "No Shell". Оно означает, что для этого конкретного экаунта не определен "shell", то есть "оболочка". О ней мы поговорим позднее. Большинство систем отключит вас после такого сообщения, но некоторые сообщат, что станут использовать обычную (стандартную) оболочку, выдав "Using the bourne shell" или "Using sh". Часть З: Экаунты Надеюсь, эта Часть поможет вам понять пользовательскую структуру среды Юникс. Так вот, считайте, что Юникс имеет два уровня безопасности: абсолютную власть и обычный пользователь. Абсолютной властью обладают пользователи корневого уровня. Теперь давайте мыслить числами. Юникс ассоциирует числа с именами экаунтов. Каждый экаунт имеет номер. Этот номер есть U1D (идентификатор пользователя) экаунта. У корневого пользователя U1D - это 0 (ноль). Каждый экаунт с U1D = 0 будет иметь доступ к корню. Юникс обрабатывает не имена экаунтов (логинов), а связанные с ним числа. Например, если ваш U1D = 50, и еще чей-то U1D тоже 50, то вы оба имеете абсолютную власть друг над другом, но только вы, и никто иной. Часть 4: Оболочки Оболочка - это исполняемая программа, которая загружается и начинает работать в фоновом режиме, когда пользователь входит в систему. Такой "оболочкой" может быть любая исполняемая программа, указанная в пользовательском файле "passwd". Каждый логин может иметь свою уникальную "оболочку". Идем дальше. Оболочка, с которой мы обычно будем работать - это интерпретатор команд (командный процессор). Интерпретатор команд - это нечто, похожее на COMMAND.COM в MS DOS, который обрабатывает команды и пересылает их в ядро (операционную систему). Как уже было сказано, оболочкой может быть любая программа, но вам нужен именно интерпретатор команд. Вот перечень обычных оболочек, которые вы обнаружите: o sh - это "родная" оболочка, базовый "COMMAND.COM" Unix. Он имеет "скриптовый" язык, как и большинство командных процессоров систем Unix. o csh - это оболочка "С", позволяющая вводить С-подобные команды. o ksh - это оболочка korn. Просто еще один интерпретатор команд. o tcsh - это оболочка, используемая в MIT. Позволяет редактировать команды. o vsh - визуальная оболочка, работающая через меню. Нечто вроде... Windows для DOS. o rsh - restricted (ограниченная) или remote (удаленная) оболочка. Есть и множество других оболочек, включая "самодельные", то есть программы, написанные владельцем Unix, или под конкретную версию Unix, и все они нестандартные. Запомните, оболочка есть всего лишь программа, которой вам придется пользоваться, и когда она кончает работу, вас отключают от системы. Хороший пример самодельной оболочки можно найти на Eskimo North, это Unix свободного доступа. Оболочка называется "Esh", и это нечто вроде "одноклавишной BBS", но это, тем не менее, все равно оболочка. Некоторые компании используют в качестве пользовательских оболочек текстовые редакторы, базы данных и прочий софт - чтобы предотвратить ошибки неопытных пользователей и облегчить им жизнь. Кроме того, в качестве оболочки может использоваться BBS. Когда вы работаете в интерпретаторе команд, подсказка обычно выглядит так: $ Когда вы корневой пользователь, подсказка обычно выглядит так: " Можно задать значение переменной PS1 для хранения подсказки. Например, если PS1 задана как "HI:", то и ваша подсказка будет выглядеть так же: hi: Часть 5: Спецсимволы Control-D Конец файла. Когда вы работаете с почтой или текстовым редактором, это означает конец сообщения или текстового файла. Если вы нажмете control-d находясь в оболочке, то выйдете из системы. Control-J В некоторых системах срабатывает как клавиша "ввод". @ Иногда означает "отмена". Это wildcard (маска). Может обозначать букву. Если вы укажете в командной строке, скажем, "b?b", то Unix станет искать bob, bib, bub, и все остальные буквы/цифры в интервале a-z, 0-9. Может означать любое число символов. Если вы укажете "hi*", то это означает hit, him, hiiii, hiya, и что угодно, начинающееся с hi. "h*1" может значить hill, hull, hi, и что угодно, начинающееся с h и кончающееся 1. [] . Указывает диапазон. Если ввести b[o,u,i]b то это означает: bib, bub, bob. А если ввести ba-dlb то это значит: bab, bbb, bcb, bdb. [], ?, и * обычно используются при копировании и удалении файлов или выводе списков файлов в разделах. В Unix учитывается регистр. Это означает, что "Hill" и "hill" - вовсе не одно и то же. Это позволяет хранить много файлов, поскольку "Hill", "hill", "hill", "hiLl" и так далее могут быть разными файлами. Поэтому,* пользуясь [], вы должны указывать заглавные буквы, если имена нужных вам фалов их содержат. Однако почти все пишется прописными буквами. Часть 6: Команды Теперь мы перечислим некоторые полезные команды Unix. Все будет выглядеть так, как, если бы мы реально вводили команды через командную строку. Is Просмотр раздела. Без аргументов эта команда просто выводит имена файлов в одну или несколько колонок, в зависимости оттого, к какой именно версии программы Is вы имеете доступ. Пример: $ Is hithere runfne note.text src $ Через ключ -I выводится расширенная информация о файлах: $ Is -1 rwx--x--x sirhack sirh 10990 runme и так далее... Пояснения: rwx-x-x - это файловый доступ. sirhack sirh - это владелец файла и фуппа, в которой файл находится, sirhack = владелец, sirh = пользовательская группа, в которой файл находится. 10990 - размер файла в байтах runme - имя файла Cat Выводит файл на экран. Следует применять к текстовым файлам. Применительно к бинарным файлам используется только чтобы издеваться над пользователями. Пример: $ cat note.txt Это образец текстового файла! $ CD Сменить раздел (директорию). Записывается примерно так: cd /dir/dirl/dir2/dirn. dirl/... это имена разделов. Допустим, мы хотим перейти в корневой раздел: $ cd / oпорядок, я уже там" $ Is bin sys etc temp work usr кстати, все, что выше - это разделы $ cd /usr $ Is sirhack datawiz prophet src violence par phiber scythian $ cd /usr/sirhack $ Is hithere runme note.text src $ Так вот, полное имя раздела вводить не надо. Если вы находитесь в разделе, и хотите попасть в (под)раздел, который находится здесь же (скажем, "src"), то можете ввести "cd src" [без "/"]. Вместо ввода "cil /usr/sirhack/src" из sirhack dir вы можете ввести "cd src". ср Копирует файл. Синтаксис: ср из_файла в_файл $ ср runme runme2 $ is hithere runme note.text src runme2 Чтобы скопировать в другой раздел, можно указать полный путь. $ ср runme /usr/datwiz/runfne Mv Переименование файла. Синтаксис: mv старое_имя новое_имя S mv rumne2 runit S is hithere runme note.text src runit Можно переименовывать файлы в других разделах: $ mv runit /usr/datwiz/run $ Is hithere гипяе note.text src $ Is /usr/datwiz runne run Pwd Переход в текущий раздел $ pwd /usr/sirhack $ cd src $ pwd /usr/sirhack/src $ cd .. $ pwd /usr/sirhack (".." означает "использовать имя раздела на один уровень выше") S cd ../datwiz (обозначает cd /usr/datwiz) $ pwd /usr/datwiz $ cd Shome (перейти в раздел home) $ pwd /usr/sirhack rm Удалить файл. Синтаксис: пп имя_файла или rm -г имя_раздела $ rm note.text $ Is hithere runme ' src $ Write Поболтать с другим пользователем. Ну, "написать" другому пользователю. Синтаксис: write имя_пользователя $ write Scythian' ' scythian has been notified (scythian-был уведомлен) Привет Scy! Как дела?? Message from scythian on tty001 at 17:32 Привет! я: Как жизнь? scy: Да вроде нормально. я: Мне пора дописывать этот текст. scy: ok я: control-D [для выхода из программы] $ who [w, who, whodo] Выводит список тех, кто в онлайне: $ who login term logontiiae scythian + tty001 17:20 phiberO + tty002 15:50 sirhack + tty003 17:21 datawiz - tty004 11:20 glitch - tty66G 66:60 $ Команда who может выдавать разную информацию. "+" означает, что вы можете write на этот терминал, а "-" - что не можете. man Показывает подсказку о команде. Синтаксис: man имя_команды. Это программа помощи. Если хотите узнать, как пользоваться who, то введите: $ man who WHO(1) xxx...... и получите подсказку. stty Задает характеристики терминала. Вам придется ввести "man stty", поскольку каждый stty, похоже, отличен от другого. Пример: $ stty -parenb чтобы установить параметры данных N,8,1. Многие Unix по умолчанию работают при е,7,1. sz, rz Послать/получить через zmodem. rx, sx Послать/получить через xmodem. rb,sb Послать/получить через batch (пакетный) ymodem. Эти 6 программ могут в Unix быть, а могут и не быть. umodem Послать/получить через send/recieve via umodem. $ sz filename ready to send... (готов послать...) $ rz filename Please send your file... (пожалуйста, пошлите ваш файл...) ...etc.. (и т.д.) ed Текстовый редактор. Синтаксис: ed имя_фаила. Для создания нового файла просто введите ed имя_файла $ ed newtext 0 *а Это строка 1 Эго строка 2 [control-z] * 1 [чтобы увидеть строку 1] Это строка 1 * а [продолжаем добавлять] Это строка 3 [control-z] *Оа [добавить после строки 0] Это ПЕРВАЯ строка [control-z] 1,41 Это ПЕРВАЯ строка Это строка 1 Это строка 2 Это строка 3 * w 71 *Q $ В данном примере использовались: 71 - число записанных байтов. а - добавить 1 - просмотр # - напечатать номер строки w - записать 1 fname - загрузить файл fname s fname - сохранить с именем fname w - записать в текущий файл q - выход mesg Включает/выключает разрешение "писать" (write) на ваш терминал (разрешает чат). Формат: "mesg у" (да) или "mesg п" (нет). cc Компилятор Си. chmod Смена "режима" файла. Другими словами, смена доступа. Синтаксис: chmod mode filename (chmod режим имя_файла) $ chmod a+r newtext Теперь все могу читать newtext: а - all (все) r - read (читать). chown Сменить владельца файла. Синтаксис: chown владелец filename $ chown scythian newtext $ ' '"o chgrp Сменить группу файла. Синтаксис: chgrp group file $ chgrp root runme $ finger Вывести основную информацию об экаунте. Формат: finger имя_пользователя grep Искать в файле цепочку символов. Синтаксис: grep цепочка file $ grep 1 newtext Это строка 1 $ grep ПЕРВАЯ newtext Это ПЕРВАЯ строка $ grep "ПЕРВАЯ line 1" newtext $ mail Очень полезная утилита. Вы уже наверняка догадались по имени, для чего она. Их существует несколько, например, ELM, MUSH and MSH, но базовая почтовая программа называется mail. Как ей пользоваться: mail usemame@address или mail username или mail или mail addrl!addr2!addr3!user "mail usemame@address" - такая запись используется для посылки почты кому-то в другой системе. Обычно это другой UNIX, но некоторые DOS и VAX машины могут принимать Unix Mail. Когда вы используете "mail user@address", то ваша система должна иметь "умный мейлер" и то, что мы называем "планами системы". "Умный мейлер" распознает "адресную" часть команды и обычно расширяет ее до полного пути. Это может выглядеть так: mail phiber^optik а в компьютере выглядеть так: mail sys!unisys!pacbell!sbell!sc1!att.сот!sirhacksys! optik!phiber Но не забивайте себе головы. Мы просто объясняем принципы. Но если умного мейлера нет, то вы должны знать полный путь к тому, кому вы хотите послать почту. Например, я хочу послать сообщение к phiber. И если умного мейлера нет, то я должен писать так: $ mail sys!unisys!pacbell!sbell!sc1!att.сот!sirhacksys! optik!phiber Привет. Как дела? Ну, мне пора. Длинное вышло письмецо, верно? (control-D) $ Когда он это сообщение получит, в нем будет строк 20 информации, это нечто вроде почтовых штемпелей всех систем, через которые мое сообщение прошло, а строка "от кого" будет выглядеть так: From optik!sirhacksys!att.corn!sc1!shell!pacbell! unisys!sys!sirhack Для посылки локального сообщения достаточно набрать "mail username", где username - логин получателя. Затем наберите сообщение и завершите его control-D. Для чтения поступившей вам почты просто введите mail. To есть: $ mail От: scythian ............ Кому: sirhack ............ Тема: Well.... Ну, блин! ? Точки обозначают всякую пропущенную бредятину. Каждая версия программы mailоформляет свои заголовки. Знак вопроса - это подсказка. После него можно ввести: o d - удалить o fusername - переслать копию к username o w fhame - записать сообщение в файл с именем fhame o s fname - сохранить сообщение с заголовком в файл с именем fname o q - выйти/обновить mail o х - выйти, но ничего не менять o m username - написать сообщение к username o r - ответить отправителю o [enter] - прочесть следующее сообщение o + - перейти на одно сообщение дальше o - - вернуться на одно сообщение назад* o h - распечатать заголовки сообщений из почтового ящика. Есть и другие команды. Чтобы увидеть их перечень, обычно вводят '?'. Если вы посылаете почту кому-то не из своей системы, то ответа придется ждать дольше, потому что тут все будет как с обычным письмом - его должен забрать "почтальон". Для передачи почты система может вызвать и использовать UUCP. Обычно UUCP экаунты никому не нужны - если только у вас не используется UUCP, способный перехватывать почту. ps Процесс. Эта команда позволяет увидеть, что именно вы делаете в оперативной памяти. При каждом запуске программы ей для учетных целей назначается Идентификатор Процесса (PID), и поэтому ее можно отследить в памяти, а также закрыть - вами или корневым пользователем. Обычно команда ps в перечне процессов первой указывает имя запущенной вами оболочки. Допустим, я вошел под логином sirhack, используя оболочку "csh", и у меня работает "watch scythian". Программа watch перейдет в фоновый режим, то есть я смогу делать что-то другое, пока она работает: $ рs. PID TTY NAME 122 001 ksh 123 001 watch $ Это сокращенный листинг PS, выводящийся по умолчанию. В колонке TTY перечислены "tty" (устройства ввода/вывода) через которые был запущен process. Это действительно полезно знать только в том случае, если вы используете слои (спокойно!), или более одного пользователя вошли в систему с тем же экаунтом. Команда ps -f выдаст полный листинг процессов, поэтому вместо краткого "watch" вы скорее всего увидите "watch scythian". kill Прервать процесс. Очевидно, что команда используется для прекращения работы программы в памяти. Вы можете прервать только те процессы, которыми владеете (те, которые вы запустили), если только вы не корневой пользователь или если ваш EUID такой же, как и у процесса, ' который вы хотите прервать. (Про EUID потом). Если вы прервете процесс оболочки, то вылетите из системы. По тому же принципу, если вы вырубите процесс чьей-то оболочки, то этот кто-то тоже вылетит. Поэтому, если я введу "kill 122", то система меня выплюнет. Однако kill лишь посылает UNIX сигнал с указанием "прервать процесс". И если вы примените синтаксис "kill pid", то UNIX вырубит процесс тогда, когда ему захочется, а такое может не случиться никогда. Значит, вы можете сами определять срочность! Попробуйте "kill -num pid" (num - число). Kill -9 pid - это безусловное и почти мгновенное прерывание. $ kill 122 $ kill 123 $ ps PIO TTY NAME 122 001 ksh 123 001 watch $ kill -9 123 : killed $ kill -9 122 garbage NO CARRIER Вы также можете ввести "kill -1 О", чтобы прервать свою оболочку и выйти из системы. Это полезно в скриптах. Часть 7: Программирование оболочки Программирование оболочки есть по сути создание "скриптового" файла для стандартной оболочки, то есть sh, ksh, csh или их разновидностей. Это нечто вроде .bat файла MS-DOS, но более сложного и более гибкого. Он может оказаться полезным в одном аспекте хакерства. Сперва займемся переменными. Переменным, очевидно, можно присвоить значения - как символьные, там и числовые. Выражение nuinber=1 присваивает переменной "number" значение 1. string=Hi There или strlng="Hi There" Оба выражения присваивают переменной string значение "Hi there". Однако использование переменной - это совсем другое дело. Если вы хотите использовать переменную, перед ней должен стоять знак доллара ($). Такие переменные могут быть использованы в программах в качестве аргументов. Когда было написано, что скрипты подобны bat-файлам, то имелось в виду именно это. В файл скрипта можно ввести имя любой программы, и она будет исполнена. Вот простой скрипт: counter=1 arg1=="-uf" arg2="scythian" ps $arg1 $arg2 echo Scounter Этот скрипт выполняет трансляцию в "ps -uf scythian", а после завершения работы печатает "I". Echo выводит на экран как текстовые, так и цифровые константы. Другие команды и примеры: read Считывает что-либо в переменную. Формат: read переменная. Здесь знак доллара не нужен! Если я хочу узнать чье-то имя, то могу написать: echo "Как ваше имя7" read hisname echo Hello $hisname Как ваше имя? Sir Hackalot Привет Sir Hackalot Запомните: read может считывать и числовые значения. trap Отслеживает применение кем-то команды прерывания (Ctrl-c). Формат: trap "command; command; command; и т.д.' Пример: trap "echo 'Фигушки!! Ты так легко от меня не избавишься' ; echo 'Придется тебе это прочитать!'" И теперь, если я нажму control-c во время работы скрипта, то увижу на экране вот что: Фигушки!! Ты так легко от меня не избавишься Придется тебе это прочитать! exit Формат: exit [число]. Обеспечивает выход из оболочки, возвращая код, равный "числу". CASE Выполнение case подобно выбору из меню. Формат команды или структуры таков: case переменная in 1) command; command;; 2) command; command; command;; *) command;; esac Каждая часть может иметь любое количество команд. Однако после последней команды должны стоять ";;". Возьмем такое меню: echo "Выберите:" echo "(Directory (L)ogorf (S)hell" read choice case Schoice in D) echo "Создав раздел..."; is -al ;: L) echo Пока; kill -1 0;: S) exit;; o) Echo "Ошибка! Это не команда " ;: esac esac обозначает конец функции case. Он должен стоять после последней команды. Часть 8: Петли Итак, петли. Таких функций две: петли for и петли repeat. Петли repeat выглядят так: repeat нечто нечто1 нечто2 Эта функция выполняет повторение секции вашего скрипта для каждого "нечто". Если я напишу: repeat scythian sirhack prophet то увижу на своем экране scythian, затем sirhack, затем prophet. Петля for определяется как for для переменной в чем-то do (делай) …… …… done(сделано) пример: for counter in 1 2 3 do echo $counter done Будут выведены значения I, затем 2, затем 3. Часть 9: Использование TEST Формат: Test переменная опция переменная Опции таковы: o -eq =(равно) o -пе О (не раво) o -gt > (больше) o -It < (меньше) o -ge >= (больше или равно) o -le <= (менше или равно) Для строк это: o = если равно o != если не равно Если выржение верно, то функция возвращает ноль. Смотрите: test 3 -eq 3 это означает проверку на верность выражения 3 == 3, и будет выведен ноль. Часть10: ЕХР Применяется для числовых функций. Как правило, вы не можете просто напечатать: echo 4+5 и получить ответ. Вы должны написать: ехрг переменная [или число] оператор переменная2 [или число] Операторы таковы: o + сложение o - вычитание o * умножение o /деление o ^ - степень (в некоторых системах) Пример: ехрr 4+5 var = ехрг 4+5 var получит значение 9. В некоторых системах ехрг иногда распечатывает формулу. Хочу пояснить, что 22+12 вовсе не то же самое, что 22 + 12. Если вы введете: ехрг 22+12 то увидите 22+12 А если введете: ехрг 22 + 12 то увидиге: 34 Часть 11: Системные переменные Это переменные, используемые оболочкой, и они обычно задаются в системном файле .profile. HOME Расположение вашего home (домашнего) раздела PS1 Определяет, как выглядит подсказка в командной строке. Обычно как $. В BSD это обычно &. PATH Путь поиска программ. Когда вы вводите имя программы для ее запуска, она находится не в оперативной памяти, а на диске, и должна быть сперва оттуда загружена. В отличие от MS-DOS большинство команд не находится в памяти. Если программа указана в пути поиска, она может быть запущена на исполнение независимо от того, в каком разделе вы находитесь, а если не указана, то вы должны запускать ее из раздела, где находится сама программа. Путь - это по сути перечень разделов, в котором имена разделов отделяются двоеточиями. Вот типичный путь поиска: :/bin:/etc:/usr/lbi.n:$HOME: Когда вы попытаетесь запустить программу на выполнение, Unix станет ее искать в /bin, /ctc, /usr, /loin и вашем домашнем разделе, и, если не найдет, выдаст сообщение об ошибке. Поиск по разделам производится в том порядке, в каком они перечислены. Поэтому если у вас в домашнем разделе есть программа с именем "sh", и вы введете "sh", то даже если вы сделаете это из домашнего раздела, Unix запустит на исполнение программу из раздела /bin. Поэтому пути следует задавать с умом. Юниксы публичного доступа делают это за вас, но в системе, где вы работаете, пути могут быть и не указаны. TERM Тип вашего терминала. Юникс имеет библиотеку функций с именем "CURSES", которая способна добиться максимума от терминала любого типа - при условии, что обнаружит соответствующие esc-коды. Если вы работаете с экранно-ориентированными программами, то должны установить какие-то параметры дисплея. Типы дисплеев и их esc-коды находятся в файле TERMCAP. Но не забивайте себе голову, просто установите свой дисплей на ansi или vt1OO, CURSES даст вам знать, если не сможет манипулировать эмуляцией вашего терминала. Часть 12: Компилятор С Тут я буду краток. Почему? Потому что если хотите выучиться работать в С, то пойдите и купите себе книгу. У меня нет времени писать еще один текстовый файл про С, потому что он будет огромным. Большинство программ пишется на С. В Юниксе исходные коды программ обозначаются как имяфайла.с. Для запуска исходника на компиляцию дайте команду ее имяфайла.с. Не все программы С станут компилироваться, потому что они могут зависеть от других файлов, которых нет на вашем диске, или же это не полные исходники, а лишь модули. Если вы увидите нечто названное "makefile", то в таких случаях обычно достаточно набрать "make" в командной строке, и это нечто с компилируется, или попытается скомпилироваться. Запуская "make" или "ее", умные люди пользуются операндом работы в фоновом режиме, потому что иногда компиляция длится безумно долго. Пример: $ ее login.с& [1234] $ (1234 - это номер процесса, под которым он идентифицируется.) Часть 13: Файловая система Это инструментальная часть Unix. Если вы не поймете этот раздел, вам никогда не удастся хакать Unix, потому что многие из приколов и штучек для "поднятия доступа" завязаны именно на файловую систему. Для начала поговорим о структуре разделов. По сути это иерархическая файловая система, то есть она начинается в корневом разделе и далее ветвится, как в MS-DOS и, возможно, в AmigaDos. Вот нечто вроде дерева разделов ((d) обозначает раздел): / (корневой раздел) usr (d) sirhack(d) scythian (d) prophet (d) src (d) Итак, эта конкретная система содержит следующие разделы: o / o /bin o /usr o /usr/sirhack o /usr/sirhack/src o /usr/scythian o /usr/prophet Надеюсь, вы поняли эту главку. Все произрастает из корневого раздела. Часть 14: Файловые допуски Ну, наконец-то добрались до действительно серьезного. Файловые допуски. Что это такое, понять нетрудно, но я все равно объясню подробно. Итак, теперь вы должны мыслить категориями "группы пользователей" и "имена пользователей". Каждый принадлежит к группе. В командной строке вы можете после подсказки (знака доллара) набрать "id" и посмотреть, к какой группе вы принадлежите. Группы используются для организации допуска пользователей к определенным вещам. Если бы их не было, то лишь один человек контролировал,/имел допуск к определенным файлам. Запомните также, что Unix, определяя доступ, смотрит на UID пользователя, а не на его имя. Идем дальше. В файловых допусках нет ничего сложного. У каждого файла есть владелец (owner). Обычно файлом владеет тот, кто его создал - скопировав файл, или даже просто отредактировав его. Запомните, что владелец файла должен быть тем, кто управляет CHOWN, поскольку он единственный, кто может изменить файловые допуски. Кроме того, есть еще и владелец группы - обычно это группа, в которой вы находились, когда файл был создан. Для смены группы, к которой при надлежит файл, нужно выполнить команду chgrp. Далее. Файлы могут иметь допуски на выполнение, чтение или запись. Если у вас есть допуск на выполнение, то вы знаете, что вам достаточно набрать имя программы в командной строке, и она выполнится. Если у вас есть допуск на чтение, то вы, очевидно, можете файл читать и делать все, что связано с чтением - например, копировать или печатать его. Но если у вас нет доступа на чтение файла, то вы не сможете сделать ничего, что требует его прочтения. То же самое справедливо и для допуска на запись. Далее,все допуски делятся на три группы. Первая -допуски владельца. Он может установить себе допуски на чтение и выполнение файла, но не на запись в него. Это не позволит ему удалить такой файл. Вторая - групповые допуски. Возьмем для примера такой раздел: $ Is -I runitie r-xrwxr-- sirhack root 10990 March 21 runme Здесь "root" есть имя группы, в которой находится файл. "sirhack" - владелец файла. И если у группы "root" есть допуски на чтение, запись и выполнение файла, то именно это они и могут с ним делать. Скажем, на этот файл наткнулся Scythian, а он принадлежит к группе пользователей "root". Тогда он может файл читать, записывать в него, и выполнять. А потом файл обнаружил datawiz, но он из группы "пользователи". В таком случае групповые допуски на него не распространяются, поэтому он не может тронуть этот файл, верно? Вроде того. Есть третья категория допусков - для "другой" группы. Это означает, что допуски в "другой" группе распространяются на всех, кроме ее владельца, и на пользователей из той же группы, к какой принадлежит файл. Взгляните на листинг раздела вверху, и вы увидите строчку допусков r-x-rwxr-- Первые три символа означают допуски для владельца (г-х). (г-х) переводится как "читать и выполнять разрешается, но записывать в файл нельзя". Второй набор из трех символов г-xRWXr- (тот, что заглавными буквами) есть групповые допуски, и они означают "читать, записывать и выполнять разрешается". Третий набор, г-xrwxR-- есть допуски для всех прочих. Он означает "читать можно, но больше ничего". Листинг раздела будет выглядеть примерно так: $ Is -1 drwxr-xr-x sirhack root 342 March 11 src Раздел помечен буквой "d" в начале строки допусков. Итак, владелец раздела (sirhack) может читать из раздела, записывать в раздел, и выполнять программы из раздела. Корневая группа и все прочие могут лишь читать из раздела и выполнять программы, находящиеся вне его. Поэтому если я захочу сделать раздел только выполняемым, то это будет выглядеть так: $ chmod go-r $ Is wx--x--x sirhack root 342 March 11 src Если теперь в раздел зайдет кто-то кроме "sirhack", то он сможет лишь выполнять находящиеся там программы. Если он запустит команду Is чтобы войти в раздел src, то, оказавшись внутри, увидит сообщение "cannot read directory" (не могу прочесть раздел). Если в разделе есть доступный для чтения файл, но сам раздел имеет запрет на чтение, то иногда все-таки бывает возможно этот файл прочесть. Если у вас нет допуска на выполнение в каком-то разделе, то в большинстве случаев вы не сможете запустить ни одной программы из этого раздела.

Форма входа
Календарь новостей
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Инфо
Друзья сайта
Наша кнопка

Наша текстовая ссылка

||N.r.J|| > TeaM


Наша кнопка-баннер


Баннеры

 
Тут может быть твой баннер
Радио ENERGY
Мини-чат
200
Статистика




<[Kill^TeaM]>^MORGAN^CS © 2024