Если пользователю дан доступ к выполнению команды `/usr/sbin/chcpu` через sudo, в то время как он должен иметь доступ только к `/usr/sbin/nginx`, это может быть вызвано несколькими причинами:
1. Ошибка в конфигурации файла `/etc/sudoers`. Может быть неверная запись, предоставляющая больше привилегий, чем предполагалось.
2. Символическая ссылка или alias, которые могут указывать с `nginx` на `chcpu` или позволяют вызывать `chcpu` под неверным именем.
3. Наследование прав от группы. Пользователь может быть в группе, которой разрешено выполнение `chcpu`.
4. Файл sudoers может включать другие файлы с правилами (`#include` или `#includedir`), в которых установлено разрешение для `chcpu`.
Чтобы устранить эту проблему, необходимо тщательно проверить файл `/etc/sudoers` и все связанные с ним дополнительные файлы конфигурации, а также убедиться, что не настроены aliasы или символические ссылки, которые могут вызывать путаницу.
Касательно второго вопроса, чтобы разрешить группе `nginx-agent` запускать `/usr/sbin/nginx` без запроса пароля с использованием `sudo`, необходимо добавить следующее правило в файл `/etc/sudoers`, используя команду `visudo` для безопасного редактирования:
```bash
visudo
```
Затем в открывшемся текстовом редакторе добавьте следующую строку:
```
%nginx-agent ALL=(ALL) NOPASSWD: /usr/sbin/nginx
```
Здесь `%nginx-agent` представляет собой группу `nginx-agent`. `NOPASSWD:` указывает `sudo` не запрашивать пароль при выполнении команды `/usr/sbin/nginx`.
Не забывайте, что использование `visudo` важно для редактирования `/etc/sudoers`, так как оно защищает от синтаксических ошибок и обеспечивает сохранение целостности файла.
После того как вы сохраните и закроете файл, изменения вступят в силу, и члены группы `nginx-agent` смогут выполнять команду `/usr/sbin/nginx` через `sudo` без ввода пароля.