Downloads:

11,139

Downloads of v 0.7.2:

5,247

Last Update:

09 Aug 2020

Package Maintainer(s):

Software Author(s):

  • Gerardo Grignoli

Tags:

sudo for windows run elevated user command runas powershell wsl

gsudo - a sudo for windows

0.7.2 | Updated: 09 Aug 2020

Downloads:

11,139

Downloads of v 0.7.2:

5,247

Maintainer(s):

Software Author(s):

  • Gerardo Grignoli

gsudo - a sudo for windows 0.7.2

All Checks are Passing

2 Passing Test


Validation Testing Passed


Verification Testing Passed

Details

To install gsudo - a sudo for windows, run the following command from the command line or from PowerShell:

>

To upgrade gsudo - a sudo for windows, run the following command from the command line or from PowerShell:

>

To uninstall gsudo - a sudo for windows, run the following command from the command line or from PowerShell:

>

NOTE: This applies to both open source and commercial editions of Chocolatey.

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://chocolatey.org/api/v2. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Enter your internal repository url

(this should look similar to https://chocolatey.org/api/v2)

4. Choose your deployment method:


choco upgrade gsudo -y --source="'STEP 3 URL'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade gsudo -y --source="'STEP 3 URL'"
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Ensure gsudo installed
  win_chocolatey:
    name: gsudo
    state: present
    version: 0.7.2
    source: STEP 3 URL

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.

Coming early 2020! Central Managment Reporting available now! More information...


chocolatey_package 'gsudo' do
  action    :install
  version  '0.7.2'
  source   'STEP 3 URL'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


Chocolatey::Ensure-Package
(
    Name: gsudo,
    Version: 0.7.2,
    Source: STEP 3 URL
);

Requires Otter Chocolatey Extension. See docs at https://inedo.com/den/otter/chocolatey.


cChocoPackageInstaller gsudo
{
   Name     = 'gsudo'
   Ensure   = 'Present'
   Version  = '0.7.2'
   Source   = 'STEP 3 URL'
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'gsudo':
  provider => 'chocolatey',
  ensure   => '0.7.2',
  source   => 'STEP 3 URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


salt '*' chocolatey.install gsudo version="0.7.2" source="STEP 3 URL"

See docs at https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.chocolatey.html.

5. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

This package was approved as a trusted package on 09 Aug 2020.

Description

gsudo allows to run commands with elevated permissions within the current console.
It is a sudo equivalent for Windows, with a similar user-experience as the original *nix sudo.

Elevated commands are shown in the caller (non-elevated) console, no switching to another console required.

http://github.com/gerardog/gsudo

Usage

gsudo [command] [arguments]
Executes the specified command, elevated, and returns.

Examples

gsudo notepad c:\Windows\System32\drivers\etc\hosts
gsudo cmd


bin\gsudo.exe
md5: 0EFAD72A6954DB668D952E6661E62A01 | sha1: FA1332908E7E3B83C7E8137F35745F765F7832CC | sha256: 98881CAD1AC833B7400493225A7BAF875CB519B9B14238D5477BBA5F1665406A | sha512: 6AF821E824927A78E118911582BD1BA2DE5EE33D5B2C0D75373E5BD0C9BC80959D19DD25E1BB9F8D11A3837ACEC523F05A461CCB1A437AA9FD388B70847C831B
bin\gsudo.exe.ignore
 
bin\sudo.exe.ignore
 
tools\chocolateybeforemodify.ps1
$ErrorActionPreference = "SilentlyContinue"

$running = Get-Process gsudo -ErrorAction SilentlyContinue

if ($running) {	
	gsudo.exe -k
	Start-Sleep -Milliseconds 500
}
tools\chocolateyinstall.ps1
function Test-IsSymLink([string]$path) {
  $file = Get-Item $path -Force -ea SilentlyContinue
  return [bool]($file.Attributes -band [IO.FileAttributes]::ReparsePoint)
}

if (Get-Process gsudo -ErrorAction SilentlyContinue) {
	gsudo.exe -k
	Start-Sleep -Milliseconds 500
	if (Get-Process gsudo -ErrorAction SilentlyContinue) {
		$ErrorActionPreference = "Stop"
		Write-Output '##### Please close gsudo before installing.             #####'
		Write-Output '##### Or run in new window with "-n" to let gsudo exit: #####'
		Write-Output '        gsudo -n cmd /k choco upgrade gsudo'
		
		throw "Unable to install/uninstall if gsudo is running"
	}
}

$bin = "$env:ChocolateyInstall\lib\gsudo\bin\"

if (Test-Path "$bin\sudo.exe")
{
  Remove-Item "$bin\sudo.exe"
}

# Remove from User Path on previous versions ( <= 0.7.1 )
$toolsPath = Split-Path -parent $MyInvocation.MyCommand.Definition
$unScriptPath = Join-Path $toolsPath "Uninstall-ChocolateyPath.psm1"
$installPath = "$env:ChocolateyInstall\lib\gsudo\bin\"
Import-Module $unScriptPath

Uninstall-ChocolateyPath $installPath 'User' | Out-Null

# Add to System Path
Install-ChocolateyPath -PathToInstall $bin -PathType 'Machine'

cmd /c mklink "$bin\sudo.exe" "$bin\gsudo.exe"

if (Test-Path "$env:ChocolateyInstall\bin\gsudo.exe")  # Previous installers created symlinks on chocolatey\bin, we no longer need them.
{ 
  Remove-Item "$env:ChocolateyInstall\bin\gsudo.exe"
  if (Test-IsSymLink "$env:ChocolateyInstall\bin\sudo.exe")
  {
    Remove-Item "$env:ChocolateyInstall\bin\sudo.exe"
  }
}

Write-Output "Done."

tools\chocolateyuninstall.ps1
$toolsPath = Split-Path -parent $MyInvocation.MyCommand.Definition
$unScriptPath = Join-Path $toolsPath "Uninstall-ChocolateyPath.psm1"

$installPath = "$env:ChocolateyInstall\lib\gsudo\bin\"

Import-Module $unScriptPath
Uninstall-ChocolateyPath $installPath 'Machine' | Out-Null
tools\LICENSE.txt
From: https://opensource.org/licenses/MIT

LICENSE

Copyright 2019 Gerardo Grignoli

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
tools\Uninstall-ChocolateyPath.psm1
function Uninstall-ChocolateyPath {
  param(
    [string] $pathToUninstall,
    [System.EnvironmentVariableTarget] $pathType = [System.EnvironmentVariableTarget]::User
  )
  Write-Debug "Running 'Uninstall-ChocolateyPath' with pathToUninstall:`'$pathToUninstall`'";

  #get the PATH variable
  $envPath = $env:PATH
  #$envPath = [Environment]::GetEnvironmentVariable('Path', $pathType)
  if (!$envPath.ToLower().Contains($pathToUninstall.ToLower())) {
    Write-Host "PATH environment variable does not have $pathToUninstall in it."
    return
  }

  Write-Host "PATH environment variable has $pathToUninstall in it. Removing..."
  $actualPath = [Environment]::GetEnvironmentVariable('Path', $pathType)

  # escape regex metachars, match possible backslash and item separator at eol
  $pathToUninstallRegex = ($pathToUninstall -replace '([\\().])', '\$1') + '\\?(;|$)'

  # remove pathToUninstall from actualPath
  $actualPath = $actualPath -replace "$pathToUninstallRegex", ''

  if ($pathType -eq [System.EnvironmentVariableTarget]::Machine) {
    $psArgs = "[Environment]::SetEnvironmentVariable('Path',`'$actualPath`', `'$pathType`')"
    Start-ChocolateyProcessAsAdmin "$psArgs"
  }
  else {
    [Environment]::SetEnvironmentVariable('Path', $actualPath, $pathType)
  }

  # remove from path of current powershell session
  $envPSPath = $env:PATH
  $env:Path = $envPSPath -replace "$pathToUninstallRegex", ''
}
tools\VERIFICATION.txt
VERIFICATION
Verification is intended to assist the Chocolatey moderators and community
in verifying that this package's contents are trustworthy.

1. The embedded files are also available as a release in GitHub.

Please go to releases page
https://github.com/gerardog/gsudo/releases

Download same version as this choco package (example for v0.4)
https://github.com/gerardog/gsudo/releases/tag/v0.4

unzip and get hashes
powershell -command Get-FileHash *

2. Get hashes from this choco package. Run:

powershell -command Get-FileHash bin\*

3. The checksums should match the following:
--- 
Version Hashes for v0.7.2 
 

Algorithm       Hash                                                                   Path                                                                                                             
---------       ----                                                                   ----                                                                                                             
SHA256          98881CAD1AC833B7400493225A7BAF875CB519B9B14238D5477BBA5F1665406A       C:\git\gsudo\build\Chocolatey\gsudo\bin\gsudo.exe                                                                
SHA256          E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855       C:\git\gsudo\build\Chocolatey\gsudo\bin\gsudo.exe.ignore                                                         
SHA256          E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855       C:\git\gsudo\build\Chocolatey\gsudo\bin\sudo.exe.ignore                                                          



 

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Version Downloads Last Updated Status

This package has no dependencies.

Discussion for the gsudo - a sudo for windows Package

Ground Rules:

  • This discussion is only about gsudo - a sudo for windows and the gsudo - a sudo for windows package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or gsudo - a sudo for windows, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus