Replies: 1 comment 1 reply
-
Hi @tsz8899 xrdp intentionally does not have access to userspace. There's a very narrow interface from xrdp to sesman which does not support passing any extra data. I think you're right in that to send custom data, you'll might need to use a custom channel. We can probably work out the xrdp side for you, but working out the FreeRDP side might need help from them. There's some code in The smartcard stuff is being re-written, but it's not a high priority right now. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The client needs to pass some expected variables to X11.
For example, the client sends a screen scaling of 150% through standard client connection parameters (like FreeRDP) to xrdp.
After xrdp confirms that the user has the correct permissions to log in, it writes the variables to user files or environment variables.
These variables are then loaded in
startwm.sh
to achieve a personalized session startup.Since xrdp and the client are on different systems, adding a custom channel between the two might be a good approach.
However, I am not familiar with this and couldn't find any references.
Therefore, I used a rather crude method to achieve basic functionality.
Currently, I am using the domain field, which I don't often use, to pass variables from the client to xrdp.
Once
mm.c
confirms user authentication, it writes the variables to a file in the user's home directory.The headache is that xrdp runs as a non-root user, and I don't know how
mm.c
can write variables to the current user's environment variables.Additionally,
mm.c
does not have permission to write to the user's directory.achieve this is by granting write permissions to the xrdp user for the user's home directory, which is quite uncomfortable.
I learned from
smartcard_pcsc.c
how to write topcscd.comm
with user permissions (I don't have a smart card, but for some reason, every time I connect to an xrdp session, a.pcsc10 11..
directory is created in the home directory, which is another confusing issue).However, similar programs like
smartcard_pcsc.c
cannot accessclient_info->domain
.Please advise on how to do this better.
Or how to conveniently assign the value of
client_info->domain
to an environment variable in the user session.Thanks
Additionally, the functionality of FUSE for virtual remaining space is working well.
Beta Was this translation helpful? Give feedback.
All reactions