В настоящее время, когда я хочу отредактировать файл моих хостов, мне нужно использовать sudo nano /etc/hosts, есть ли что-нибудь, что я могу сделать, чтобы сказать «разрешить пользователю tom редактировать файл hosts без необходимости sudo»?
Я бы не настраивал разрешения для любого файла, связанного с системой
. Что вы можете сделать, это сделать базовый скрипт
#!/bin/bash
sudo nano /etc/hosts
Называть его, как вы хотите, например, edithosts.sh и поместите его в папку сценариев внутри вашей домашней папки.
chmod 700 /path/to/script/file/edithosts.sh Это предотвратит несанкционированное чтение или запись в файл, поскольку ss TripeHound сказал, что содержимое этого файла теперь выполняется с правами root без пароля.
Затем добавьте следующую строку в /etc/sudoers
tom ALL = (root) NOPASSWD: /path/to/script/file/edithosts.sh
Это позволит вам sudo sh /path/to/script/file/edithosts.sh без ввода пароля
Рекомендуемое решение [ ! d6]
Как отметил @paul в комментариях, sudoedit может быть лучшим решением.
tom ALL = (root) NOPASSWD: sudoedit /etc/hosts
Поскольку это разрешает только редактирование /etc/hosts и не заставляет вас работать с повышенным текстовым редактором