Добавление sudo в команду find: что это значит?

В чем разница между выходом этих 2 команд

find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \; 

а также

 sudo find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \; 

?

Команды похожи. find добавит права на запись группы во все обычные файлы в каталогах var , vendor , pub/static , pub/media и app/etc в текущем каталоге.

Вторая команда выполнит команду find с повышенными привилегиями (с правами root). Это может потребоваться для изменения разрешений на файлы с помощью chmod если некоторые из файлов принадлежат пользователю, который не является вашим обычным пользователем (пользователем, выполняющим любую командную строку), или если этот пользователь не может получить доступ ко всем файлам в этих каталогах или ниже из-за прав доступа к каталогам.

См. man sudo :

 sudo, sudoedit — execute a command as another user 

Поскольку вы не указываете имя пользователя для sudo в вашем примере (например, sudo -l anotheruser ), он запускает команду как пользовательский root по умолчанию.

Таким образом, разница в том, что первая команда выполняется с разрешениями пользователя текущего терминала, вторая команда выполняется с разрешениями пользователя root .

Для получения дополнительной информации см. Справочную страницу sudo .

find var vendor pub/static pub/media app/etc -type f -exec chmod g+w {} \;

Невозможно найти в некоторых каталогах. Вы получите исключение: find: 'XXX': Permission denied Второй cmd использует sudo для расширения разрешений на просмотр