nxtools

0.2.0-preview0003

Collection of Posix tools wrappers.

Minimum PowerShell version

6.2

This is a prerelease version of nxtools.
There is a newer prerelease version of this module available.
See the version list below for details.

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name nxtools -RequiredVersion 0.2.0-preview0003 -AllowPrerelease

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Author(s)

Gael Colas

Copyright

(c) SynEdgy Limited. All rights reserved.

Owners

Tags

linux sysadmin helper

Functions

Compress-nxArchive Expand-nxArchive Compare-nxMode Get-nxChildItem Get-nxItem Set-nxGroupOwnership Set-nxMode Set-nxOwner Get-nxDistributionInfo Get-nxKernelInfo Get-nxLinuxStandardBaseRelease Add-nxLocalGroupMember Add-nxLocalUserToGroup Disable-nxLocalUser Enable-nxLocalUser Get-nxEtcShadow Get-nxLocalGroup Get-nxLocalUser Get-nxLocalUserMemberOf New-nxLocalGroup New-nxLocalUser Remove-nxLocalGroup Remove-nxLocalGroupMember Remove-nxLocalUser Set-nxLocalGroup Set-nxLocalGroupGID Set-nxLocalGroupMember Set-nxLocalUser

DSCResources

nxFile nxGroup nxUser GC_LinuxGroup

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

## [0.2.0-preview0003] - 2021-05-24

### Added

- Initial addition of commandd:
   - `Get-nxKernelInfo`: A simple wrapper around `uname -a`.
   - `Get-nxLinuxStandardBaseRelease`: A quick wrap of `lsb_release -a` command (this `lsb_release` must be present on the system).
   - `Get-nxDistributionInfo`: Parsing information found in `/etc/*-release`.
   - `Get-nxItem`: Similar to Get-Item for file system provider but on Linux using `ls -d`.
   - `Get-nxChildItem`: Similar to Get-ChildItem for the FileSystem provider but on Linux, this will use the `ls` command.
   - `Compare-nxFileSystemMode`: An easy way to compare two sets of unix file system permissions.  
       You can use a Symbolic notation (`rwxrwxrwx`), or the numericla permission (`777` or `0777`).
   - `Get-nxLocalUser`: Read and parse local users from `/etc/passwd`.
   - `New-nxLocalUser`: Create a new Local User using `useradd`.
   - `Set-nxLocalUser`: Set the properties of a Local User using `usermod`.
   - `New-nxLocalGroup`: Create a new Local Group using `groupadd`.
   - `Get-nxLocalGroup`: Read and parse local groups from `/etc/group`.
   - `Set-nxLocalGroup`: Set the properties of an existing local group using `gpasswd`.
   - `Get-nxLocalUserMemberOf`: Get the groups (`[nxLocalGroup[]]`) a Local user is member of.
   - `Add-nxLocalGroupMember`: Add users to a group using `gpasswd`.
   - `Set-nxGroupOwnership`: Set the group owning the files and folders using `chgrp`.
   - `Add-nxLocalUserToGroup`: Add user to groups using `usermod`.
   - `Set-nxMode`: Set files and folder mode (permisisons) using `chmod`.
   - `Set-nxOwner`: Set the owner for files and folders (and optionally the group ownership) using `chown`.
   - `Set-nxLocalGroupMember`: Set (and replace) the members of an existing group using `gpasswd`.
   - `Remove-nxLocalUser`: Delete a Local user using `userdel`.
   - `Remove-nxLocalGroupMember`: Removes users from a local group using `gpasswd`.
   - `Remove-nxLocalGroup`: Delete a local group using `groupdel`.
   - `Get-nxEtcShadow`: Get a user's `/etc/shadow` entry if it exists.
   - `Disable-nxLocalUser`: Lock a user's password, Expire its account and replace its Shell to `/sbin/nologin`.
   - `Enable-nxLocalUser`: Unlock a user's password, can set the ExpireOn date and replace the Shell from a value from `/etc/shells`.
   - `Compress-nxArchive`: Compress files and folders using the `tar` command.
   - `Expand-nxArchive`: Uncompress or read files and folder from an archive using the `tar` command.

- Supporting Enums and Classes for File System permissions.
   - In order to make interpretation, Comparison, and manipulation of File system permissions easier,
     the module implements a few classes and enum to make that work.

- DscResource:
   - `nxUser`: Simple resource to manage [nxLocalUser] accounts.
   - `nxGroup`: Simple resource to manage [nxLocalGroup] and group members.
   - `nxFile`: Simple resource to manage [nxItem] (file or directory).

### Changed

- Moved source in subfolders per categories (File/Folders, User/Groups).
- Testing using Git Tools task (the new GitVersion).

### Fixed

- Fixed the main branch to release from to be `main` instead of `master`.
- Removing the 'Configure winrm' tasks (as we're only running on linux).
- Added the DocGenerator tasks to build.yaml.
- Fixed casing to `nxtools` because I can't change PSGallery package casing.
- Removing dupplicate files.

Version History

Version Downloads Last updated
0.2.1-previe... 4 7/2/2021
0.2.1-previe... 2 7/2/2021
0.2.0 102 5/25/2021
0.2.0-previe... (current version) 2 5/24/2021
0.2.0-previe... 7 4/15/2021
0.2.0-previe... 5 4/7/2021
0.1.1-previe... 3 4/7/2021
0.1.1-previe... 8 4/6/2021
0.1.1-previe... 4 4/3/2021
0.1.1-previe... 3 4/3/2021
0.1.1-previe... 4 4/2/2021