Как переключиться с Bash на Fish Shell на Linux

В операционной системе Ubuntu пользователи, которые состоят в группе «sudo», могут выполнять задачи администратора, используя одноименную группе команду — sudo. Сегодня мы рассмотрим, как дать пользователю данную привелегию или же ее отозвать.

Установите Fish Shell

Прежде чем переключиться с Bash на Fish Shell в качестве основного терминала Shell, вам необходимо установить его на Linux. К счастью, он очень популярен и есть пакеты его почти в каждом дистрибутиве Linux. Откройте терминал и введите команду ниже, чтобы установить его.Ubuntu

Установите Fish Shell

sudo apt install fishDebiansudo apt-get install fishArch Linuxsudo pacman -S fishFedorasudo dnf install fishOpenSUSE

Установите Fish Shell

sudo zypper install fish Другие Linux Fish Shell существует давно, несмотря на то, что она довольно современна. Из-за своего возраста довольно легко получить её практически для любого дистрибутива Linux. Чтобы установить её, откройте терминал и проверьте свой менеджер пакетов на «Fish » или «Fish Shell». Кроме того, ознакомьтесь с официальной страницей Github. Переключить Bash на Fish Shell Использование Fish в качестве основной оболочки может занять некоторое время, поскольку оно сильно отличается от Bash. В отличие от многих других альтернатив (например, Zsh, Ksh и т. д.), Fish не использует систему Bash в качестве базы. Поскольку у Fish есть этот дизайн, некоторые команды могут отказаться от работы из-за другого синтаксиса, и вам, вероятно, придется изменить некоторые привычки при использовании терминала. К счастью для вас, есть отличная страница, в которой описываются все тонкости Fish Shell. Он описывает Синтаксис Fish, как он обрабатывает систему и много других вещей. Если вы планируете сделать переход, сделайте себе одолжение и прочитайте то что находится на этой того, как вы посмотрите на шпаргалку, безопасно откройте терминал и измените оболочку вашего пользователя по умолчанию от Bash до Fish Shell. В терминале запустите команду chsh. Однако не запускайте её с помощью sudo, иначе вы можете обменять оболочку корневого пользователя на Fish, а не на свою собственную. chsh -s /usr/bin/fishЗапуск команды chsh назначит вашему пользователю новую оболочку. Чтобы получить мгновенный доступ к Fish с вашим пользователем, напишите Fish в терминал. В противном случае перезагрузите ПК с Linux, чтобы завершить работу коммутатора. После перезагрузки войдите в систему и снова откройте терминал. Если все пойдет правильно, Fish станет новым дефолтом, и вас встретит Fish Shell, а не Bash. Настройка FishХотя вы перешли на Fish Shell, он не полностью готов к использованию. Следующий шаг — настроить его. В терминале создайте новую папку конфигурации. mkdir -p ~ /.config/fishЗатем создайте новый файл конфигурации внутри новой папки конфигурации Fish: touch ~ /.config/fish/Использование touch создает пустой конфигурационный файл Fish Shell, в котором ничего нет. На этом этапе безопасно добавлять в оболочку любые пользовательские конфигурации. Для большинства пользователей единственной необходимой модификацией является необходимость постоянного отключения приветственного сообщения. Добавьте изменения в конфигурацию Fish, выполнив следующую команду: echo ‘set fish_greeting «»‘ >> ~/.config/fish/ Конфигурация Fish Config Настройка Fish на нескольких компьютерах может быть довольно раздражающей, так как вам придется создавать новую конфигурацию для каждого ПК. Более быстрый способ — создать резервную копию файла и восстановить его на каждом ПК, на котором планируется использовать Fish. Чтобы создать резервную копию конфигурации, запустите эту команду в терминале cp ~/.config/fish/ ~/Documents/Чтобы восстановить конфигурацию, переместите файл на новый компьютер, поместите его в папку «Документы» и запустите: mkdir -p ~/.config/fishcp ~/Documents/ ~/.config/fish/Настройка По большей части, Fish настроен и готов к использованию. Однако, если вы хотите настроить и настроить его дальше, есть способ сделать это. Войдите в терминал и запустите эту команду: fish_configЗапуск этой команды автоматически откроет новую вкладку в вашем веб-браузере, так как это возможные аспекты Fish.В окне Fish_Config вы сможете применять предустановленные темы оболочки, назначать переменные, настраивать пользовательские функции, просматривать историю команд, назначать аббревиатуры, псевдонимы и многое другое!

Читайте также:  10 лучших сред разработки (IDE) для Linux

Подводные камни

Знание про sudo играет с новичками злую шутку. Каждый раз, когда они видят "странные" ошибки, то не пытаются разобраться, а пробуют запустить команду с sudo без параметров, то есть просто выполнить её от суперпользователя. Часто такой подход срабатывает, но он создаёт ещё больше проблем, чем решает.

Запуск команды, которая создаёт файлы и директории из-под sudo, приводит к тому, что владельцем этих файлов становится пользователь root. Фактически все последующие обращения к этому файлу без sudo начнут выдавать ошибку об отсутствии прав доступа. Причём даже необязательно работать с этими файлами напрямую: множество программ так или иначе обращаются к файловой системе для чтения конфигурационных и других файлов.

Правильный выход из ситуации в каждом случае свой. В некоторых случаях sudo это то, что нужно, но иногда требуется изменить права (об этом в следующем уроке), а иногда и переустановить какую-нибудь часть системы.

Наиболее общее правило может быть таким: всё, что лежит в личных директориях пользователя, должно принадлежать пользователю, а не суперпользователю. Всё, что требует дополнительных прав, так как находится в системных путях (вне домашней директории пользователя), скорее должно запускаться с sudo (но это необязательно).

~$ ls -la # Всё содержимое домашней директории принадлежит одному пользователю. # Сама директория пользователя принадлежит ему же, # а родительская директория принадлежит суперпользователю drwxr-xr-x+ 117 mokevnin staff 3744 Feb 19 15:55 . drwxr-xr-x 5 root admin 160 Oct 12 19:15 .. -r——— 1 mokevnin staff 7 Nov 21 2017 .CFUserTextEncoding -rw-r—r—@ 1 mokevnin staff 22532 Feb 8 00:04 .DS_Store

Дополнительные материалы

  1. sudo vs su

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Настройка подключения к com-порту

Запуск программы лучше выполнять в привелигированном режиме sudo, т.к. программе могут понадобиться повышенные права для доступа к порту или для сохранения настроек.

Для доступа к меню конфигурации программу minicom нужно запустить с параметром -s:

sudo minicom -s

Выбираем пункт «Настройка последовательного порта».

Настройка подключения к com-порту

При использовании нуль-модемного кабеля, адресом последовательного порта в linux будет /dev/ttyS0 для COM1, /dev/ttyS1 для COM2 и т.д. В случаях, когда используется адаптер USB-to-COM, в качестве порта ввода-вывода будет использоваться /dev/ttyUSB0 или /dev/ttyUSB1.

Читайте также:  iPhone X(s/r)/8/7/6 не прошивается ошибки

Список доступных портов можно посмотреть командой:

dmesg | grep tty

Настройки для подключения к последовательному порту USB-to-COM с заданными параметрами будут выглядеть примерно так:

Для выбора последовательного порта нужно нажать клавишу [A] и отредактировать значение.

Для изменения скорости нажать клавишу [E] и затем [D], чтобы выбрать скорость 38400.

Нажимаем два раза клавишу [Enter], чтобы принять изменения и вернуться в начало меню «Конфигурация».Сохраняем настройки, выбрав пункт «Сохранить настройки как dfl». Это изменит настройки запуска программы, используемые по-умолчанию.

Настройка подключения к com-порту

Если выбрать пункт «Сохранить настройки как..» и указать имя файла настроек, например «cisco», то это не изменит настройки по-умолчанию и в дальнейшем можно будет запускать программу с конкретными параметрами, указав имя файла с настройками.

minicom cisco

В завершении настройки переходим к пункту «Выход» и если все настроено правильно, то будет установлен сеанс подключения по последовательному порту.

Подробнее о группе администратора и группе sudo на сервере Ubuntu

Члены административной группы могут получать привилегии root. Все члены группы sudo запускают любую команду на сервере Ubuntu. Поэтому просто добавьте пользователя в группу sudo на сервере Ubuntu. Возможности группы admin были значительно урезаны, начиная с версии Ubuntu и выше. Следовательно, admin группы больше не существует или она просто используется в версии Ubuntu или выше. Причина, по которой это работает:

# grep -B1 -i ‘^%sudo’ /etc/sudoers

ИЛИ

$ sudo grep -B1 -i ‘^%sudo’ /etc/sudoers

Примеры возможных выводов данных:

# Allow members of group sudo to execute any command %sudo    ALL=(ALL:ALL) ALL

Давайте посмотрим на некоторые практические примеры.

Изменение настроек учетной записи пользователя

С помощью команды chfn можно внести или изменить информацию учетной записи пользователя (ФИО, рабочий телефон, рабочие координаты и т.д, username — имя пользователя):

chfn -f полное_имя -о office -p рабочий_телефон -h домашний_телефон -u -v username

Для задания пароля используется команда passwd:

passwd username

В результате выполнения команды нам будет предложено ввести новый пароль и повторить его.

Если мы хотим дать пользователю возможность сменить пароль при первом входе в систему, следует ввести команду:

change -d 0 username

Как отзвать привелегии суперпользователя

Для того, чтобы сделать пользователя обычным — без прав выполнения команд от имени суперпользователя нужно удалить его из группы sudo. Сделать это можно с помощью следующей команды:

sudo deluser ИМЯ_ПОЛЬЗОВАТЕЛЯ sudoУдаление пользователя из группы sudo

Как отзвать привелегии суперпользователя

Теперь можно убедиться, что пользователь более не может выполнять команды от имени root:

su testuser sudo whoamiПроверяем отсутствие прав суперпользователя

Как мы можем видеть — система не позволяет пользователю использовать команду sudo.

При удалении пользователя из группы sudo следует быть внимательным, чтобы не удалить единственного администратора из системы.

Как отзвать привелегии суперпользователя

17 987Rate this item: Rating↓ Ещё по теме

  • Как изменить пароль root в Ubuntu

    Здравствуй, дорогой читатель, если у тебя возникла необходимость поменять пароль суперпользователя в…

  • Linux выручит при отсутствии линейки

    Что делать, если нужно воспользоваться линейкой, но ее нету под рукой? Linux…

  • Слушаем Наше Радио в Linux

    Наслаждаемся хорошей музыкой и малым потреблением оперативной памяти. Для просулушивания интернет-радио есть…

  • Установка ADB в Ubuntu

    Описание процесса установки Android Device Bridge в Ubuntu В центре приложений Ubuntu…

Читайте также:  Как установить публичную watchOS 7 прямо сейчас

Использование traceroute

В следующих разделах показано, как использовать traceroute в вашей системе Linux.

Основное использование

Основной метод использования traceroute довольно прост. Все, что требуется traceroute, — это пункт назначения для выполнения зондирования. Назначением может быть домен или IP-адрес.

$ traceroute

$ traceroute 8.8.8.8

Если сеть настроена на блокировку сигнала traceroute, то этот зонд будет отмечен звездочками.

IPv4 или IPv6

Использование traceroute

По умолчанию traceroute будет использовать Интернет-протокол по умолчанию, на который настроена ваша система. Чтобы вручную установить версию IP, выполните описанную ниже процедуру.

Чтобы указать traceroute на использование IPv4, используйте флаг -4:

$ traceroute -4

Чтобы указать traceroute использовать IPv6, используйте флаг -6:

$ traceroute -6

Тестирование портов

Если есть необходимость протестировать конкретный порт, его можно указать с помощью флага -p. Для отслеживания UDP traceroute будет начинаться с заданного значения и увеличиваться с каждым зондом. Для трассировки ICMP значение будет определять начальное значение последовательности ICMP. Для TCP и других это будет постоянный порт назначения для подключения.

$ traceroute -p <порт>

Скрытие имен устройств

В некоторых ситуациях имена устройств в выводе могут сделать вывод беспорядочным. Для большей наглядности вы можете скрыть имена устройств из вывода. Для этого используйте флаг -n:

$ traceroute -n

Предел тайм-аута Traceroute

По умолчанию traceroute ждет 5 секунд, чтобы получить ответ. В определенных ситуациях вы можете изменить время ожидания на больше или меньше 5 секунд. Для этого используйте флаг -w. Обратите внимание, что значение времени — это число с плавающей запятой.

Использование traceroute

$ traceroute -w 6.0

Методы исследования

Есть несколько методов, которые вы можете использовать для проверки удаленного адреса. Чтобы указать traceroute на использование эха ICMP, используйте флаг -I:

Чтобы использовать TCP SYN для зондирования, используйте флаг -T:

$ sudo traceroute -T

Установка максимального количества прыжков

По умолчанию traceroute отслеживает 30 переходов. Traceroute предлагает возможность вручную установить количество отслеживаемых переходов.

Используйте флаг -m для количества переходов:

$ traceroute -I -m 10

Указание интерфейса

Если к компьютеру подключено несколько сетевых интерфейсов, может оказаться полезным указать сетевой интерфейс, который будет использоваться для отправки пакетов. Чтобы указать сетевой интерфейс, используйте флаг -i:

$ sudo traceroute -i enp0s3

Определение количества запросов для прыжка

Использование traceroute

Чтобы определить количество запросов для перехода, укажите это число с помощью флага -q:

$ traceroute -I -q 4

Маршрутизация пакетов через шлюз

Чтобы маршрутизировать пакеты через определенный шлюз, используйте опцию -g, за которой следует шлюз:

$ traceroute -I -g

Шаг — Тестирование доступа к sudo

Чтобы проверить, что новые разрешения sudo доступны, сначала нужно воспользоваться командой su для переключения на новую учетную запись пользователя:

  • su — sammy

Используя нового пользователя, убедитесь, что вы можете использовать sudo, добавив sudo перед командой, которую вы хотите запустить с привилегиями суперпользователя:

  • sudo command_to_run

Например, вы можете вывести список содержимого директории /root, которое обычно доступно только для пользователя root user:

  • sudo ls -la /root

При первом использовании sudo в сеансе вам будет предложено ввести пароль учетной записи данного пользователя. Введите пароль, чтобы продолжить:

Output:[sudo] password for sammy:

Примечание: это не запрос пароля root! Введите пароль пользователя с привилегиями sudo, а не пароль root.

Если ваш пользователь находится в соответствующей группе и вы ввели правильный пароль, команда с sudo будет запущена с правами root.