LXF96:Bash
|
|
|
Содержание |
Bash: Работаем с пользователями
Часть 1: Хотите немного порезвиться в командной строке, но не знаете, с чего начать? Рэйчел Проберт покажет несколько базовых команд, которые пригодятся новичкам.
Мы начинаем новую серию статей о работе в командной строке с использованием Bash. Собираетесь ли вы сделать хобби своей профессией или просто хотите разобраться в своей домашней сети, вам потребуется овладеть приемами работы в командной строке. Интерфейс командной строки (CLI, command line interface) предоставляет пользователю большие возможности по сравнению с графическим интерфейсом (GUI, graphical user interface). Обычно он еще и быстрее. Освоив несколько команд, которые вы будете использовать ежедневно, вы сэкономите массу времени и сил.
Представьте, что вам нужно срочно найти написанный несколько недель назад отчет. Имя файла вы точно не помните, но знаете, что отчет был связан с компанией ABC. Сразу после того, как вы его найдете, отчет нужно отправить коллеге. Обычно это занимает несколько минут. Но Bash и немного волшебства (см. команды ниже) помогут сделать все за десять секунд:
grep -r -i -H CompanyABC /home/rjprobert/work cat filename | mail colleague@work.com
Наверное, пока эти команды ни о чем вам не говорят, но к концу этой серии статей вы будете точно знать, что к чему, и уверенно использовать их каждый день. Однако, начнем с азов. Сегодня мы посмотрим, как работают команды управления доступом root, su и sudo и когда ими нужно пользоваться. Мы рассмотрим создание новой учетной записи, а также научимся перемещаться по каталогам и просматривать их содержимое.
Часть 1: Root, su и sudo
Итак, что же такое «доступ с привилегиями администратора (root)»? Каждый, у кого есть такой доступ, словно владеет ключами от города. Права root позволяют вам делать все что угодно, в том числе, изменять важные системные файлы. Один неверный шаг – и систему нужно переустанавливать заново. Например, команда rm -rf / в мгновение ока удалит все файлы, находящиеся на компьютере. Поэтому большинство администраторов используют этот режим доступа только в тех случаях, когда это совершенно необходимо. Я люблю проводить аналогию между работой в режиме администратора и девизом одного из моих любимых супергероев: «Большая сила – большая ответственность». В общем, не используйте доступ с привилегиями администратора без необходимости, а когда используете, будьте максимально осторожны. Если вы не знаете, от имени какого пользователя вы работаете, это очень просто проверить. Откройте окно терминала (Приложения > Дополнительные > Терминал). Появится маленький черный экран с белой стрелкой приглашения (>). Посмотрите на последний символ перед мигающим курсором. Знак доллара ‘$’ означает, что вы зашли в систему как обыкновенный пользователь, а символ решетки ‘#’ – как супергерой.
Итак, что же нам остается? Что делать, если мы не должны заходить в систему как пользователь root? Ответ таков: нужно работать под обычным пользователем и использовать команды su или sudo для решения задач администрирования. Каждый раз, когда для решения задачи требуются привилегии администратора системы, вы можете ввести команду su (сокращение от Substitute User – заместить пользователя). После этого у вас запросят пароль администратора, вознаграждением за который послужит выполнение команды. Вы по-пре- жнему можете нанести системе серьезный ущерб, вы можете делать что угодно и где угодно.
Лучшим вариантом будет настройка и использование команды sudo, с помощью которой можно ограничить тот ущерб, который вы можете причинить. Как администратор системы, вы должны определить, что может делать каждый пользователь и где он может это делать. Для выполнения команды предварите ее командой sudo. После запроса пароля система выполнит только ту команду, которую вы имеете право дать. Добавить новых пользователей и изменить привилегии существующих можно в файле /etc/sudoers. Для изменения файла подойдет любой текстовый редактор, но гораздо лучше использовать команду visudo. Это одна из тех задач, для решения которой вам потребуются права администратора системы.
Man-страница, в которой вы найдете все необходимое для добавления пользователей в список sudoers, выдается командой:
man sudoers
В конечном счете, вы и только вы выбираете средства, с помощью которых риск падения системы от опечаток и непродуманных действий будет сведен к минимуму. Но пока вы помните мантру «root не для рутинной работы», ошибок быть не должно. А сейчас давайте перейдем к повседневным задачам, которые вы можете решить с помощью командной строки.
Часть 2: Создание новой учетной записи
Для начала давайте познакомимся с некоторыми командами. Мы создаем новую учетную запись для себя (или кого-то другого), т.е. для обыкновенного пользователя, для решения повседневных задач, таких как отправка почты и работа с документами. Для того, чтобы добавить нового пользователя в систему, я буду использовать команду adduser вместе с именем пользователя «rjprobert». Это простой и удобный способ создания учетной записи. У вас будет запрошен пароль пользователя и некоторая другая информация.
Введите следующую команду, заменив моего пользователя своим. Запомните, что эта операция потребует привилегий администратора, поэтому вам придется использовать команду su или sudo в зависимости от того, как вы хотите использовать свою силу.
adduser rjprobert
Когда вы создаете нового пользователя, для него создается подкаталог в каталоге /home. Мы может проверить, что новый пользователь появился, с помощью команды:
ls /home
Команда ls /каталог просто выводит его содержимое. Таким образом, мы должны увидеть каталог нового пользователя, которого только что добавили.
С помощью различных опций команды ls можно получить дополнительную информацию. Сама команда ls выводит только имена файлов в текущем каталоге. Вы можете также попробовать ls d*, чтобы вывести список всех файлов, имена которых начинаются с ‘d’ и так далее. Попробуйте команду ls -l которая выведет список файлов, отсортированных в алфавитном порядке. Информация о каждом файле должна выглядеть примерно так:
-rw-r--r-- 1 rjprobert users 132422 June 05 11:22 mypic.jpg
Эта информация состоит из прав доступа к файлу (см. Первые шаги LXF91), числа ссылок на файл, имени пользователя и группы, которым он принадлежит, размера в байтах, даты и времени его создания и, наконец, имени файла.
У команды ls есть более 50 чувствительных к регистру опций. Это означает, что ls -g и ls -G вернут разные результаты: первая команда выведет подробный список файлов (как и ls -l), но без информации о владельце файла, в то время как вторая – подробный список файлов без информации о группе. Полный список опций команды ls можно найти на ее man-странице.
Если вы захотите сменить каталог и оказаться в каталоге /home, просто введите команду:
cd /home
Итак, мы только что использовали команду cd. Это не так трудно! Давайте посмотрим, как еще мы можем применять ее для перемещения по другим каталогам. Команда cd /[имя каталога] приведет вас в один из основных каталогов системы. Чтобы подняться на уровень выше, используйте cd ... Чтобы зайти в подкаталог, вам потребуется команда cd [имя подкаталога], а просто cd вернет вас в домашний каталог.
Надеюсь, вы поняли, насколько гибким и мощным инструментом может быть Bash. В качестве домашней работы попробуйте побродить по вашей системе с помощью команды cd и узнайте, где что живет. Совет: если вы потерялись и не можете вспомнить, где находитесь, вас всегда выручит команда pwd. Она просто выводит полный путь текущего каталога. Итак, вам есть чем заняться до следующего месяца!
Врезка
Что такое Bash?
Когда вы используете командную строку Linux, всегда запущена программа, которую называют оболочкой. Оболочка – это программа, с помощью которой вы взаимодействуете с системой. Когда вы набираете команды в строке терминала, именно оболочка считывает, обрабатывает их и передает операционной системе. Есть много различных программ-оболочек, но в большинстве систем Linux (как и в Mac OS X) по умолчанию используется Bash. Это название представляет собой акроним фразы «Bourne-again shell», игра слов с «рожденная снова» (born again) оболочка Bourne shell – очень важная оболочка, написанная давно Стефеном Борном [Stephen Bourne].
Помощь в командной строке
Вместе с Linux поставляется впечатляющая система интерактивных справочных руководств, часто называемых man-страницами. Они содержат исчерпывающую информацию как о ядре, так и об остальных утилитах. Набрав man любая_команда, вы получите полную информацию по использованию команды.Руководства разбиты на разделы, которые включают в себя:
- Пользовательские команды
- Системные вызовы
- Вызовы библиотечных функций
- Специальные файлы
- Форматы файлов
- Игры
- Прочее
- Команды администрирования
Команды Linux, вызовы функций и файлы часто снабжаются номером раздела, который указывается в круглых скобках после имени команды. Например, passwd(1) означает, что информацию можно получить с помощью команды man 1 passwd. Как новички, обычно мы будем использовать только первый раздел.
Полезный совет
Bash завершает имена файлов при нажатии клавиши Tab. Наберите cd и первую букву(ы) названия каталога, и клавиша Tab завершит его имя для вас.