Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Running application with user privillegions.
Qt 6.11 is out! See what's new in the release blog

Running application with user privillegions.

Scheduled Pinned Locked Moved Unsolved General and Desktop
50 Posts 10 Posters 14.6k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by SGaist
    #2

    Hi and welcome to devnet,

    What you are asking is not clear.
    A process started by a user already has its privileges.

    Can you describe what exactly should happen ?

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    N 1 Reply Last reply
    1
    • SGaistS SGaist

      Hi and welcome to devnet,

      What you are asking is not clear.
      A process started by a user already has its privileges.

      Can you describe what exactly should happen ?

      N Offline
      N Offline
      nicholas_ru
      wrote on last edited by nicholas_ru
      #3

      @SGaist For example, i am want running with root, this is needed asked password.How implementation this is function?

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #4

        Again, you have to be more precise.
        Starting arbitrary binaries or doing specific actions have two different design paths.
        Also, the OS is important as well. Which one are you targeting ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • N Offline
          N Offline
          nicholas_ru
          wrote on last edited by nicholas_ru
          #5

          OS Debian GNU/Linux 13.4 trixie.

          JonBJ 1 Reply Last reply
          0
          • N nicholas_ru

            OS Debian GNU/Linux 13.4 trixie.

            JonBJ Offline
            JonBJ Offline
            JonB
            wrote on last edited by JonB
            #6

            @nicholas_ru
            There are 3 ways I know of under Linux:

            • Invoke su or sudo or runuser or setpriv or others to run your program. Depending on your flavor you may be able to pass a password on the command line, standard input, environment variable or similar.

            • Use polkit and pkexec to configure the system to run certain programs with certain privileges. It does not require a login or password once set up.

            • Make your executable file setuid to root or another user so it always runs with that user's privileges. It does not require a login or password.

            QProcess is nothing but a wrapper around Linux exec-type system calls. Nothing special about it. It could be used to run any of the above.

            1 Reply Last reply
            0
            • N Offline
              N Offline
              nicholas_ru
              wrote on last edited by nicholas_ru
              #7

              please, describe code for this action, i am beginner.

              JonBJ 1 Reply Last reply
              0
              • N nicholas_ru

                please, describe code for this action, i am beginner.

                JonBJ Offline
                JonBJ Offline
                JonB
                wrote on last edited by JonB
                #8

                @nicholas_ru
                You need to investigate these alternatives to decide which suits your use case the best. You can use man pages or Google. They don't really require "programming" at your side. You should start with: what is it you are trying to do which requires running as another user and why? Why do you want to run what as root from where? Will you only be running this yourself, within your own organization or for distribution to others in the outside world? And btw is this to be a command line or UI Qt application?

                1 Reply Last reply
                0
                • Joe von HabsburgJ Offline
                  Joe von HabsburgJ Offline
                  Joe von Habsburg
                  wrote on last edited by Joe von Habsburg
                  #9

                  I used to before on js many years ago, maybe that command help you

                  // echo your-password | sudo -S your-command
                  
                  QString command = QString("echo %1 | sudo -S %2").arg(1234).arg("ifconfig")
                  rocess->start(command)
                  
                  
                  1 Reply Last reply
                  0
                  • N Offline
                    N Offline
                    nicholas_ru
                    wrote on last edited by nicholas_ru
                    #10

                    Debian running, for example, /usr/sbin/gparted, automatically with root requesting(without entering command sudo).How implementation this is, i am don't know.

                    Joe von HabsburgJ jsulmJ 2 Replies Last reply
                    0
                    • N nicholas_ru

                      Debian running, for example, /usr/sbin/gparted, automatically with root requesting(without entering command sudo).How implementation this is, i am don't know.

                      Joe von HabsburgJ Offline
                      Joe von HabsburgJ Offline
                      Joe von Habsburg
                      wrote on last edited by
                      #11

                      @nicholas_ru said in Running application with user privillegions.:

                      Debian running, for example, gparted, automatically with root requesting(without entering command sudo).How implementation this is, i am don't know.

                      I don't understand what you mean. Are you saying that the gparted command runs as root but doesn't ask for a password, whereas other applications do?

                      For example, you may have entered a password for the sudo command in the same terminal before, or you may have granted permissions for the gparted command. These are Linux-related tasks.

                      If you need run command on qproccess with sudo and password: https://superuser.com/questions/67765/sudo-with-password-in-one-command-line

                      1 Reply Last reply
                      0
                      • N nicholas_ru

                        Debian running, for example, /usr/sbin/gparted, automatically with root requesting(without entering command sudo).How implementation this is, i am don't know.

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        @nicholas_ru said in Running application with user privillegions.:

                        How implementation this is, i am don't know.

                        This was answered by @JonB :
                        "Make your executable file setuid to root or another user so it always runs with that user's privileges. It does not require a login or password."

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        3
                        • P Offline
                          P Offline
                          Peter Watson
                          Banned
                          wrote on last edited by
                          #13
                          This post is deleted!
                          1 Reply Last reply
                          0
                          • Joe von HabsburgJ Offline
                            Joe von HabsburgJ Offline
                            Joe von Habsburg
                            wrote on last edited by
                            #14

                            You could ask ai or search on google

                            sudo cp your_program.exe /usr/local/bin/your_program
                            sudo chmod +x /usr/local/bin/your_program
                            

                            These are Linux-related tasks.

                            JonBJ 1 Reply Last reply
                            0
                            • Joe von HabsburgJ Joe von Habsburg

                              You could ask ai or search on google

                              sudo cp your_program.exe /usr/local/bin/your_program
                              sudo chmod +x /usr/local/bin/your_program
                              

                              These are Linux-related tasks.

                              JonBJ Offline
                              JonBJ Offline
                              JonB
                              wrote on last edited by JonB
                              #15

                              @Joe-von-Habsburg said in Running application with user privillegions.:

                              sudo chmod +x /usr/local/bin/your_program

                              It's already executable after the copy, and chmod +x does nothing more than it already is. It does not make the executable run as root. You want/intended instead:

                              chmod u+s path-to-executable
                              

                              so it will look like:

                              root@ubuntu-22:~/QtTests/C++/sudopassword/build/Desktop-Debug# chmod u+s fred
                              root@ubuntu-22:~/QtTests/C++/sudopassword/build/Desktop-Debug# ls -l fred
                              -rwsr-xr-x 1 root root 379112 Mar 30 08:48 fred
                              

                              Note the -rws, the s there.

                              Note that you will need to repeat the chmod every time after you recompile/recopy your executable. If you redistribute your executable then wherever it gets installed the root user would need to choose to run the chmod u+s there once, you cannot distribute (I don't think) with the executable owned by root and setuid.

                              1 Reply Last reply
                              3
                              • N Offline
                                N Offline
                                nicholas_ru
                                wrote on last edited by nicholas_ru
                                #16

                                You have ubuntu. I have Debian. This is method change chmod, not exit for programmers.First post with running command very nice,but not full.

                                JonBJ 1 Reply Last reply
                                0
                                • N nicholas_ru

                                  You have ubuntu. I have Debian. This is method change chmod, not exit for programmers.First post with running command very nice,but not full.

                                  JonBJ Offline
                                  JonBJ Offline
                                  JonB
                                  wrote on last edited by JonB
                                  #17

                                  @nicholas_ru
                                  Did you even try it?? Debian man page https://manpages.debian.org/bookworm/coreutils/chmod.1.en.html

                                  Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

                                  How else would you setuid under Debian? No point my suggesting things if they do work but you say they do not.

                                  .First post with running command very nice,but not full.

                                  If you mean @Joe-von-Habsburg 's QString command = QString("echo %1 | sudo -S %2").arg(1234).arg("ifconfig") it won't work as written if passed to QProcess::start().... But I am getting a bit dispirited trying to help you so up to you.

                                  Joe von HabsburgJ N 2 Replies Last reply
                                  0
                                  • JonBJ JonB

                                    @nicholas_ru
                                    Did you even try it?? Debian man page https://manpages.debian.org/bookworm/coreutils/chmod.1.en.html

                                    Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

                                    How else would you setuid under Debian? No point my suggesting things if they do work but you say they do not.

                                    .First post with running command very nice,but not full.

                                    If you mean @Joe-von-Habsburg 's QString command = QString("echo %1 | sudo -S %2").arg(1234).arg("ifconfig") it won't work as written if passed to QProcess::start().... But I am getting a bit dispirited trying to help you so up to you.

                                    Joe von HabsburgJ Offline
                                    Joe von HabsburgJ Offline
                                    Joe von Habsburg
                                    wrote on last edited by
                                    #18

                                    @JonB said in Running application with user privillegions.:

                                    But I am getting a bit dispirited trying to help you so up to you.

                                    :(

                                    @nicholas_ru said in Running application with user privillegions.:

                                    You have ubuntu. I have Debian. This is method change chmod, not exit for programmers.First post with running command very nice,but not full.

                                    so ? linux is linux and there is a qt forum. we try to help you

                                    JonBJ 1 Reply Last reply
                                    0
                                    • Joe von HabsburgJ Joe von Habsburg

                                      @JonB said in Running application with user privillegions.:

                                      But I am getting a bit dispirited trying to help you so up to you.

                                      :(

                                      @nicholas_ru said in Running application with user privillegions.:

                                      You have ubuntu. I have Debian. This is method change chmod, not exit for programmers.First post with running command very nice,but not full.

                                      so ? linux is linux and there is a qt forum. we try to help you

                                      JonBJ Offline
                                      JonBJ Offline
                                      JonB
                                      wrote on last edited by JonB
                                      #19

                                      @Joe-von-Habsburg said in Running application with user privillegions.:

                                      But I am getting a bit dispirited trying to help you so up to you.

                                      :(

                                      To be clear: it is the OP I am getting "dispirited" trying to help, not your posts! :)

                                      He could use your code approach (perhaps, if that is what he wants), just that it needs changing to work. But since we (at least I) don't even know exactly what he wants I have not corrected it so far, waiting to see.....

                                      1 Reply Last reply
                                      1
                                      • JonBJ JonB

                                        @nicholas_ru
                                        Did you even try it?? Debian man page https://manpages.debian.org/bookworm/coreutils/chmod.1.en.html

                                        Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

                                        How else would you setuid under Debian? No point my suggesting things if they do work but you say they do not.

                                        .First post with running command very nice,but not full.

                                        If you mean @Joe-von-Habsburg 's QString command = QString("echo %1 | sudo -S %2").arg(1234).arg("ifconfig") it won't work as written if passed to QProcess::start().... But I am getting a bit dispirited trying to help you so up to you.

                                        N Offline
                                        N Offline
                                        nicholas_ru
                                        wrote on last edited by nicholas_ru
                                        #20

                                        @JonB i am think in Qt framework must be integrated this is function.

                                        JonBJ 1 Reply Last reply
                                        0
                                        • N nicholas_ru

                                          @JonB i am think in Qt framework must be integrated this is function.

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on last edited by
                                          #21

                                          @nicholas_ru No idea what you mean. You have plenty of answers & suggestions above, so over to you to do something....

                                          N 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved