Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-01-10 16:16:43

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Witam!

Zainstalowałem serwer fhem, który jest w

Kod:

pic@debian:/$ su
Hasło: 
root@debian:/# find -name fhem
./etc/init.d/fhem
./opt/fhem
root@debian:/#

Serwer działa, ale nie uruchamia się z pełnymi uprawnieniami roota. Zainstalowałem więc sudo, a w pliku [b]/etc/sudoers [/b] dopisałem

Kod:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

%pic ALL=(ALL) NOPASSWD: /usr/bin/gnokii, /sbin/reboot, /sbin/poweroff, /usr/bin/vmware, /etc/init.d/fhem, /opt/fhem

Następnie plikom [b]/etc/init.d/fhem[/b] i [b]/opt/fhem[/b] nadałem uprawnienia specjalne

Kod:

chmod u+s /etc/init.d/fhem
chmod g+s /etc/init.d/fhem

chmod -R u+s fhem
chmod -R o+s fhem

Po tej czynności uprawnienia do plików zostały zmienione i wyglądają tak

Kod:

root@debian:/etc/init.d# ls -l fhem 
-rwsr-sr-x 1 root root 1442 sty  4 14:10 fhem
root@debian:/etc/init.d#

Kod:

root@debian:/opt# ls -l fhem/
razem 200
-rwSr-Sr--  1 fhem root  31488 lis  9 14:16 configDB.pm
drwsr-sr-x 32 fhem root   4096 sty  4 14:10 contrib
drwsr-sr-x  2 fhem root   4096 sty  4 14:10 demolog
drwsr-sr-x  4 fhem root   4096 sty  4 14:10 docs
drwsr-sr-x  5 fhem root  20480 sty  4 14:10 FHEM
-rwSr-Sr--  1 fhem root   1032 sty  9 11:14 fhem.cfg
-rwSr-Sr--  1 fhem root  12559 lis  9 14:16 fhem.cfg.demo
-rwsr-sr-x  1 fhem root 104888 lis  9 14:16 fhem.pl
-rwSr-Sr--  1 root 1001      0 sty 10 13:24 gnokii-errors
drwsr-sr-x  2 fhem root   4096 sty  4 15:40 log
-rwSr-Sr--  1 fhem root    761 lis  9 14:16 README_DEMO.txt
drwsr-sr-x  8 fhem root   4096 sty  4 14:10 www
root@debian:/opt#

Jednak powyższe działania nie spowodowały, że fhem odpala się z pełnymi uprawnieniami roota.
Znalazłem inny sposób na uruchomienie fhem z pełnymi uprawnieniami roota

Kod:

pic@debian:/dev$ su
Hasło: 
root@debian:/dev# /etc/init.d/fhem stop
Stopping fhem...
root@debian:/dev# /etc/init.d/fhem status
fhem is not running
root@debian:/dev# /etc/init.d/fhem start
Starting fhem...

Jednak powyższy sposób jest bez sensu i chciałbym, aby fhem odpał się automatycznie z pełnymi uprawnieniami roota przy starcie systemu.

Ostatnio edytowany przez prosze (2015-01-10 16:17:36)

Offline

 

#2  2015-01-10 16:19:48

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Kod:

chmod -R u+s fhem
-rwsr-sr-x 1 root root 1442 sty  4 14:10 fhem

Pokaż wynik polecenia

Kod:

file fhem

Pliku wykonywalnego, a nie skrypta z init.d

Ostatnio edytowany przez Jacekalex (2015-01-10 16:21:05)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2015-01-10 16:39:44

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Tylko gdzie jest plik wykonywalny?

Kod:

pic@debian:~$ file fhem
fhem: cannot open `fhem' (No such file or directory)
pic@debian:~$ su
Hasło: 
root@debian:/home/pic# file fhem
fhem: cannot open `fhem' (No such file or directory)
root@debian:/home/pic# exit
exit
pic@debian:~$ file fhem
fhem: cannot open `fhem' (No such file or directory)
pic@debian:~$

Kod:

root@debian:/# find -name  fhem
./etc/init.d/fhem
./opt/fhem
root@debian:/#

Kod:

root@debian:/opt/fhem# ls -l
razem 200
-rwSr-Sr--  1 fhem root  31488 lis  9 14:16 configDB.pm
drwsr-sr-x 32 fhem root   4096 sty  4 14:10 contrib
drwsr-sr-x  2 fhem root   4096 sty  4 14:10 demolog
drwsr-sr-x  4 fhem root   4096 sty  4 14:10 docs
drwsr-sr-x  5 fhem root  20480 sty  4 14:10 FHEM
-rwSr-Sr--  1 fhem root   1032 sty  9 11:14 fhem.cfg
-rwSr-Sr--  1 fhem root  12559 lis  9 14:16 fhem.cfg.demo
-rwsr-sr-x  1 fhem root 104888 lis  9 14:16 fhem.pl
-rwSr-Sr--  1 root 1001      0 sty 10 13:24 gnokii-errors
drwsr-sr-x  2 fhem root   4096 sty  4 15:40 log
-rwSr-Sr--  1 fhem root    761 lis  9 14:16 README_DEMO.txt
drwsr-sr-x  8 fhem root   4096 sty  4 14:10 www
root@debian:/opt/fhem#

Ostatnio edytowany przez prosze (2015-01-10 16:42:56)

Offline

 

#4  2015-01-10 16:50:20

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Co właściwie uruchamia ten plik [b]/etc/init.d/fhem[/b].

Bo jeżeli skrypta fhem.pl to na żadnym skrypcie powłoki czy perla albo pythona nie zadziała bit suid i sgid, takie rzeczy można robić tylko z plikami binarnymi ELF.

Np:

Kod:

file `which sudo`
/usr/bin/sudo: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped

Skrypty musisz ustawić w sudoers i uruchamiać przez sudo.
To chyba najłatwiejszy sposób.

Przy okazji. w init.d to nie są programy, tylko skrypty startowe demonów systemowych, czemu go po prostu nie dodasz do autostartu, żeby wstawał automatycznie z systemem?

Bo na razie kombinujesz tak, jakbyś chciał się podrapać paluchem prawej nogi za lewym uchem, albo ubrać wojskowy hełm na lewą stronę. :D

Ostatnio edytowany przez Jacekalex (2015-01-11 06:04:05)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5  2015-01-10 17:00:35

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Plik z [b]/etc/init.d/fhem[/b] wyląda tak

Kod:

#!/bin/sh
# description: Start or stop the fhem server
# Added by Alex Peuchert

### BEGIN INIT INFO
# Provides:             fhem.pl
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    FHEM server
### END INIT INFO

set -e
cd /opt/fhem
port=7072

if test "$2" != "noaptmark"; then
  apt-mark hold fhem > /dev/null
fi

case "$1" in
'start')

        echo "Starting fhem..."

# if you need to start hmland for use with
# Homematic, please start the hmland daemon
# like this (please use correct path and port, 
# depending on your installation!)
#
#       /opt/hmcfgusb/hmland -d -p 1234 -r 0
#

        perl fhem.pl fhem.cfg

# if you want to use configDB for configuration,
# use this command to start fhem:
#
#       perl fhem.pl configDB
#
# and remove/comment the above line including fhem.cfg

        RETVAL=$?
        ;;
'stop')
        echo "Stopping fhem..."

# if you want to stop hmland during fhem stop:
#       pkill hmland

        pkill -U fhem perl
        RETVAL=$?
        ;;
'status')
        cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
        if [ "$cnt" -eq "0" ] ; then
                echo "fhem is not running"
        else
                echo "fhem is running"
        fi
        ;;
*)
        echo "Usage: $0 { start | stop | status }"
        RETVAL=1
        ;;
esac
exit $RETVAL

i urchamia serwer do zarządzania domem, który dostępny jest przez przeglądarkę po wpisaniu adresu

Kod:

http://localhost:8083/fhem?

Informacje o fhem są tutaj [url]http://fhem.de/fhem.html[/url]
Nie mam pojęcia, który to jest plik wykonywalny.


[url=http://postimg.org/image/l2qoxuugj/][img]http://s21.postimg.org/l2qoxuugj/2015_01_10_180256_676x526_scrot.jpg[/img][/url]

Ostatnio edytowany przez prosze (2015-01-10 17:13:40)

Offline

 

#6  2015-01-10 17:14:41

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

a w ogóle ustawiłeś odpalanie demona fhem przy starcie czy czekasz aż sam się magicznie uruchomi?
pytanie kontrolne: jeśli fhem nie działa co będzie po

Kod:

sudo service fhem start

dywagacje kolegi piętro wyżej o suidach, elfach i innych krasnoludkach raczej były nie na temat...

jakie to było polecenie do kontroli uruchamiania... rc-cośtam, niech ktoś się zlituje i przypomni...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#7  2015-01-10 17:23:28

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

[b]ethanak[/b], przecież pisałem w pierwszym poście, że fhem uruchamia się tylko nie z pełnymi uprawnieniami roota. Po ponownym odpaleniu systemu dla pewności jeszcze raz to sprawdziłem

Kod:

pic@debian:~$ su
Hasło: 
root@debian:/home/pic# /etc/init.d/fhem status
fhem is running
root@debian:/home/pic# exit 
exit
pic@debian:~$ /etc/init.d/fhem status
fhem is running
pic@debian:~$

ale polecenie

Kod:

pic@debian:~$ sudo service fhem start
[sudo] password for pic: 
Niestety, proszę spróbować ponownie.
[sudo] password for pic: 
Niestety użytkownik pic nie ma uprawnień do uruchamiania '/usr/sbin/service fhem start' jako root na debian.
pic@debian:~$

Zaraz dodam do pliku /etc/sudoers zgodę na odpalanie /usr/sbin/service

Ostatnio edytowany przez prosze (2015-01-10 17:30:19)

Offline

 

#8  2015-01-10 17:40:25

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

to zrób z roota

Kod:

service fhem start

poza tym skrypty przy starcie zawsze uruchamiają się z uprawnieniami roota - dopiero potem albo demonizer odpala binarkę z uprawnieniami konkretnego usera (nie w tym przypadku), albo binarka sama zrzuca uprawnienia.

dalej: to że skrypt istnieje w init.d nie oznacza, że się włączy. ponawiam prośbę do kolegów - zamiast smętnie bredzić o elfach i suidach powiedzcie facetowi jak się konfiguruje uruchomienie skryptu w rcX.d, bo na razie (nikogo nie obrażając) wypowiedzi są na poziomie kolegi Momtozadar Mocha z forum ubuntu, a ja na telefonie nam dość ograniczone pole manewru :(


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#9  2015-01-11 16:38:40

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Od wczoraj nie miałem prądu... W tej chwili sytuacja wygląda tak.
1. Uruchamiam komputer i loguje się na konto roota i daje

Kod:

pic@debian:~$ su
Hasło: 
root@debian:/home/pic# service fhem start

a następnie czekam, czy fhem uruchomi skrypt wysyłający smsa

Kod:

#!/bin/bash
echo "Idę na ryby?" | gnokii --sendsms 6071xxxxxx

ale nic z tego - sms nie zostaje wysłany. Sms zostaje dopiero wysłany po

Kod:

root@debian:/home/pic# /etc/init.d/fhem stop
Stopping fhem...
root@debian:/home/pic# /etc/init.d/fhem status
fhem is not running
root@debian:/home/pic# /etc/init.d/fhem start
Starting fhem...
root@debian:/home/pic# GNOKII wersja 0.6.30
Udane wysłanie. Numer referencyjny wiadomości: -1

I teraz mam problem, bo nie wiem, dlaczego sms nie zostaje wyłany.

1. Czy z powodu tego, że serwer fhem nie został uruchomiony (ale przecież go uruchomiłem)?
2. Czy z powodu tego, że gnokii do wysyłania smsa wymaga uprawnień roota (a wiem, że wymaga).

Drugi przypadek wydaje mi się bardzej prawdopodobny, bo kiedy z konta roota zatrzymuje fhem, a następnie go uruchamiam to sms jest wysyłany, ponieważ fhem został uruchomiony z uprawnieniami roota.

Zrobiłem też inny test. W odpalanym skrypcie bash zamiast wysyłania smsa umieściłem polecenie tworzenia pliku

Kod:

#!/bin/bash

echo > "plik.txt"

i po uruchomieniu systemu plik jest tworzony bez końeczności wydawania polecenia [b]service fhem start[/b] To dlaczego sms nie jest wysyłany skoro serwer fhem działa?

Ostatnio edytowany przez prosze (2015-01-11 16:41:30)

Offline

 

#10  2015-01-11 17:56:03

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

a w jaki sposób demon fhem uruchamia się przy starcie systemu? tylko bez teorii o elfach i krasnalach poprosiłbym...
a jeszcze jedno - czy gnokii znajduje się w ścieżce obowiązującej przy uruchamianiu programów z rc.d? pytam bo kiedyś sam się na to naciąłem.

Ostatnio edytowany przez ethanak (2015-01-11 17:59:10)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#11  2015-01-11 18:44:10

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Wychodzi na to, że gnokii nie jest w ścieżce obowiązującej przy uruchamianiu programów z rc.d

Kod:

PATH=/sbin:/usr/sbin:/bin:/usr/bin

Gnokii

Kod:

pic@debian:~$ su
Hasło: 
su: Uwierzytelnienie się nie powiodło
pic@debian:~$ su
Hasło: 
root@debian:/home/pic# find -name gnokii
./.cache/gnokii
./.config/gnokii
./.local/share/gnokii
root@debian:/home/pic#

Na temat demona fhem nie będę tworzył żadnych teorii bo się na tym nie znam.

Ostatnio edytowany przez prosze (2015-01-11 20:38:45)

Offline

 

#12  2015-01-11 20:48:44

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Ja tylko powiem, że start-stop-daemon ma opcję odpalania procesów jako inni użytkownicy.

Poniżej jest przykład skryptu odpalającego qbittorrenta na prawach morfik:p2p , czyli user morfik, grupa p2p :

Kod:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          qbittorrent-nox
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Should-Start:      iptables-persistent pgl
# Should-Stop:       iptables-persistent pgl
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start QBittorrent
# Description:       Start qbittorrent-nox on start. Change USER= before running
### END INIT INFO

# Author: Jesper Smith
#

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="QBittorrent"
NAME=qbittorrent-nox
DAEMON=/usr/bin/$NAME
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/qbittorrent-nox
USER=morfik:p2p

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
    
    # Return
    #   0 if daemon has been started
    #   1 if daemon was already running
    #   2 if daemon could not be started
    start-stop-daemon -c $USER -b -t --start --quiet  --exec $DAEMON  \
                || return 1

    start-stop-daemon -c $USER -b --start --quiet --exec $DAEMON -- \
        $DAEMON_ARGS \
        || return 2
    sleep 1
}

#
# Function that stops the daemon/service
#
do_stop()
{
    start-stop-daemon -c $USER --quiet  --stop --exec $DAEMON
    sleep 2
    return "$?"
}

VERBOSE="yes"

case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  status)
       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
       ;;
  restart|force-reload)
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0|1)
        do_start
        case "$?" in
            0) log_end_msg 0 ;;
            1) log_end_msg 1 ;; # Old process is still running
            *) log_end_msg 1 ;; # Failed to start
        esac
        ;;
      *)
          # Failed to stop
        log_end_msg 1
        ;;
    esac
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;
esac

Jeśli teraz odpali się qbittorrenta przy starcie systemu, lub zwyczajnie via ten skrypt rc, to proces wygląda tak:

Kod:

root:~# /etc/init.d/qbittorrent-nox start
[ ok ] Starting QBittorrent: qbittorrent-nox.

root:~# ps -eo "user,group,pid,args" | grep -i qbitt
morfik   p2p       64221 /usr/bin/qbittorrent-nox

Bez cudowania z sudo i innymi wynalazkami. xD

Offline

 

#13  2015-01-12 06:43:04

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

@morfik: już o tym wspominałem jeśli raczysz się wczytać w cały wątek - tylko co to ma do rzeczy?
@prosze: polecenia ( z roota):

Kod:

which gnokii

(to powinno pokazać gdzie jest gnokii)

Kod:

find /etc/ -path "/etc/rc?.d/*fhem"

to odpowie na dręczące mnie pytanie

Kod:

ps auxw | grep fhem

a to odpowie na pytanie którego nie zadałem, ale na które nie znasz odpowiedzi.


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#14  2015-01-12 08:32:08

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Co co ma do rzeczy? Masz przykład jak odpalić proces via skrypt startowy jako inny user niż root i masz przy tym jego zawartość, którą se możesz wziąć za wzór, a nie jakieś magiczne słowa typu: " demonizer"...

Offline

 

#15  2015-01-12 09:24:35

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

[b]ethanak[/b], oto wyniki poleceń

Kod:

pic@debian:~$ su
Hasło: 
root@debian:/home/pic# which gnokii
/usr/bin/gnokii
root@debian:/home/pic# find /etc/ -path "/etc/rc?.d/*fhem"
/etc/rc3.d/S01fhem
/etc/rc2.d/S01fhem
/etc/rc6.d/K01fhem
/etc/rc5.d/S01fhem
/etc/rc0.d/K01fhem
/etc/rc4.d/S01fhem
/etc/rc1.d/K01fhem
root@debian:/home/pic# ps auxw | grep fhem
fhem       888  0.0  1.2  14292 11388 ?        S    10:15   0:00 perl fhem.pl fhem.cfg
root      3256  0.0  0.2   4568  2236 pts/0    S+   10:20   0:00 grep fhem
root@debian:/home/pic#

Offline

 

#16  2015-01-14 14:21:34

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

[b]ethanak[/b], wiesz już dlaczego sms nie jest wysyłany? Ja niestety nie wiem.

[b]morfik[/b], tak wygląda mój skrypt z [b]/etc/init.d/fhem [/b] --> [url]http://wklej.org/id/1595287/[/url] Możesz podpowiedzieć, jak go zmienić, aby fhem był odpalany na prawach roota?

Ostatnio edytowany przez prosze (2015-01-14 14:23:06)

Offline

 

#17  2015-01-14 14:27:06

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

wiem dlaczego ale nie wiem skąd się bierze owo dlaczego (tzn. dlaczego fhem jest w ogóle uruchamiany bo dla S01 raczej nie ma prawa działać). teoretycznie zmiana na S98 powinna poskutkować odpaleniem serwera, ale to teoria.
muszę po prostu zainstalować fhema i zobaczyć co go boli - a do tego muszę mieć trochę wolnego czasu :(
jeszcze jedno - czy wysłanue smsa to jedyna czynność wymagająca roota? bo jeśli tak to można to w miarę prosto rozwiązać pozostawiając fhema tak jak jest...
spróbuj zmienić uprawnienia gnokii na 6755 - może pomoże?

Ostatnio edytowany przez ethanak (2015-01-14 14:32:48)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#18  2015-01-14 14:47:13

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Właściwie sprawdzałem tylko tworzenie pliku (nie wymaga roota) i wysyłanie smów (tutaj wymaga). Innch możliwości nie testowałem. Zadałem też pytnie na tym forum ([url]http://forum.fhem.de/index.php/topic,31844.msg243212.html#msg243212[/url]) i dostałem odpowiedź
[url=http://postimg.org/image/ao6xr9n5t/][img]http://s24.postimg.org/ao6xr9n5t/2015_01_14_153304_1278x414_scrot.jpg[/img][/url]
Tylko i tak nie wiem, o co chodzi :)

EDIT:
Uprawnienia dla gnokii już miałem wcześniej ustawine na

Kod:

pic@debian:~/Desktop$ ls -l /usr/bin/gnokii
-rwsr-sr-x 1 root 1001 135768 lut 19  2014 /usr/bin/gnokii
pic@debian:~/Desktop$

Ostatnio edytowany przez prosze (2015-01-14 14:52:44)

Offline

 

#19  2015-01-14 14:51:04

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

jakbyś tę odpowiedź zamieścił jako tekst to może bym zrozumiał - na telefonie widzę jeno wielce gustowny szlaczek.
---
dobra dopadłem w barze kumpla z laptopem.
dlaczego nie spróbujesz tego co ci polecili na forum?

Ostatnio edytowany przez ethanak (2015-01-14 14:55:50)


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#20  2015-01-14 14:54:32

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Taka była odpowiedź:

in /opt/fhem/fhem.pl you find

Kod:

# If started as root, and there is a fhem user in the /etc/passwd, su to it

so maybe removing the user fhem could do it

Offline

 

#21  2015-01-14 14:56:35

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

so may be removing user fhem would be solution...


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#22  2015-01-14 15:00:36

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Tego skryptu nie ruszasz jeśli ma być odpalany jako root -- wcześniej źle zrozumiałem i myślałem, że chcesz odpalać go jako nie root, jeśli ten skrypt zostanie odpalony jako root, to wszystkie zawarte w nim polecenia będą wykonywane jako root, także bez sensu jest zmiana uprawnień wykonywanych w skrypcie poleceń na root jeśli ten skrypt jest odpalany jako root, bo przecie to jest oczywiste, że jeśli odpalasz skrypt jako root, to wszystko w nim się wykonuje z uprawnieniami roota. xD Jedynie co to masz tam:

Kod:

 perl fhem.pl fhem.cfg

a co robi ten skrypt i co tam za config jest, to ja nie mam zielonego pojęcia -- zajrzyj i zobacz co tam się dzieje. Może w tym configu masz jakieś opcje od zrzucania uprawnień, albo sam skrypt coś tam ustawia sobie.

Offline

 

#23  2015-01-14 15:05:20

  ethanak - Użytkownik

ethanak
Użytkownik
Skąd: Ungwenor
Zarejestrowany: 2010-07-19
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

@morfik: zauważyłeś rozwiązanie post wyżej?


Nim mechaniczne larum zagrasz mi, kanalio,
głosząc nadejście Javy - śmiertelnego wroga!
[i]Zespół Adwokacki Dyskrecja[/i]

Offline

 

#24  2015-01-14 15:11:23

  prosze - Użytkownik

prosze
Użytkownik
Zarejestrowany: 2012-09-25

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

[quote=ethanak]so may be removing user fhem would be solution...[/quote]
Oczywiście, że próbowałem tego rozwiązania i w pliku [b]/etc/passwd[/b] postawiłem "#" przed

Kod:

#fhem:x:999:20::/opt/fhem:/bin/false

Offline

 

#25  2015-01-14 15:13:27

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Uruchamianie skryptu z /etc/init.d/ na prawach specjalnych

Od kiedy maybe == solution? xD

Poza tym, ja sobie pobrałem tę paczke na debiana co tam jest na ich stronie i tam jest config i jakiś config.demo i w tym drugim jest pełno atrybutów -- dostosować ten pierwszy config i będzie działać jak trza. :]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.011 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00126 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.90.182' WHERE u.id=1
0.00073 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.90.182', 1728242108)
0.00052 SELECT * FROM punbb_online WHERE logged<1728241808
0.00052 SELECT topic_id FROM punbb_posts WHERE id=281203
0.00005 SELECT id FROM punbb_posts WHERE topic_id=26900 ORDER BY posted
0.00045 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26900 AND t.moved_to IS NULL
0.00011 SELECT search_for, replace_with FROM punbb_censoring
0.00169 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26900 ORDER BY p.id LIMIT 0,25
0.00137 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26900
Total query time: 0.00683 s