Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Зачем команду sudo нужно выполнять в режиме sudo и что с этим делать?  (Прочитано 859 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн red_python

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Доброго всем времени суток!

Помогите пожалуйста разобраться с такой проблемой..

Мне необходимо дописать в файл /etc/hosts ещё один виртуальный хост. Открываю консоль ввожу следующую команду

ls -l /etc/hosts
# -rw-r--r-- 1 root root 242 авг 21 17:57 /etc/hosts

Это чтобы понятно было о чём речь. Теперь сам экшн

sudo echo '127.0.0.1 localhost' > /etc/hosts
# bash: /etc/hosts: Отказано в доступе


ничего не получилось, но если дальше ввести команды

sudo su
# пароль

sudo echo '127.0.0.1 localhost' > /etc/hosts
# запись произведена успешно

 :o я даже не спрашиваю в чём тут логика... просто объясните пожалуйста как с этим бороться? Ведь мне надо запустить bash-скрипт, в котором такого рода инструкций уйма. Можно запустить скрипт через sudo bash myscript.sh, но там есть команды, которые просто отказываются под рутом запускаться, например:

sudo firefox http://localhost

сборка nix
OS:             Xubuntu
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic


ТС не появлялся на Форуме более трех месяцев по состоянию на 12/02/2020 (последняя явка: 11/03/2019). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 12 Февраля 2020, 23:26:31 от zg_nico »

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
sudo sed -i '1! Q;c\127.0.0.1 localhost' /etc/hosts
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн red_python

  • Автор темы
  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
как вариант вот ещё нашёл:

echo '# add line to end' | sudo tee -a /etc/hosts > /dev/null
если честно хотелось бы понять в чём смысл таких сложностей..

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
каждый день sudo?
начало sudo su стоит терминал, конечно каждый.
Wars ~.o

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля

Цитировать
sudo echo '127.0.0.1 localhost' > /etc/hosts
[/size]# bash: /etc/hosts: Отказано в доступе[/size]




только команда echo выполняется в повышенными правами, а результат перенаправляется в файл уже с правами обычного пользователя
правильно для текущей оболочки
 sudo bash -c  'echo xxxxx >> /etc/hosts'


или как  выше
echo xxxx|sudo tee -a file


Цитировать
sudo su
# пароль
sudo echo '127.0.0.1 localhost.....
здесь вы получаете рутовый шелл, и sudo тут  совсем не нужен.
И sudo su не лучший способ получения рутовых прав, т.к не меняются переменные для рута, и вы с рутовыми правами  в своем хоме.


sudo su -
sudo -i

 

Страница сгенерирована за 0.033 секунд. Запросов: 23.