LINUX.ORG.RU

[bash] Небольшой вопрос

 


0

1

Например есть совсем не большой скрипт(да даже не назовёшь это скриптом)

#!/bin/bash
ifconfig wlan0 up &
iwconfig wlan0 essid [тут ESSID точки доступа] &
wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf &
dhcpcd wlan0

Но
dhcpcd должен запускаться от рута
как сделать что бы скрипт запускался с правами рута?


>dhcpcd должен запускаться от рута как сделать что бы скрипт запускался с правами рута?

неверно мыслите: разрешите данному конкретному юзверю запускать с конкретного компьютера, конкретную программу.

man sudo

man visudo

drBatty ★★
()

да, разрешать надо не в коем случае не скрипт, а dhcpcd. Ибо если разрешить скрипт, получится РЕШЕТО.

drBatty ★★
()

Сейчас сделал так

sudo gedit /etc/sudoers

User_Alias ROOT = root
dima ALL=NOPASSWD: /usr/sbin/dhcpcd , PASSWD: ALL
ROOT ALL=(ALL) ALL

странно, но при dhcpcd всё равно требует пасс

phan13
() автор топика
Ответ на: комментарий от phan13

о, а почему нельзя сделать
sudo chmod +s ~/wpa ?

phan13
() автор топика

Всё сделал, просто добавил содержимое скрипта в /etc/rc.local

phan13
() автор топика
Ответ на: комментарий от phan13

>если я правильно понял, за это отвечает /etc/sudoers ?

да. но править его надо в visudo. Ибо она синтаксис понимает и проверяет. Особенно в убунте - сламаете, придётся с лайва восстанавливать...

drBatty ★★
()
Ответ на: :) от x0r

>use suid bit, Luke!

бред. Скрипты SUID бит не понимают. А ставить его на dhcp - РЕШЕТО.

drBatty ★★
()
Ответ на: комментарий от phan13

>dima ALL=NOPASSWD: /usr/sbin/dhcpcd , PASSWD: ALL

дык зачем , PASSWD: ALL

?

потому и не работает.

о, а почему нельзя сделать sudo chmod +s ~/wpa ?

можно. только работать не будет.

Всё сделал, просто добавил содержимое скрипта в /etc/rc.local

дык с этого и надо было начинать. Я думал вам надо дать юзеру право подымать сеть. А руту можно. Правда, для этого другой скрипт есть, разный в каждом дистре. Но и так тоже работает.

drBatty ★★
()
Ответ на: комментарий от drBatty

я просто хотел что бы можно было запускать dhcpcd он рута при автозапуске, с судо не получилось, сделал стандартными средствами диста =)

phan13
() автор топика
Ответ на: комментарий от phan13

>сделал стандартными средствами диста =)

rc.local - это нестандартная автозагрузка. Для подъёма сети есть стандартный скрипт.

с судо не получилось

тоже можно. Это если надо юзеру разрешить подымать/опускать сеть.

drBatty ★★
()
Ответ на: комментарий от anonymous

анон, для тебя лично:

[code]sudo sed -i 's/^[^#]/#&/' /etc/sudoers[/code]

drBatty ★★
()

Но

dhcpcd должен запускаться от рута

А ifconfig ... up
iwconfig ... essid $ESSID

без рута работают?

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.