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. Она просто выводит полный путь текущего каталога. Итак, вам есть чем заняться до следующего месяца!