Linux for Unix Administrators Training in San Rafael

Enroll in or hire us to teach our Linux for Unix Administrators class in San Rafael, California by calling us @303.377.6176. Like all HSG classes, Linux for Unix Administrators may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, Linux for Unix Administrators may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

 
A fast paced 5-day course that is a combination of "Enterprise Linux Systems Administration", and "Enterprise Linux Networking Services. Particular focus is given to translating Solaris and HP-UX skills to Linux.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

A good understanding of network concepts, the TCP/I P protocol suite, and basic UNIX security is also assumed.

Course Outline

 
LINUX ORIENTATION
FSF and GNU
GPL – General Public License
Linux Kernel and Versioning
Components of a Distribution
Red Hat Linux Products
SUSE Linux Products
LINUX KERNEL & HARDWARE
Hardware Discovery Tools
Configuring New Hardware with hwinfo
Hardware and System Clock
Console
Virtual Terminals
Keyboard & locale configuration
Serial Ports
SCSI Devices
USB Architecture
Defining a Printer
Tape Libraries
Managing Linux Device Files
Kernel Hardware Info – /sys/
/sys/ Structure
udev
Kernel Modules
Configuring Kernel Components and Modules
Handling Module Dependencies
Configuring the Kernel via /proc/
Random Numbers and /dev/random
System Tools
LAB TASKS
Adjusting Kernel Options
Linux Kernel Driver Compilation
Configuring Print Queues
Introduction to Troubleshooting Labs
Troubleshooting Practice: Kernel Modules
 
SYSTEMD OVERVIEW
System Boot Method Overview
systemd System and Service Manager
Modifying systemd services
Systemd Service Sandboxing Features
systemd Targets
Using systemd
Linux Runlevels Aliases
Legacy Support for SysV init
LAB TASKS
Managing Services With Systemd's systemctl
Creating a systemd unit file
 
GRUB2/SYSTEMD BOOT PROCESS
Booting Linux on PCs
GRUB 2
GRUB 2 Configuration
GRUB 2 Security
Boot Parameters
Initial RAM Filesystem
init
Systemd local-fs.target and sysinit.target
Systemd basic.target and multi-user.target
Legacy local bootup script support
System Configuration Files
RHEL7 Configuration Utilities
SLES12 Configuration Utilities
Shutdown and Reboot
LAB TASKS
Boot Process
Booting directly to a bash shell
GRUB Command Line
Basic GRUB Security
Troubleshooting Practice: Boot Process
 
SOFTWARE MAINTENANCE
RPM Architecture
Working With RPMs
Querying and Verifying with RPM
Updating the Kernel RPM
Using the Yum command
Using the Zypper command
YUM package groups
Zypper Services and Catalogs
Configuring Yum
YUM Repositories
Rebuilding Source RPM Packages
Software Tools Comparison Matrix
LAB TASKS
Managing Software with RPM
Creating a Custom RPM Repository
Querying the RPM Database
Installing Software via RPM & Source and Rebuilding SRPMs
Using Yum
Using Zypper
 
LOCAL STORAGE ADMINISTRATION
Partitioning Disks with fdisk & gdisk
Resizing a GPT Partition with gdisk
Partitioning Disks with parted
Non-Interactive Disk Partitioning with sfdisk
Filesystem Creation
Mounting Filesystems
Filesystem Maintenance
Resizing Filesystems
Managing an XFS Filesystem
Swap
Filesystem Attributes
Filesystem Creation and Management
LAB TASKS
Creating and Managing Filesystems
Hot Adding Swap
 
LVM & RAID
Logical Volume Management
Implementing LVM
Creating Logical Volumes
Activating LVM VGs
Exporting and Importing a VG
Examining LVM Components
Changing LVM Components
Advanced LVM Overview
Advanced LVM: Components & Object Tags
Advanced LVM: Automated Storage Tiering
Advanced LVM: Thin Provisioning
Advanced LVM: Striping & Mirroring
Advanced LVM: RAID Volumes
SLES Graphical Disk Tool
RAID Concepts
Array Creation with mdadm
Software RAID Monitoring
Software RAID Control and Display
LVM and RAID: Unix Tool Comparison
LAB TASKS
Creating and Managing LVM Volumes
Creating LVM Thin Volumes
Creating and Managing a RAID-5 Array
 
REMOTE STORAGE ADMINISTRATION
Remote Storage Overview
Remote Filesystem Protocols
Remote Block Device Protocols
NFS Clients
NFS Server Configuration
Implementing NFSv4
AutoFS
AutoFS Configuration
SAN Multipathing
Multipath Configuration
Multipathing Best Practices
iSCSI Architecture
Open-iSCSI Initiator Implementation
iSCSI Initiator Discovery
iSCSI Initiator Node Administration
Mounting iSCSI Targets at Boot
iSCSI Multipathing Considerations
LAB TASKS
Using autofs
NFS Server Configuration
iSCSI Initiator Configuration
 
USER/GROUP ADMINISTRATION
Approaches to Storing User Accounts
User and Group Concepts
User Administration
Modifying Accounts
Group Administration
Password Aging
Default User Files
Controlling Login Sessions
RHEL DS Client Configuration
SLES DS Client Configuration
PAM Overview
PAM Module Types
PAM Order of Processing
PAM Control Statements
pam_wheel.so
pam_limits.so
User/Group Administration Comparison Matrix
LAB TASKS
User and Group Administration
Using LDAP for Centralized User Accounts
Troubleshooting Practice: Account Management
Restricting superuser access to wheel group membership
Setting Limits with the pam_limits Modules
Using pam_limits to Restrict Simultaneous Logins
 
SECURITY ADMINISTRATION
Security Concepts
Tightening Default Security
Security Advisories
Fine Grained Authorizations with Polkit
File Access Control Lists
Manipulating FACLs
Viewing FACLs
Backing Up FACLs
File Creation Permissions with umask
User Private Group Scheme
Alternatives to UPG
TCP Wrappers Concepts
TCP Wrappers Concepts
Xinetd
SUSE Basic Firewall Configuration
Netfilter Concepts
Using the iptables Command
Common match_specs
Extended Packet Matching Modules
Connection Tracking
AppArmor
SELinux Security Framework
SELinux Modes
SELinux Commands
Choosing an SELinux Policy
SELinux Booleans
SELinux Policy Tools
(X)INETD and Firewalls
LAB TASKS
User Private Groups
Using Filesystem ACLs
Securing xinetd Services
Enforcing Security Policy with xinetd
Securing Services with TCP Wrappers
Securing Services with SuSEfirewall2
Securing Services with Netfilter
Exploring SELinux Modes
SELinux File Contexts
 
PROCESS ADMINISTRATION
at & cron Usage
Anacron
Viewing Processes
Managing Processes
Tuning Process Scheduling
Process Accounting
Setting Resource Limits via ulimit
LAB TASKS
Creating and Managing User Cron Jobs
Adding System cron Jobs
 
NETWORKING
Linux Network Interfaces
Ethernet Hardware Tools
Network Configuration with ip Command
Configuring Routing Tables
IP to MAC Address Mapping with ARP
Starting and Stopping Interfaces
NetworkManager
DNS Clients
DHCP Clients
Network Diagnostics
Information from ss and netstat
Managing Network-Wide Time
Continual Time Sync with NTP
Configuring NTP Clients
Multiple IP Addresses
IPv6
Interface Aggregation
Interface Bonding
Network Teaming
Interface Bridging
802.1q VLANS
Network Configuration Tools
LAB TASKS
Network Discovery
Basic Client Networking
NTP Client Configuration
Multiple IP Addresses Per Network Interface
Configuring IPv6
Troubleshooting Practice: Networking
 
MONITORING & TROUBLESHOOTING
System Status – Memory
System Status – I/O
System Status – CPU
Performance Trending with sar
Troubleshooting Basics: The Process
Troubleshooting Basics: The Tools
System Logging
Syslog-ng
systemd Journal
systemd Journal's journalctl
Secure Logging with Journal's Log Sealing
Rsyslog
/etc/rsyslog.conf
Log Management
Log Anomaly Detector
strace and ltrace
Troubleshooting Incorrect File Permissions
Inability to Boot
Typos in Configuration Files
Corrupt Filesystems
RHEL7 Rescue Environment
SUSE Rescue Environment
Process Tools
LAB TASKS
Using the systemd Journal
Setting up a Full Debug Logfile
Remote Syslog Configuration
Remote Rsyslog TLS Configuration
Recovering Damaged MBR
 
BIND DNS
The Domain Name Space
Delegation and Zones
Server Roles
Resolving Names
Resolving IP Addresses
Basic BIND Administration
Configuring the Resolver
Testing Resolution
rndc Key Configuration
named.conf Options Block
Creating a Site-Wide Cache
Zones In named.conf
Zone Database File Syntax
SOA – Start of Authority
A, AAAA, & PTR – Address & Pointer Records
NS – Name Server
TXT, CNAME, & MX – Text, Alias, & Mail Host
Abbreviations and Gotchas
$GENERATE, $ORIGIN, and $INCLUDE
LAB TASKS
Configuring a Slave Name Server
Use rndc to Control named
Configuring BIND Zone Files
 
SQL FUNDAMENTALS AND MARIADB
Popular SQL Databases
SELECT Statements
INSERT Statements
UPDATE Statements
DELETE Statements
JOIN Clauses
MariaDB
MariaDB Installation and Security
MariaDB User Account Management
MariaDB Replication
LAB TASKS
SQL with Sqlite3
Installing and Securing MariaDB
Creating a Database in MariaDB
Create a Database Backed Application
 
OPENLDAP
OpenLDAP: Server Architecture
OpenLDAP: Backends
OpenLDAP: Replication
OpenLDAP: Configuration Options
OpenLDAP Server Tools
OpenLDAP Client Tools
LDIF: LDAP Data Interchange Format
Enabling LDAP-based Login
System Security Services Daemon (SSSD)
LAB TASKS
Building An OpenLDAP Server
Enabling TLS For An OpenLDAP Server
Enabling LDAP-based Logins
 
VSFTPD & APACHE
vsftpd
Anonymous FTP with vsftpd
Configuring vsftpd
HTTP Operation
Apache Architecture
Apache Configuration Files
httpd.conf – Server Settings
httpd.conf – Main Configuration
httpd.conf – VirtualHost Configuration
Virtual Hosting DNS Implications
Adding Modules to Apache
Apache Logging
Delegating Administration
Directory Protection
Directory Protection with AllowOverride
Common Uses for .htaccess
TLS Using mod_ssl.so
LAB TASKS
Configuring vsftpd
Apache Architecture
Apache Content
Configuring Virtual Hosts
Using .htaccess Files
Using TLS Certificates with Apache
 
SQUID PROXY SERVER
Squid Overview
Squid File Layout
Squid Access Control Lists
Applying Squid ACLs
Tuning Squid & Configuring Cache Hierarchies
Bandwidth Metering
Monitoring Squid
Proxy Client Configuration
LAB TASKS
Installing and Configuring Squid
Squid Cache Manager CGI
Proxy Auto Configuration
Configure a Squid Proxy Cluster
 
SAMBA
Samba Daemons
Accessing Windows/Samba Shares from Linux
Samba Utilities
Samba Configuration Files
The smb.conf File
Mapping Permissions and ACLs
Mapping Linux Concepts
Sharing Home Directories
Sharing Printers
Share Authentication
User-Level Access
Mapping Users
Samba Account Database
User Share Restrictions
LAB TASKS
Samba Share-Level Access
Samba User-Level Access
Samba Group Shares
Handling Symbolic Links with Samba
Samba Home Directory Shares
 
POSTFIX
Postfix Features
Postfix Components
Postfix Configuration
master.cf
main.cf
Postfix Map Types
Postfix Pattern Matching
Virtual Domains
Postfix Mail Filtering
Configuration Commands
Management Commands
SMTP AUTH Server and Relay Control
SMTP AUTH Clients
TLS Server Configuration
Postfix Client Configuration for TLS
LAB TASKS
Configuring Postfix
Postfix Network Configuration
Postfix Virtual Host Configuration
Postfix SMTP AUTH Configuration
Postfix STARTTLS Configuration
SUSE Postfix Configuration Cleanup
 
EMAIL SERVICES
Procmail
SpamAssassin
amavisd-new Mail Filtering
Cyrus IMAP/POP3 Server
Cyrus IMAP MTA Integration
Cyrus Mailbox Administration
Dovecot POP3/IMAP Server
LAB TASKS
Configuring Procmail & SpamAssassin
Configuring Cyrus IMAP
Dovecot TLS Configuration
 
INSTALLING RHEL7
Anaconda: An Overview
Anaconda: Booting the System
Anaconda: Common Boot Options
Anaconda: Loading Anaconda and Packages
Anaconda: Storage Options
Anaconda: Troubleshooting
FirstBoot
Kickstart
Network Booting with PXE
A Typical Install
LAB TASKS
Linux Installation
Automating Installation with Kickstart
 
INSTALLING SLES12
YaST Install Program Interface
Network Installation
SLP for SUSE Linux Installation
Installation Choices
Kernel Crash Dump Configuration
Network Booting with PXE
Creating AutoYaST2 Files
Using AutoYaST2 files
linuxrc Automation
Installation Diagnostics
After The First Reboot
A Typical Install
LAB TASKS
SUSE Linux Enterprise Server Installation
Automating Installation with AutoYaST

Linux Unix Uses & Stats

Linux Unix is Used For:
Desktop Mainframe Computers Mobile Devices Embedded Devices
Difficulty
Popularity
Year Created
1991/1971
Pros
Performance:
Linux supports many efficient tools and operates them seamlessly. Because it's architecture is lightweight it runs faster than both Windows 8.1 and 10. 
 
Security:
Because Linux is an open-source software,  anyone can contribute code to help enhance the users’ experience i.e., adding features, fixing bugs, reducing security risks, and more.
 
 
Software Development:
The terminal in Linux is a *wild card*. You can do almost anything with it. This includes software installation, application and server configurations, file system management, and etc.
 
Large-scale:
Open-source projects benefit from having an attentive community. As a result, Linux is more secure than Windows. Instead of installing anti viruses to clean malware, you just have to stick to the recommended repositories. 
 
Efficient: 
Developers have the convenience of running servers, training machine learning models, accessing remote machines, and compiling and running scripts from the same terminal window. 
 
Free: 
Linux is free (you can put it on as many systems as you like) and you can change it to suit your needs.
Cons
Learning Curve: 
Linux is not for everyone, there is a learning curve in switching to Ubuntu. To actually learn Linux efficiently would take a user one to several years.
 
No Tech Support:
Unlike Windows, there isn’t a dedicated tech support, so getting help for things is up to you. 
 
Designer Compatabilty:
Linux is not as user friendly as Windows or as ‘straight out of the box design’ As an example for design choices, Adobe hasn’t released any of its products to Linux users. So it’s impossible to run them directly. The Ubuntu alternative is a free software called GIMP. 
 
Gaming Capabilities: 
Most games aren’t available in Linux. But that’s not to say you can’t make it happen, it's just not as easy.   
Linux Unix Job Market
Average Salary
$85k-$105k
Job Count
n/a
Top Job Locations

New York City
Boston
San Francisco 

Complimentary Skills to have along with Linux Unix
The following are types of jobs that may require Linux skills.  The top 15 job titles on Dice.com that mention Linux in their postings are:
- DevOps Engineer
- Software Engineer
- Java Developer
- Systems Engineer
- Systems Administrator
- Senior Software Engineer
- Network Engineer
- Python Developer
- Linux Systems Administrator
- Software Developer
- System Administrator
- Linux Administrator
- Linux Engineer
- Senior Java Developer
- C++ Developer

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.