1

Temat: Uruchomienie programu bez praw

Witam,

W OpenWRT mam 2 userów: root oraz vpn. Cały problem polega na tym, aby user vpn mógł uruchomić polecenie IPTables nie mając uprawnień roota (w celu otwarcia 1-dnego portu).
Aha - user vpn łączy się poprzez SSH.

Jakiś pomysł?

Pozdrawiam, Krzysiek

2

Odp: Uruchomienie programu bez praw

użycie sudo ?

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

3

Odp: Uruchomienie programu bez praw

Przepraszam zapomniałem dodać, user VPN nie za (i nie będzie znał) hasła roota....

4

Odp: Uruchomienie programu bez praw

oneiro napisał/a:

Przepraszam zapomniałem dodać, user VPN nie za (i nie będzie znał) hasła roota....

To nadal sudo... smile

5

Odp: Uruchomienie programu bez praw

Ok, a da się tak ustawić sudo, aby dało się tylko 1-den program uruchomić z prawami roota bez podania hasła roota?

6

Odp: Uruchomienie programu bez praw

tak

Linksys EA8500: LEDE
Belkin AC1750DB: OpenWrt CHAOS CALMER
2x TpLink TL-WDR3600: OpenWrt Attitude Adjustment
TpLink TL-WR1043ND: OpenWrt Attitude Adjustment

7

Odp: Uruchomienie programu bez praw

To jeszcze jedno pytanie zanim zacznę szukać po powrocie do domu.  Co ze skryptem bash (ash)?

Jeśli skrypt będzie uruchamiał 3 programy z niezbędnymi prawami roota, czy:
a) sudo do skrytpu
b) sudo do wszystkich 3 programów wewnątrz skryptu
c) sudo do skrytpu i programów

8

Odp: Uruchomienie programu bez praw

-konfigurujesz w sudo aby user VPN miał możliwość odpalenia tych 3 programów,
-w skrypcie wywołujesz je jako "sudo program" (opcja b),
-user VPN ma mieć prawo do odczytu skryptu,

Linksys EA8500: LEDE
Belkin AC1750DB: OpenWrt CHAOS CALMER
2x TpLink TL-WDR3600: OpenWrt Attitude Adjustment
TpLink TL-WR1043ND: OpenWrt Attitude Adjustment

9

Odp: Uruchomienie programu bez praw

sudo skonfigurowane, dzięki za pomoc.


mam jeszcze jedno pytanie - czy są w Linuxie zmienne globalne poza/nad powłoką/użytkownikiem? Chodzi mi o zapisanie zmiennej przez usera1 i odczyt jej przez usera2. 

Wiem, mogę obejść problem poprzez plik, ale może jest jakieś inne rozwiązanie?

10

Odp: Uruchomienie programu bez praw

W sensie możesz ustawić zmienne np. w /etc/profile, ale to będzie działało po zalogowaniu się usera.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Uruchomienie programu bez praw

Poszukuje jeszcze odpowiedzi na poniższe pytanie:

Jak uruchomić jednorazowo dane polecenie po n-sekundach od wywołania? A najlepiej po wylogowaniu z powłoki.

12

Odp: Uruchomienie programu bez praw

(sleep n && polecenie) &

ash chyba nie wykonuje żadnego pliku po wylogowaniu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13

Odp: Uruchomienie programu bez praw

Cała idea polega na zamknięciu otwarciu portu po wykonaniu polecenia oraz jego zamknięcia po czasie z poziomu powłoki. Pierwsza cześć czyli otwarcie spisuje się znakomicie, czy druga część zadziała?

Mam takie coś,

#!/bin/bash

IP_ADRES=$(cat /ip)

iptables -t nat -I PREROUTING -i pppoe-wan -p tcp -s $IP_ADRES --dport 5789 -j DNAT --to-destination 192.168.10.2:5789 
iptables -I FORWARD -p tcp -d 192.168.10.2 --dport 5789 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

REG1="iptables -t nat -D PREROUTING -i pppoe-wan -p tcp -s $IP_ADRES --dport 5789 -j DNAT --to-destination 192.168.10.2:5789"
REG2="iptables -D FORWARD -p tcp -d 192.168.10.2 --dport 5789 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT"

(sleep 14400 && REG1 && REG2) &

exit 0

Chcę wywołać i wyjść, czy poniższe powinno załatwić sprawę.

#sh program & exit

14

Odp: Uruchomienie programu bez praw

bash? Jak używasz basha to ~/.bash_logout się wykonuje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Uruchomienie programu bez praw

Nie, nie mam BASHa tylko ash, to co w dystrybucji AA....

Rozumiem, że chodzi Ci o nagłówek #1/bin/bash -> powinno być #!/bin/ash i czy o coś zmienia?

16

Odp: Uruchomienie programu bez praw

Tak, bo inaczej Ci się skrypt nie uruchomi, bo jak napisałeś basha nie masz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17

Odp: Uruchomienie programu bez praw

uruchamiam poprzez:

sh program

Rozumiem, ze jakbym miał bash to poszłoby przez:

.program

(zakladam, ze sa prawa uruchamiania na pliku)