Запускается ли sed от имени другого пользователя?

[1175121] Вот пример в Bash (Вы должны уметь делать что-то похожее практически на любом языке):

В основном, мы просто сохраняем блок по ходу движения, а затем [1175520] grepping[1175521], чтобы посмотреть, есть ли в нем наш паттерн.

Это очень просто, и, скорее всего, у него будут проблемы с некоторыми крайними случаями (если в вашем конфигурационном файле есть \, это может сбить с толку, например, [1175522]echo -e[1175523]), но вы могли бы расширить основную идею, чтобы разобраться с ними.

Пример использования:

1
16.10.2015, 13:48
1 ответ

Причина, вероятно, в том, что / ( содержащий / etc ) является файловой системой только для чтения, но имеет символические ссылки для / etc / shadow , / etc / passwd и других динамических файлов, которые попадают в файловая система чтения-записи.

Это позволит вам напрямую редактировать файлы shadow и passwd . sed -i терпит неудачу, потому что его реализация фактически не обновляется на месте. Вместо этого он создает временный файл и записывает в него изменения, а затем заменяет исходный файл временной копией. Сообщение об ошибке, которое вы видите, говорит, что sed не может записать (временный) файл / etc / passwdH5HWP7 .

Решение? Либо не используйте -i и управляйте местоположением временного файла самостоятельно, либо укажите флаг -i с именем файла. В обоих случаях вам необходимо указать имя файла в месте с доступом для чтения и записи.

5
27.01.2020, 23:16

Теги

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