Как изменить & ldquo; /etc/bash.bashrc&rdquo ;? Это только для чтения?

В дополнение к ответу @Lekensteyn, я бы хотел добавить, что это поведение основано на том, чтобы сделать что-то одно и сделать это хорошо. tar программа знает, как поместить несколько файлов в один поток (с помощью ), gzip знает, как сжать один файл (добавив расширение .gz) *. Комбинируя эти инструменты, вы можете создать команду, которая сжимает несколько файлов в один файл .tag.gz.

Этот подход очень гибкий - вы можете комбинировать несколько стандартных команд Unix, чтобы делать всевозможные вещи. Например, если вы пишете лучшую программу для сжатия файлов, вам не нужно изменять tar, чтобы позволить ей создавать файлы .tar.mymegazip - вместо этого вы просто выгружаете tar в ваш компрессор. [!d2 ]

Точно так же tar ничего не знает о SSH, но, комбинируя команды, вы можете создать скрипт, который архивирует файлы, загружает их на удаленный компьютер через SSH и не архивирует их там.

Сравнить это команда zip, которая не появилась в Unix, - она ​​имеет встроенные инструменты для сжатия целых каталогов, шифрования файлов, разделения архива на меньшие zip-файлы и т. д.

(footnote) - да, tar может самостоятельно использовать файлы gzip или bzip с помощью переключателей -z и -j, они были добавлены для удобства, а GNU tar фактически порождает gzip или bzip2 в качестве нового процесса .

5
задан 28 October 2011 в 08:20

5 ответов

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

Чтобы стать суперпользователем, введите sudo -s и введите свой пароль. После входа в систему попробуйте выполнить свою команду, и она будет работать.

4
ответ дан 25 May 2018 в 17:30
  • 1
    sudo chmod 777 /etc/bash.bashrc: Ужасная идея . – ændrük 28 October 2011 в 08:52
  • 2
    Они спросили, ответил я. – Matt 28 October 2011 в 08:54
  • 3
    Никто не спросил вас, как создать общесистемные дыры в безопасности. Это было вашим собственным предложением. Ответственность за то, что вы должны были сделать, это объяснить, как изменить содержимое файла в соответствии с наилучшими методами работы Ubuntu для повышения привилегий . – ændrük 28 October 2011 в 09:13
  • 4
    Я отредактировал свой ответ. – Matt 28 October 2011 в 09:51
  • 5
    Невозможно увидеть причину в chmod'ing /etc/bash.bashrc. – Andrejs Cainikovs 18 May 2012 в 13:06
sudo bash -c "echo 'text' >> /etc/bashrc"

Не меняйте владельца. Не хмод. Просто используйте sudo. Откройте это с помощью sudoedit, если вам нужно делать сложные вещи.

Кстати, вы можете вносить изменения для одного пользователя, просто редактируя ~ / .bashrc, не требуя специальных разрешений.

6
ответ дан 25 May 2018 в 17:30

Вы, вероятно, уже обнаружили, что есть много способов сделать это. Но я думаю, что это самый изящный из всех.

echo "my edit" | sudo tee -a /etc/bash.bashrc

См. [F4], если вас интересуют технические детали того, как это работает.

В общем:

Чтобы выполнить работу echo some-text > some-file как root, запустите:
echo some-text | sudo tee some-file
Чтобы выполнить работу echo some-text >> some-file как root, запустите:
echo some-text | sudo tee -a some-file
[ ! d4]
2
ответ дан 25 May 2018 в 17:30
sudo -s

Теперь вы супер администратора, выполните свою команду.

-1
ответ дан 25 May 2018 в 17:30
  • 1
    Что такое «супер админ»? Является ли это обычно используемым термином? – Eliah Kagan 4 June 2012 в 02:32
[F1]
-2
ответ дан 25 May 2018 в 17:30
  • 1
    Это не работает. Вы echo ing с именем root .. но пользователь regular выполняет добавление. – Matt 28 October 2011 в 08:42

Другие вопросы по тегам:

Похожие вопросы: