Я могу отредактировать хосты без sudo?

В настоящее время, когда я хочу отредактировать свой файл hosts, я должен использовать sudo nano /etc/hosts, есть ли что-либо, что я могу сделать для высказывания, "позволяют tom пользователь для редактирования файла hosts, не нуждаясь sudo"?

7
задан 22 March 2017 в 05:34

2 ответа

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

, я не рекомендую ни один из следующих методов, но они более безопасны, чем страшное chmod 777. Вы могли , например, измените владение группы /etc/hosts и дайте разрешение записи группы:

sudo addgroup editors            #make a new group
sudo adduser $USER editors       #add yourself to it
sudo chown :editors /etc/hosts   #change the group ownership
sudo chmod 664 /etc/hosts        #give the group write permission

Вы теперь смогли бы отредактировать файл без sudo. Или, Вы могли использовать ACLs, если Вы имеете acl пакет (установленный наверняка в 15,04 и позже)

sudo setfacl -m $USER:rw /etc/hosts

, Но, снова, я не рекомендую ни одно из тех действий. Просто используйте sudo.

23
ответ дан 23 November 2019 в 06:07

Я не скорректировал бы полномочия никакого связанного с системой файла

, Что можно сделать, делают основной сценарий

#!/bin/bash
sudo nano /etc/hosts

Вызов им вообще, Вы хотите, например, edithosts.sh и помещаете его в папку сценариев в Вашей домашней папке.

chmod 700 /path/to/script/file/edithosts.sh Это предотвратит несанкционированное чтение или запись в файл, потому что ss TripeHound сказал, содержание этого файла теперь выполняется с корневыми полномочиями без пароля.

Затем добавляют следующую строку к /etc/sudoers

tom ALL = (root) NOPASSWD: /path/to/script/file/edithosts.sh 

, Который позволит Вам sudo sh /path/to/script/file/edithosts.sh, не имея необходимость вводить Рекомендуемое решение пароля

, Поскольку @paul указанный в комментариях, sudoedit могло быть лучшее решение.

tom ALL = (root) NOPASSWD: sudoedit /etc/hosts

, поскольку это только позволяет редактировать /etc/hosts и не оставляет Вас запускающий поднятый текстовый редактор

9
ответ дан 23 November 2019 в 06:07

Другие вопросы по тегам:

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