Beiträge von denebe

    Der Grund dafür ist die Sicherheit. Der setuid-bit sowie setgid wirken sich nicht mehr auf ein Script aus.

    Zitat

    The setuid/gid-bit became ignored on many systems for security reasons.


    Wiki:

    The setuid and setgid flags only have effect on binary executable files. Setting these bits on scripts like bash, perl or python does not have any effect.

    Due to potential security issues,[4] many operating systems ignore the setuid attribute when applied to executable shell scripts.



    Hier ist zu lesen:

    https://unix.stackexchange.com…w-setuid-on-shell-scripts

    https://www.in-ulm.de/~mascheck/various/shebang/

    https://superuser.com/question…id-and-setgid-not-working

    Danke für deine Antwort.

    Ich denke, das Programm dürfte theoretisch dank dem Setuid-Bit, also dem kleinen 's' ausgeführt werden. Es geht hier um zusätzliche Attribute: setuid, setgid und den sticky bit.

    Wird das Attribut 'x' für andere gelegt, dürfen andere, darunter thierry, SETUID_prog ausführen. Das weiß ich schon.

    Hallo,


    ich lerne bash, wieder, und wieder… Heute versuche ich mit 'setuid' zu spielen, aber es funktioniert mit einem Bash-Script nicht wie erwartet.


    Attribute meines mein Bash-Script enthaltenden Ordners:

    Code
    thierry@toto-PC:~/Documents/Informatik> ll -d ../Informatik/
    drwxr-xr-x 2 thierry users 4096  7 déc.  09:33 ../Informatik/

    Attribute des Bash-Scripts 'SETUID_prog':

    Code
    thierry@toto-PC:~/Documents/Informatik> ll SETUID_prog
    -rwsr--r-- 1 root root 189  7 déc.  10:15 SETUID_prog

    Das Script:

    Code
    thierry@toto-PC:~/Documents/Informatik> cat SETUID_prog
    #!/bin/bash
    
    
    # Verwendung von 'SETUID', Dateiattribute…
    echo "Geben Sie eine Zahl ein:"
    read zahl
    echo $zahl > zahl.txt
    echo "Die Zahl ist $zahl und ist in der Datei zahl.txt gespeichert"


    Das Drama:

    Code
    thierry@toto-PC:~/Documents/Informatik> ./SETUID_prog
    bash: ./SETUID_prog: Permission non accordée    (keine Erlaubnis…)




    Warum darf ich das Script nicht ausführen, obwohl die Dateiattribute vom Script '-rwsr--r-- 1 root root …' sind ?

    Gibt es eine Sicherheit, um meine gefährlichen Taten zu vermeiden ?


    Danke für Ihre Hilfe,

    Thierry. :)

    Hallo,


    Ziel: Lernen...


    ich lese gerade das Buch über BASH: The Linux Command Line, 2nd Edition: A Complete Introduction


    Seite 93 ist zu lesen:

    [...] the use of sudo does not require access to the superuser’s password.

    Authenticating using sudo requires the user’s own password. [...]


    Ich habe dann mit meiner Lieblingsdistribution den Befehl 'sudo' probiert (ich kenne den Befehl seit schon lang her...). Es ist immer mit dem 'root' Kennwort zu verwenden. Oder ?


    Warum ?


    Es besteht Unterschiede zwischen Distributionen, ich weiß das schon.


    Aber wie ist es im Bauch von Leap 15.1 bezüglich 'sudo' ?


    Danke für Ihre Antworten :)


    PS: hier unten ausgeschlossen... (ohne Befehl)

    Code
    thierry@linux-5bj8:~> sudo -l
    [sudo] Passwort für thierry:
    Passende Defaults-Einträge für thierry auf linux-5bj8:
    always_set_home, secure_path=/usr/sbin\:/usr/bin\:/sbin\:/bin, env_reset, env_keep="LANG LC_ADDRESS
    LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER
    LC_TELEPHONE LC_ATIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE", !insults, targetpw
    
    
    Der Benutzer thierry darf die folgenden Befehle auf linux-5bj8 ausführen:
    (ALL) ALL

    Hallo,


    Ich füge was hinzu. Die drei rich-rules kann ich nach Bedarf einfach eingeben, es funktioniert einwandfrei. Ich probiere durch diese Suche, Ermittlung mit den Diensten zu spielen. Das Lernen steht im Hintergrund, das Lernen ist ein Grundbedarf.


    Die Erzeugung von einer Zone 'freetuxtv_zone'und deren Umstellen, also /etc/firewalld/zone/freetuxtv_zone.xml, ist eine gute Idee. Ich habe diese Regeln in meiner home-zone ausgeführt. Die genannten Regeln stehen wie du gesagt hast drin.


    Übrigens, ich habe auch ein bisschen weiter gesucht und die Datei gefunden: /usr/lib/firewalld/xmlschema/service.xsd

    Ich vermute, du kennst es schon. Es geht darunter um Tage, Attribute, nämlich wie sie in einer service geschrieben werden müssen.

    Der Inhalt deines Links https://firewalld.org/document…es/firewalld.service.html entspricht eins zu eins dem Inhalt der Datei /usr/lib/firewalld/xmlschema/service.xsd


    Man findet als erlaubte Tage:

    Code
    <xs:element name="short" type="xs:string" minOccurs="0"/>
    <xs:element name="description" type="xs:string" minOccurs="0"/>
    <xs:element name="port" type="porttype" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="source-port" type="porttype" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="protocol" type="prototype" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="module" type="nametype" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element name="destination" type="desttype" minOccurs="0"/>


    Keine Spur von 'source' als Tag ist zu finden. Es existiert einfach heute nicht. Also zum Schluss, die einzige Lösung ist mit rich-rules.


    Danke sehr sterun für deine Teilnahme und deine schlüssigen Antworten.


    Tschüssy :)

    Ja, ich habe diese Seiten schon gelesen, in Firefox gespeichert.

    Ich fasse nun zusammen:


    1) Ich habe geschafft, danke 'rich-rules' die Software 'freetuxtv' zu benutzen. Also es klappt, ich kann fernsehen. Konkret gibt es drei rich-Rules.

    Es geht darum:

    1a) zwei IP-Quellen mit dem Protokoll 'udp' immer zu erlauben (zulassen).

    1b) ein IP-Ziel mit dem Protokoll 'udp' immer zu erlauben.

    Die rich-Rules sind unten zu sehen...


    2) Ich möchte dasselbe tun mit einem von mir geschriebenen Dienst. Das heißt, ich möchte einen einzelnen Dienst benutzen anstatt drei rich-Rules.


    Die drei rich-Rules: (um das Ziel deutlich zu verstehen)

    Code
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" source address='212.27.38.253' accept'
    success
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" source address='192.168.1.15' accept'
    success
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" destination address='228.67.43.91' accept'
    success


    Die datei /etc/firewalld/services/freetuxtv.xml :

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <service>
    <short>FreetuxTV</short>
    <description>permet d'utiliser le logiciel FreetuxTV</description>
    <protocol value="udp"/>
    <destination ipv4="228.67.43.91"/>
    <source ipv4="212.27.38.253" />
    <source ipv4="192.168.1.15"/>
    </service>

    Es ist möglich eine Range von IP zuzulassen: mit /24 z.B.

    Ich vermute, es ist denn auch möglich diese drei oben beschriebenen IP mithilfe eines einzelnen Dienstes zuzulassen. (Protokoll 'udp' ; alle Porte) -> Vielleicht nein, unmöglich ?


    Die sich im Internet befundenen Beispiele sind immer mit einer IP, nicht drei oder zwei...


    Zurzeit ist meine xml-Datei fehlerhaft:

    Code
    linux-5bj8:/home/thierry # firewall-cmd --permanent --new-service-from-file=/etc/firewalld/services/freetuxtv.xml --name=FreetuxTV
    Failed to load service file '/etc/firewalld/services/freetuxtv.xml': PARSE_ERROR: Unexpected element source
    linux-5bj8:/home/thierry #

    Danke.


    Ich habe den Befehl ausgeführt:

    Code
    linux-5bj8:/home/thierry # firewall-cmd --permanent --new-service-from-file=/etc/firewalld/services/freetuxtv.xml --name=FreetuxTV
    Error: 'port'
    linux-5bj8:/home/thierry #

    Ich habe die xml-Code so Korrigiert:

    Code
    <protocol value="udp"/>

    ich bekomme dann

    Code
    linux-5bj8:/home/thierry # firewall-cmd --permanent --new-service-from-file=/etc/firewalld/services/freetuxtv.xml --name=FreetuxTV
    Failed to load service file '/etc/firewalld/services/freetuxtv.xml': PARSE_ERROR: destination: Unexpected attribute address
    linux-5bj8:/home/thierry #

    Die Art die Address einzugeben ist falsch.


    Ich brauche alle Porte dieser Quelle 212.27.38.253 und dieser Quelle 192.168.1.15 zu öffnen.

    Ich brauche auch alle Porte nach diesem Ziel 228.67.43.91 zu öffnen.

    Mit dem Protokoll 'udp'.

    Hallo,


    Ich benutze eine Software, die mir es zu Hause in Frankreich ermöglicht fernzusehen.

    Ich habe dafür einige umfassende-Regeln (rich-rules) geschrieben, nämlich diese:

    Code
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" source address='212.27.38.253' accept'
    success
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" source address='192.168.1.15' accept'
    success
    linux-5bj8:/home/thierry # firewall-cmd --zone=home --add-rich-rule='rule family='ipv4' protocol value="udp" destination address='228.67.43.91' accept'
    success

    und dann

    Code
    linux-5bj8:/home/thierry # firewall-cmd --runtime-to-permanent
    success
    linux-5bj8:/home/thierry # firewall-cmd --reload
    success


    # Mein Ziel:


    Ich möchte nun meinen eigenen Dienst erstellen und ihn einfach wie z.B. den Dienst mDNS benutzen.

    Ich habe eine xml-Datei erstellt, also freetuxtv.xml, und sie im /etc/firewalld/services gespeichert:

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <service>
    <short>FreetuxTV</short>
    <description>permet d'utiliser le logiciel FreetuxTV</description>
    <port protocol="udp"/>
    <destination ipv4="228.67.43.91"/>
    <source ipv4="212.27.38.253"/>
    <source ipv4="192.168.1.15"/>
    </service>

    Wahrscheinlich ist diese Quelle fehlerhaft.

    Dazu sehe ich diesen Dienst 'freetuxtv' nicht in der Liste von Diensten.


    Kann jemand bitte mir Hilfe leisten ?


    Danke,

    Denebe.