Unlock gnome-keyring from a temp dbus session
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:
- Start a new dbus session
- Unlock the gnome-keyring in that dbus session
- Extract the credentials from the keyring
- 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
add a comment |
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:
- Start a new dbus session
- Unlock the gnome-keyring in that dbus session
- Extract the credentials from the keyring
- 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
add a comment |
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:
- Start a new dbus session
- Unlock the gnome-keyring in that dbus session
- Extract the credentials from the keyring
- 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
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:
- Start a new dbus session
- Unlock the gnome-keyring in that dbus session
- Extract the credentials from the keyring
- 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
python subprocess dbus python-keyring gnome-keyring-daemon
asked Nov 22 '18 at 0:45
SilleBilleSilleBille
357216
357216
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered Nov 22 '18 at 8:20
Philip WithnallPhilip Withnall
2,310819
2,310819
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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