• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

SSH Restart Script

Scheduled Pinned Locked Moved General pfSense Questions
12 Posts 3 Posters 6.2k Views
Loading More Posts
  • 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.
  • R
    rcampbell
    last edited by Aug 23, 2015, 2:36 PM

    I'm trying to create a script to restart pfSense, but I am stuck on the command to do so.

    So far I have created a new user and added them to the admins group.  When I ssh into pfSense with this user it bypasses the text based menu and goes directly to the command prompt - perfect.

    This is where I start having problems…

    [2.2.4-RELEASE][admin2]/: reboot
    reboot: Operation not permitted
    
    [2.2.4-RELEASE][admin2]/: init 6
    init: Operation not permitted
    
    [2.2.4-RELEASE][admin2]/: sudo init 6
    sudo: Command not found.
    
    [2.2.4-RELEASE][admin2]/: shutdown -r now
    /sbin/shutdown: Permission denied.
    
    [2.2.4-RELEASE][admin2]/home/shr-fs2: su init 6
    su: Sorry
    
    

    How do I give the new admin user the permissions to run these commands?

    1 Reply Last reply Reply Quote 0
    • D
      doktornotor Banned
      last edited by Aug 23, 2015, 4:02 PM

      Huh… How about

      
      /etc/rc.reboot
      
      
      1 Reply Last reply Reply Quote 0
      • R
        rcampbell
        last edited by Aug 23, 2015, 6:39 PM

        Same problem, not enough permissions.

        1 Reply Last reply Reply Quote 0
        • D
          doktornotor Banned
          last edited by Aug 23, 2015, 7:04 PM

          Perhaps try as admin.  ::)

          1 Reply Last reply Reply Quote 0
          • R
            rcampbell
            last edited by Aug 23, 2015, 10:40 PM

            Running as admin or root, brings up the text menu on ssh login so for a script to run that won't work.

            1 Reply Last reply Reply Quote 0
            • D
              doktornotor Banned
              last edited by Aug 24, 2015, 6:25 AM

              It will NOT ever work as non-admin. Dunno really what you were thinking? You don't allow random users reboot your box. Either use the sudo package to allow the account to run the above, or patch the /etc/rc.initial script to accept shell commands as argument.

              
              --- /etc/rc.initial	2015-01-25 15:46:30.000000000 +0000
              +++ /etc/rc.initial	2015-01-25 15:50:33.000000000 +0000
              @@ -38,6 +38,18 @@
               	fi
               fi
              
              +# Parse command line parameters
              +while [ $# -gt 0 ]; do
              +	case $1 in
              +		-c )	shift
              +			/bin/sh -c $1
              +			exit
              +			;;
              +		* )
              +	esac
              +	shift
              +done
              +
               CONFIG="/cf/conf/config.xml"
               WORD="https"
              
              
              1 Reply Last reply Reply Quote 0
              • N
                nicholfd
                last edited by Aug 24, 2015, 4:16 PM

                When I log in to pfSense with my personal account via SSH & "Authorized_keys", I don't get the menu. I just get a regular prompt:

                nicholfd@Milhouse ~ $ ssh burns
                Last login: Mon Aug 24 12:03:39 2015 from 192.168.169.178
                [2.2.4-RELEASE][nicholfd@burns.springfield.com]/home/nicholfd: id
                uid=2001(nicholfd) gid=65534(nobody) groups=65534(nobody),1999(admins)
                
                

                This should work for you.  Note that you might have to supply full/explicit paths for everything:

                nicholfd@Milhouse ~ $ ssh burns
                Last login: Mon Aug 24 12:11:10 2015 from 192.168.169.178
                [2.2.4-RELEASE][nicholfd@burns.springfield.com]/home/nicholfd: cat test.sh
                date
                echo "Done"
                [2.2.4-RELEASE][nicholfd@burns.springfield.com]/home/nicholfd: logout
                Connection to burns closed.
                nicholfd@Milhouse ~ $ ssh burns "/home/nicholfd/test.sh"
                Mon Aug 24 12:14:40 EDT 2015
                Done
                nicholfd@Milhouse ~ $ 
                
                
                1 Reply Last reply Reply Quote 0
                • R
                  rcampbell
                  last edited by Aug 24, 2015, 5:25 PM

                  @doktornotor
                  I think you've missed what I'm trying to do.

                  @nicholfd
                  Looking at your group membership, you will have the same problem as I had above if you try to run those system commands - not enough permissions.

                  I think I've found the answer that I'm looking for..
                  When testing I was using putty and thats when I noticed the text menu upon login for the admin and root user (they both use the same password, is it user alias? not sure, but they have different group membership).

                  I'm now using plink (command line version of putty) to create the ssh session and call a script file which runs the 'init 6' command.  If I create the ssh session as admin, the script file cannot run as the session gets stuck on the pfSense text menu waiting for an option to be selected.

                  If I create the session as root, the script file runs successfully and I can achieve the reboot as required.

                  Its working now, but it does leave me with a question…. if I create an ssh session with putty as either admin or root I see the pfSense text menu.  If I create a session with plink for both users, I would expect neither of them to be able to run commands as the pfSense text menu is waiting for input, why then does it work for root?

                  1 Reply Last reply Reply Quote 0
                  • D
                    doktornotor Banned
                    last edited by Aug 24, 2015, 5:31 PM Aug 24, 2015, 5:27 PM

                    No, I didn't miss what you are trying to do.
                    1/ You simply do NOT reboot box as non-admin. This ain't Windoze.
                    2/ Already told you to use sudo and allow the proper command for the account your wish to use for the job.
                    3/ In case you do NOT want to use sudo and another account, I gave you what you need to be able to pass commands to the default admin shell (which happens to be /etc/rc.initial (the "text menu").

                    What's your idea with calling init 6 or similar crap when there's a script intended EXACTLY for rebooting the box??? Sigh.

                    1 Reply Last reply Reply Quote 0
                    • R
                      rcampbell
                      last edited by Aug 24, 2015, 5:39 PM

                      Yeah you've definately missed it, and you seem quite hot headed about it.

                      This is an admin user as stated in the original post, I'm not trying to restart with a non-admin user.
                      Sudo is not a recognized command, to run 'su' the user needs to be in the 'wheel' group which they are not added to when creating the user through the pfSense Web UI.  The user must be created using pw useradd and added to the wheel group to be able to run su.

                      The command: init 6 (a graceful reboot) or 'similar crap' or the reboot script wasn't the actual problem… which you missed.

                      1 Reply Last reply Reply Quote 0
                      • D
                        doktornotor Banned
                        last edited by Aug 24, 2015, 5:43 PM

                        Argh.

                        1/ Install the sudo package as told! Hell… Read what people tell you.

                        @doktornotor:

                        Either use the sudo package to allow the account to run the above

                        2/ You also sure like hell were NOT trying as admin, since you explicitly told us that it "would not work".

                        @rcampbell:

                        Running as admin or root, brings up the text menu on ssh login so for a script to run that won't work.

                        So I gave you the patch so that it would work. And here we go again.

                        P.S. And if you actually read what's the /etc/rc.reboot doing, you'd see why NOT use init 6 or similar crap.

                        Done with you, dude. Extreme waste of time.

                        1 Reply Last reply Reply Quote 0
                        • R
                          rcampbell
                          last edited by Aug 24, 2015, 5:55 PM

                          Why install packages and modify files when its not necessary?

                          Thanks for the tip on the existing reboot script though, I'll update my command :)

                          You know your help might be better recieved if you offered it with a touch of deocrum.  In each post of this thread you've given a derogatory comment, expression (rolling eyes) or just plain condecending.  This attitude probably accounts for your high number of smite points.

                          No one wants to receive help from someone being like that.  Something to reflect on for future posts.

                          1 Reply Last reply Reply Quote 0
                          1 out of 12
                          • First post
                            1/12
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                            This community forum collects and processes your personal information.
                            consent.not_received