Unlock gnome-keyring from a temp dbus session












-1















I'm trying to write a python application that can unlock gnome-keyring from a text-only system (headless machine) and retrieve the credentials. I have the gnome-keyring package installed in this machine.



Basically, my application will:




  1. Start a new dbus session

  2. Unlock the gnome-keyring in that dbus session

  3. Extract the credentials from the keyring

  4. Destroy the dbus session bus


I'm trying to follow this tutorial: https://pypi.org/project/keyring/#using-keyring-on-headless-linux-systems



I tried reading: Python DBUS SESSION_BUS - X11 dependency but, the OP uses dbus-launch instead of the dbus-run-session. The original man page for dbus-launch says to use 'dbus-run-session` for text-only systems.



If I start a new dbus session using python's subprocess, how can I run the step #2 in the same dbus-session?










share|improve this question



























    -1















    I'm trying to write a python application that can unlock gnome-keyring from a text-only system (headless machine) and retrieve the credentials. I have the gnome-keyring package installed in this machine.



    Basically, my application will:




    1. Start a new dbus session

    2. Unlock the gnome-keyring in that dbus session

    3. Extract the credentials from the keyring

    4. Destroy the dbus session bus


    I'm trying to follow this tutorial: https://pypi.org/project/keyring/#using-keyring-on-headless-linux-systems



    I tried reading: Python DBUS SESSION_BUS - X11 dependency but, the OP uses dbus-launch instead of the dbus-run-session. The original man page for dbus-launch says to use 'dbus-run-session` for text-only systems.



    If I start a new dbus session using python's subprocess, how can I run the step #2 in the same dbus-session?










    share|improve this question

























      -1












      -1








      -1








      I'm trying to write a python application that can unlock gnome-keyring from a text-only system (headless machine) and retrieve the credentials. I have the gnome-keyring package installed in this machine.



      Basically, my application will:




      1. Start a new dbus session

      2. Unlock the gnome-keyring in that dbus session

      3. Extract the credentials from the keyring

      4. Destroy the dbus session bus


      I'm trying to follow this tutorial: https://pypi.org/project/keyring/#using-keyring-on-headless-linux-systems



      I tried reading: Python DBUS SESSION_BUS - X11 dependency but, the OP uses dbus-launch instead of the dbus-run-session. The original man page for dbus-launch says to use 'dbus-run-session` for text-only systems.



      If I start a new dbus session using python's subprocess, how can I run the step #2 in the same dbus-session?










      share|improve this question














      I'm trying to write a python application that can unlock gnome-keyring from a text-only system (headless machine) and retrieve the credentials. I have the gnome-keyring package installed in this machine.



      Basically, my application will:




      1. Start a new dbus session

      2. Unlock the gnome-keyring in that dbus session

      3. Extract the credentials from the keyring

      4. Destroy the dbus session bus


      I'm trying to follow this tutorial: https://pypi.org/project/keyring/#using-keyring-on-headless-linux-systems



      I tried reading: Python DBUS SESSION_BUS - X11 dependency but, the OP uses dbus-launch instead of the dbus-run-session. The original man page for dbus-launch says to use 'dbus-run-session` for text-only systems.



      If I start a new dbus session using python's subprocess, how can I run the step #2 in the same dbus-session?







      python subprocess dbus python-keyring gnome-keyring-daemon






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 0:45









      SilleBilleSilleBille

      357216




      357216
























          1 Answer
          1






          active

          oldest

          votes


















          0














          You will either need to spawn a second program in your project beneath dbus-run-session, or you will need to use something other than dbus-run-session to run your own session bus. dbus-run-session is designed to run a single program in its own bus; once that program terminates, the bus is shut down. So either you need to provide a second program which does steps 2 and 3 from your plan, or you need to more explicitly set up and tear down your own dbus-daemon instance from your top-level program, replicating some of the behaviour of dbus-run-session.



          Typically this would involve:




          • Providing a dbus-daemon configuration file to use.

          • Running dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork.

          • Setting DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket in your program’s environment before doing anything with the keyring.

          • Doing whatever you need to with the keyring.

          • Terminating the dbus-daemon subprocess.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422422%2funlock-gnome-keyring-from-a-temp-dbus-session%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You will either need to spawn a second program in your project beneath dbus-run-session, or you will need to use something other than dbus-run-session to run your own session bus. dbus-run-session is designed to run a single program in its own bus; once that program terminates, the bus is shut down. So either you need to provide a second program which does steps 2 and 3 from your plan, or you need to more explicitly set up and tear down your own dbus-daemon instance from your top-level program, replicating some of the behaviour of dbus-run-session.



            Typically this would involve:




            • Providing a dbus-daemon configuration file to use.

            • Running dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork.

            • Setting DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket in your program’s environment before doing anything with the keyring.

            • Doing whatever you need to with the keyring.

            • Terminating the dbus-daemon subprocess.






            share|improve this answer




























              0














              You will either need to spawn a second program in your project beneath dbus-run-session, or you will need to use something other than dbus-run-session to run your own session bus. dbus-run-session is designed to run a single program in its own bus; once that program terminates, the bus is shut down. So either you need to provide a second program which does steps 2 and 3 from your plan, or you need to more explicitly set up and tear down your own dbus-daemon instance from your top-level program, replicating some of the behaviour of dbus-run-session.



              Typically this would involve:




              • Providing a dbus-daemon configuration file to use.

              • Running dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork.

              • Setting DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket in your program’s environment before doing anything with the keyring.

              • Doing whatever you need to with the keyring.

              • Terminating the dbus-daemon subprocess.






              share|improve this answer


























                0












                0








                0







                You will either need to spawn a second program in your project beneath dbus-run-session, or you will need to use something other than dbus-run-session to run your own session bus. dbus-run-session is designed to run a single program in its own bus; once that program terminates, the bus is shut down. So either you need to provide a second program which does steps 2 and 3 from your plan, or you need to more explicitly set up and tear down your own dbus-daemon instance from your top-level program, replicating some of the behaviour of dbus-run-session.



                Typically this would involve:




                • Providing a dbus-daemon configuration file to use.

                • Running dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork.

                • Setting DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket in your program’s environment before doing anything with the keyring.

                • Doing whatever you need to with the keyring.

                • Terminating the dbus-daemon subprocess.






                share|improve this answer













                You will either need to spawn a second program in your project beneath dbus-run-session, or you will need to use something other than dbus-run-session to run your own session bus. dbus-run-session is designed to run a single program in its own bus; once that program terminates, the bus is shut down. So either you need to provide a second program which does steps 2 and 3 from your plan, or you need to more explicitly set up and tear down your own dbus-daemon instance from your top-level program, replicating some of the behaviour of dbus-run-session.



                Typically this would involve:




                • Providing a dbus-daemon configuration file to use.

                • Running dbus-daemon --config-file=path/to/config --address=path/to/socket --nofork.

                • Setting DBUS_SESSION_BUS_ADDRESS=unix:path/to/socket in your program’s environment before doing anything with the keyring.

                • Doing whatever you need to with the keyring.

                • Terminating the dbus-daemon subprocess.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 22 '18 at 8:20









                Philip WithnallPhilip Withnall

                2,310819




                2,310819
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422422%2funlock-gnome-keyring-from-a-temp-dbus-session%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                    Alcedinidae

                    RAC Tourist Trophy