Что такое команда для копирования, чтения и удаления файла в linux

Да, вызываемая вами функция выполняется в текущей оболочке.
Это предполагает, что функция была импортирована (, определена )в текущей оболочке. Это можно было бы сделать, найдя какой-нибудь файл (, например ~/.bashrc ), или написав функцию в текущей оболочке вручную. Вы можете подтвердить это предположение, выполнив:

$ type -a change_path

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

Это не означает, что функция всегда будет изменять переменные, если функция правильно ограничена, например, используя (...)вместо{...}:

$ change_path()(
    export PATH="foobar:$PATH";
)

Но на самом деле эта функция все еще работает в текущей оболочке, просто она запускает под-оболочку(...)

Для подтверждения прочтите это из руководства bash (Акцент мой):

FUNCTIONS
A shell function, defined as described above under SHELL GRAMMAR, stores a series of commands for later execution. When the name of a shell function is used as a simple command name, the list of commands associated with that function name is executed. Functions are executed in the context of the current shell; no new process is created to interpret them (contrast this with the execution of a shell script).

4
17.04.2020, 19:48
1 ответ

Также обратите внимание на разрешения (пользователя, группы, мира )и владельца, поэтому в одном ответе используется sudo cpвместо только cp— файлы в /var/log, скорее всего, доступны для чтения только пользователю root. В этом случае sudo cpтакже копирует разрешения и устанавливает право собственности на пользователя root. Таким образом, файл в /var/log, принадлежащий пользователю apache, групповому apache с правами доступа 600 (, доступному для чтения только владельцу, а не группе, а также не всем остальным ), оказывается владельцем root, а также только доступный для чтения root … в вашем пользовательском каталоге.

Так что, возможно, проверьте право собственности в целевом каталоге с помощью ls -lи исправьте с помощью sudo chownи/или sudo chmod— я предполагаю, что это создает угрозу безопасности, открывая файлы журнала с разными разрешениями в папке другого владельца. Подумайте об архивировании и/или удалении должным образом.

0
19.03.2021, 02:28

Теги

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