2012-06-19 3 views
0

Я установил wondershaper на Ubuntu, это программа, которая дросселирует скорость Интернета, у меня есть средние братья и сестры, которые используют всю пропускную способность, когда меня нет дома, и мой Интернет ограничено, я хочу создать Баш файл, который будет выполняться при запуске, значит, когда они поворачиваются на компьютере, эти коды, которые я обычно набираю в терминалеКак предоставить пароль в файле bash, который должен быть выполнен в терминале

sudo wondershaper eth0 3 3 
//It asks me for my password 

The bash file will be something like this 
#!/bin/bash 
sudo wondershaper eth0 3 3 

но то, что код, который дает ему пароль, когда он запрашивает его в терминале? без меня, набрав его?

+0

Почему не просто запустить скрипт в корне? Нет необходимости использовать sudo, и поэтому он не будет запрашивать пароль. Кроме того, если ваши средние братья и сестры - умные братья и сестры, они не смогут отключить скрипт без пароля root. –

+0

Можете ли вы написать правильные коды, пожалуйста? Я новичок :( –

ответ

0

Вы не можете. Это небезопасно, потому что вы должны написать пароль в файле.

Вы должны изменить/и т.д./sudoers, чтобы ваше использование пользователь Sudo без пароля, добавьте следующую строку:

$USER ALL=(ALL) NOPASSWD: /usr/bin/wondershaper

Где $ USER это имя пользователя.

В противном случае вы можете добавить это в /etc/init.d/rc.local и, таким образом, он будет запущен как root во время загрузки.

+0

Похоже, ему нужен только sudo доступ к одной команде, не все из них. – jordanm

+1

Поэтому я бы посоветовал поставить команду в скрипт init. Я не использую ubuntu, но я думаю, что/etc/init.d/rc.local будет работать. –

+0

@jordanm, да, вы правы. Но я точно не знаю, где у wondershaper есть его. Это правильный путь? – Zagorax

1

Как говорили другие, оставляя ваш пароль в виде простого текста - плохая идея. Гораздо лучше, чтобы этот скрипт выполнялся как root как часть скриптов init.

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

Вместо того, чтобы ваш скрипт работал в вашей обычной учетной записи пользователя, запустите его на учетной записи root. Затем вам не нужно предоставлять пароль для получения привилегий root. Вы будете запускать скрипт от /etc/init.d, который является каталогом Ubuntu для запуска сценариев. Вероятно, вы захотите добавить его к ранее существующему скрипту, например rc.local (файл, который запускается после запуска всех других скриптов инициализации).

Оставьте sudo части вашего скрипта (например, sudo echo просто станет echo), так как пользователю root не нужно запрашивать привилегии суперпользователя. Вот и все!

Вы сказали, что вы новичок в Linux, так что здесь два ресурса, которые помогут вам начать работу:

+0

Извините. Этого недостаточно.Не каждый файл в этой папке выполняется. Это зависит от уровня запуска. Он должен добавить эту команду в /etc/init.d/rc.local или ему нужно создать новый сценарий запуска. – Zagorax

+0

Да, извините - я как бы разобрался над настройкой сценария установки. Я отредактирую свой ответ, чтобы ответить на этот вопрос. –

Смежные вопросы