10 Free Google Courses for Career Growth in 2023

In today’s digital world, staying ahead in your career often means acquiring new skills. With the rapid evolution of technology, it’s crucial to keep up with the latest trends and tools to remain competitive.

Google, one of the tech giants, recognizes the importance of skill development and offers a range of free courses to help you stay relevant in 2023 and beyond.

Skill development enables individuals to adapt to changing environments and excel in their careers. In this highly competitive job market, employers are constantly seeking individuals with up-to-date skills. Whether you’re a recent graduate, a working professional, or someone looking to switch careers, improving your skill set is essential.

Google, a company renowned for innovation, has extended its support to skill development by enabling individual free courses in various domains such as digital marketingIT supportcybersecuritydata analyticsproject management, and UX design etc that are suitable for beginners as well as experienced professionals.

These free courses provide an ideal learning platform with practical knowledge and hands-on experience to upskill or supplant their knowledge in their line of profession. They are also a great choice for professionals looking for upward mobility in their careers or those transitioning into a different line of work.

Contents:

Key Benefits of Free Google Courses

10 Best FREE Google Courses

1. Application Development-Python

2. Applied Data Science with Python

3. Build Apps & Websites with Firebase

4. Google Ads Search Certification

5. YouTube Music Certification

6. Fundamentals of Digital Marketing

7. Build Apps with Flutter

8. Google Ads Display Certification

9. Introduction to ML: Language Processing

10. Build Interactive Apps with Google Assistant

How to Enroll in Free Google Courses

How to Obtain a Free Certificate From Google

Tips And Tricks To Crack The Interview Round

Best Free Google Courses to Become Skilled FAQs

1. Are Google certifications worth it?

2. How long does it take to complete a Google course?

3. What is the Process of Applying For A Job At Google?

4. What are the prerequisites for Google courses?

5. Are Google courses recognized by employers?

Conclusion

Key Benefits of Free Google Courses

  • Cost-Effective: These courses are entirely free, eliminating financial barriers to education.
  • Self-Paced Learning: Google’s courses allow you to learn at your own pace, accommodating to your busy schedules.
  • Certifications: Upon successful completion, you receive a certificate from Google, a well-recognized credential that will help you get employment in industries with high rates of growth.
  • Hands-on Experience: Many courses include practical assignments and real-world projects.

10 Best FREE Google Courses

This tutorial features some of the top free Google courses you can enroll in to boost your skills.

1. Application Development-Python

In this advanced course, you will learn how to Develop Python applications for Google Cloud Platform (GCP). In addition to receiving practical experience in deploying Python apps on Kubernetes and App Engine, you will study the fundamentals of setting up environments and storing application data with Cloud Datastore.

Moreover, the course incorporates special bonus labs that cover backend service development and user authentication. This course can be accessed through Google on Class Central.

Application Development - Python
Application Development – Python

2. Applied Data Science with Python

This course includes a Data Science with Python curriculum that equips learners with data science skills, including knowledge of popular data science libraries in Python such as NumpySciPyPlotly, and Pandas.

Anyone who wants to launch a career as a data scientist. this course material is a vaulable resource for Kickstarter with.

Learners who have a basic understanding of Python programming and want to get their hands dirty by using Python toolkits to apply social network analysis techniques, machine learning, information visualization, and text analysis to their data will find this course beneficial.

Applied Data Science with Python
Applied Data Science with Python

3. Build Apps & Websites with Firebase

The fundamentals of the Firebase application development platform are covered in this Google course. You will discover how to use Firebase and its Google Cloud connectors to create Google Assistant applications, construct serverless web apps, and load data into serverless databases.

To verify your knowledge and showcase your abilities, the course also contains a challenge lab. You will obtain a special digital badge from Google Cloud upon fulfilling this task.

Build your First Web App with Firebase
Build your First Web App with Firebase

4. Google Ads Search Certification

Google Ads (previously Google Adwords) is the most widely used PPC system and a significant source of revenue for Google. To help marketers make the most of Google Ads’ features, they created several certification courses that are all freely accessible through Google Skillshop.

The Google Ads Search Certification is one of the Google Ads courses that will equip you with solid skills to manage Google search marketing campaigns.

Google Ads Search Certification
Google Ads Search Certification

5. YouTube Music Certification

The YouTube Music Certification course is tailored for music content owners and examines the tactics and tools needed for teams to deliver content and manage musical assets at scale efficiently. The training addresses key elements such as rights management, commercialization, and promotion.

The certification is free, and you can add it to your LinkedIn profile upon completion.

YouTube Music Certification
YouTube Music Certification

6. Fundamentals of Digital Marketing

Google offers a free course on the Fundamentals of Digital Marketing, which Interactive Advertising Bureau Europe and the Open University have accredited.

By enrolling in this course, you’ll acquire the skills needed to manage multiple digital marketing channels, such as:

  • Online Marketing Strategy
  • Email Marketing
  • Content Marketing
  • Display Advertising
  • Mobile Marketing
  • eCommerce Marketing

This certification course is meant for beginners and requires a total of 40 hours of time commitment. To become certified, you must complete all 26 modules and ace the 40-question Google Garage exam.

Fundamentals of Digital Marketing
Fundamentals of Digital Marketing

7. Build Apps with Flutter

Developed by Google, Flutter is a popular open-source framework for creating beautiful, responsive cross-platform web and mobile applications from a shared codebase.

Google is offering a free course called Build Apps with Flutter which comprises two codelabs, one quiz, and four activities. You will learn how to create your first Flutter app, how stateful widgets work best, and how Flutter differs from other app development frameworks.

Build Apps with Flutter
Build Apps with Flutter

8. Google Ads Display Certification

The Google Ads Display Certification is provided by Google and is aimed at helping digital marketers prove their capacity to create successful Display strategies and campaigns that accomplish particular marketing objectives.

Upon earning this certification, you will have the skills to:

  • Develop a comprehensive strategy to enhance awareness, consideration, action, and retention.
  • Effectively target audiences, reaching both existing and prospective customers.
  • Make sure that the display marketing plan aligns properly with the digital marketing budget.
  • Initiate/start permission marketing campaigns.
Google Ads Display Certification
Google Ads Display Certification

9. Introduction to ML: Language Processing

With Intro to ML: Language Processing, course you will learn about machine learning in the context of language processing and get practical experience with the technology. You’ll discover how to use the Speech-to-Text API for transcription, perform sentiment and syntactic analysis, and extract entities from text.

Through a series of labs, the course will teach you how to use AI Platform, Google Cloud Speech API, and Cloud Natural Language API to fully utilize machine learning. Upon completion, you will receive a special digital badge from Google Cloud.

Introduction to ML: Language Processing
Introduction to ML: Language Processing

10. Build Interactive Apps with Google Assistant

This Build Interactive Apps with Google Assistant is a free course offered by Google through Qwiklabs, which awards a skill badge upon completion.

The course teaches learners how to create Actions projectsintegrate Dialogflow into Actions projects, test their applications using Actions Simulator, build Assistant apps using flash card templates, integrate customer MP3 files into Assistant apps, add Cloud Translation API to Assistant apps, and use APIs and integrate.

Build Interactive Apps with Google Assistant
Build Interactive Apps with Google Assistant

How to Enroll in Free Google Courses

The Free Google Courses are available online without any cost. Getting started with Google’s free courses is very simple, Go to Google’s free online Courses, create an account, choose your course, and begin learning.

How to Obtain a Free Certificate From Google

Obtaining a free certificate from Google is a valuable accomplishment that can enhance your skills and boost your career prospects. Here’s a step-by-step guide on how to get a free certificate from Google.

  • Choose and Enroll in the Course: Select the course that aligns with your interests and career goals. and Enroll it. This involves creating an account on the Google learning platform.
  • Complete the Course: Google’s courses are designed to allow users to study at their own pace that suits their schedule.
  • Pass Project and Quiz: Complete the assessments and quizzes with a passing score.
  • Finish Practical Assignments: Some Google courses require you to complete practical projects.
  • Receive Certificate: After completing the course, you will be awarded a certificate from Google. You can view and print the certification on your profile page, and add it to your resume, and LinkedIn to maximize the value of the Google certificate.

Tips And Tricks To Crack The Interview Round

You can use Google Careers tips and techniques to prepare for a Google job interview. The tips include:

  • Do your homework before applying for the position and the company.
  • Use a whiteboard or paper to practice coding.
  • Expect behavioral inquiries; be ready.
  • Ask questions when necessary

Best Free Google Courses to Become Skilled FAQs

This FAQ section answers commonly asked questions about the Best Free Google Courses to Become Skilled.

1. Are Google certifications worth it?

Yes, Google certificates are worth pursuing because according to Google, 75% of certificate holders report achieving a good career outcome such as a new job, promotion, or raise, all within six months of completing the certificate.

For those with 0–5 years of professional experience, the median pay in various fields stands at $76,000 or higher.

Also, thanks to the value that employers and academic institutions place on Google certifications, you can find work in a variety of industries, including IT and digital marketing. The majority of certificates are free, and those that cost money are fairly priced.

2. How long does it take to complete a Google course?

The duration varies depending on the course, but they are self-paced, allowing you to learn at your speed.

3. What is the Process of Applying For A Job At Google?

Now, once you’ve gained the relevant skills needed and want to get employment at Google, you must register for a Google Careers account and submit your application online to apply for a job at Google. Your resume and cover letter must both be included in the application.

If your application is chosen for further consideration, you will receive an invitation to take part in an interview process that may involve several rounds of interviews with various teams.

4. What are the prerequisites for Google courses?

Most courses have no specific prerequisites, making them accessible to learners of all levels.

5. Are Google courses recognized by employers?

Yes, Google’s certifications are highly regarded by employers and can enhance your job prospects.

Conclusion

The free courses scheduled for 2023 are a priceless resource for students looking to advance or hone their knowledge in a variety of subject areas. Participants who acquire certification are acknowledged for their efforts and successes, in addition to learning new information.

Join Google Free Courses right away to begin your journey toward development and lifelong learning.

Source

How to Upgrade from Ubuntu 20.04 LTS to Ubuntu 22.04 LTS

Ubuntu 22.04, codenamed Jammy Jellyfish, was released by Canonical on April 21 2022. It is the latest long-term support (LTS) release after its predecessor, Ubuntu 20.04 LTS. 

Ubuntu 22.04 provides major enhancements, new capabilities, and a number of new software packages such as:

  • PHP 8.1.2
  • OpenSSL 3.0
  • Ruby 3.0
  • Python 3.10.4
  • MySQL 8.0.28
  • PostgreSQL 14.2
  • Linux kernel v5.15.0-25 & MESA 22

For a comprehensive list of all the new features and software packages, check out the release notes.

In this tutorial, we will walk you through the process of how to upgrade Ubuntu 20.04 to Ubuntu 22.04.

Prerequisites

Before you begin the upgrade, ensure you meet the following requirements:

  1. At least 20 GB of free disk space. You can check the available disk space using the df -Th command.
  2. Ensure you have a regular user configured with sudo privileges with access to SSH or the terminal app. This is the user you will use to perform the upgrade process.
  3. In addition, ensure you have a fast and stable internet connection. Do not cancel the operation once it’s begun.
  4. Ensure your UPS or battery are fully charged and working.
  5. Close all open applications.

Step 1: Backup all your data

It is prudent to take a backup of all your databases and files before embarking on any major upgrade of an operating system. This ensures you will not lose your data in case something goes wrong during the upgrade process. 

Cloud server providers offer snapshot services. Therefore, if you are running a virtual machine or cloud VPS, ensure you take a complete snapshot so that you can restore your instance in case it breaks.

Step 2: Upgrade all the system packages

Once the backup is in place, log in to your instance and upgrade all the packages to their latest versions. This upgrades the entire system to the latest Ubuntu release.

To list upgradable packages, run the command (note: if you haven’t done this in a while, you may want to run the sudo apt update command first to get the most current details possible):

$ sudo apt list –upgradable

Next, refresh the local package index and upgrade the packages in one single command as follows:

$ sudo apt update && sudo apt upgrade -y

This might take a while depending on the number of installed packages with pending upgrades. Once the upgrade is complete, reboot your system to take advantage of the latest kernel that will come with the upgrade.

$ sudo reboot

Then log back into the system and confirm it has been upgraded to the latest release, which, at the time of publishing this guide, is Ubuntu 20.04.4 LTS.

$ lsb_release -a

Step 3: Open TCP port 1022

If you are connected to your Ubuntu instance via SSH, the upgrade tool will open another SSH port (1022) as a fallback port in case the SSH connection drops on port 22. 

To simplify things, we recommend that you open port 1022 on your firewall as follows. We also recommend speaking with your networking team beforehand to ensure you are minimizing potential security risks. Be sure to follow Step 6 below to close the port when you are done.

$ sudo ufw allow 1022/tcp

To apply the firewall rule, reload the firewall.

$ sudo ufw reload

Then verify that the port has been opened by probing the firewall status as shown.

$ sudo ufw status

Step 4: Upgrade to Ubuntu 22.04 Jammy Jellyfish 

At this point, upgrading to Ubuntu 22.04 will be a straightforward and seamless process. There are two ways to upgrade to the latest Ubuntu version: You can use the do-release-upgrade tool, which works for both CLI and GUI instances, or the GUI update tool.

In this guide, we will use the do-release-upgrade tool. If it is not installed, you can install it by running the command:

$ sudo apt install update-manager-core

To commence the upgrade, run the command:

$ sudo do-release-upgrade

During the upgrade, the upgrade tool will probe for the latest LTS release and walk you through a series of prompts.

First and foremost, it will detect your SSH connection and notify you that an additional SSH service will be started on port 1022. Simply type “Y” to proceed.

Next, the upgrade tool will notify you to open port 1022, which will be used as an alternative SSH port in case of an SSH connection interruption on the default port. Since you already opened the port, just hit ENTER.

Next, you will be prompted to update the “sources.list” file from ‘focal’ to ‘jammy’ entries. To proceed with the upgrade, press “Y” and press ENTER.

The update tool will calculate all the changes and provide a summary of the following:

  1. Installed packages that are no longer supported by Canonical.
  2. The number of packages to be removed.
  3. The number of new packages that will be installed.
  4. The number of packages that will be upgraded.
  5. Total download size and how long the download will take.

To continue, once again, press “Y” and press ENTER.

Some services will need to be restarted once some libraries and packages are upgraded. On this pop-up, select ‘Yes‘ to restart these services during package upgrades without being prompted.

From here, the upgrade tool will proceed to download all the requisite packages from the official Ubuntu repositories and upgrade them.

When prompted on what to do with the modified “sshd_config” configuration file, you can choose to install the package maintainer’s version or keep the local version installed. Then, select ‘Ok’.

Next, press “Y” and hit ENTER to remove obsolete packages.

Thereafter, all the old packages alongside their configuration files will be removed.

The entire process takes quite some time, so patience will be required. This is a good time to take a break and grab some coffee.

Once the upgrade is complete, you will be prompted to restart the system to finish the upgrade. Press “Y” and hit ENTER to reboot. This will cause you to lose connection to the server.

Step 5: Verify the upgrade to Ubuntu 22.04

After rebooting, log back in and confirm the upgrade was successful. 

The command:

$ lsb_release -a

checks the version of Linux, while the command

$ uname -mrs

checks the kernel version.

From the output below, you can see that we are now currently running Ubuntu 22.04 LTS. Also, note that we are using kernel 5.15 which is the kernel version that comes with Ubuntu 22.04 by default.

Step 6: Delete the firewall rule you created

Now that you are finished with the update and no longer need port 1022 open, run the following command to close the port and prevent it from becoming a security vulnerability.

$ sudoufw delete allow 1022/tcp

Step 7: Enable third-party repositories

During the upgrade, all third-party repositories are disabled. You might want to re-enable them now that the upgrade is complete. You can find these repositories in the/etc/apt/sources.list.d directory. 

To display these repositories, run the command:

 $ ls -l etc/apt/sources.list.d/

To enable them, simply open each file and uncomment the entries by deleting the # sign at the beginning of each line.

Finally, free up the disk space by removing all the unnecessary packages as follows:

$ sudo apt autoremove –purge

Conclusion

As you have seen, upgrading Ubuntu 20.04 to Ubuntu 22.04 is a simple process that requires just a few commands.

If you are an IT admin overseeing the updates of multiple Ubuntu systems, in addition to macOS and Windows device updates, your workflow can become quite complicated very quickly.

Source

How To Check Your Ubuntu Version (Using the Command Line and GUI)

Ubuntu is an open source Operating System (OS) used by people all over the world. Although it is user-friendly and customizable, it may not always be compatible with additional software. As such, you’ll need to check if your version of Ubuntu will integrate with other programs.

Fortunately, it’s relatively easy to check your Ubuntu version. You can do so using commands in the terminal or by accessing the settings in the Graphical User Interface (GUI).

In this guide, we’ll discuss what Ubuntu is and why you might want to check which version of it you are running. Then, we’ll explain how to perform this check using various easy methods. Let’s get started!

An Overview of Ubuntu (and Why You Might Need to Check Your Version of It)

Ubuntu is a Linux-based OS popular across the world. You can use the desktop, server, or core versions, depending on your needs.

Ubuntu
Ubuntu

The platform is entirely free. It also has some advantages over other OS such as Windows or macOS.

For example, it uses open source software and provides a secure development environment. As such, Ubuntu can be a helpful tool for web developers.

You can also customize most aspects of your User Interface (UI) and User Experience (UX). Therefore, Ubuntu could be an excellent choice if you feel limited by other OS options.

There are updated releases of Ubuntu approximately every six months. New versions of the software usually include maintenance and hardware updates that help the OS run more smoothly. As such, it’s in your best interest to stay up to date with the latest release.

However, you may not know if you’re running the latest version of Ubuntu. Therefore, you might like to check your OS and see if you need to update it.

Furthermore, you may need to check your Ubuntu version when installing third-party software. Not all other platforms may be compatible with the OS updates, so it’s worth investigating this before you install them.

Finally, you may run into some issues when using Ubuntu. If this happens, you can turn to technical support forums such as the official Ubuntu Forums.

The Ubuntu forums
Ubuntu forums

You can improve your forum experience by providing your version of Ubuntu. With this information, other members can assist you more precisely.

Wondering if your version of Ubuntu will integrate with other programs? 🤔 It’s easy to check… and this guide is here to help! 💪

How To Check Your Ubuntu Version in the Command Line (4 Methods)

You can check your Ubuntu version quickly using the command line (also known as the terminal). You can access this tool by using the keyboard shortcut Ctrl + Alt + T.

Once you have the command line open, you can use a few different methods to find out your Ubuntu version. Let’s explore some of them.

  1. Use the lsb_release -a Command
  2. Use the /etc/lsb-release or /etc/os-release Command
  3. Check the /etc/issue File
  4. Use the hostnamectl Command

1. Use the lsb_release -a Command

The lsb_release command shows you details about your Linux distribution. For example, it displays data concerning LSB modules. It also shows the ID and release number of the distributor.

When you add “-a” to the end of this command, it returns all possible information. This method is pretty straightforward, so you might want to utilize it if you need to find out your Ubuntu version quickly.

To start, open up your terminal and type in this command:

lsb_release -a

Then hit your Enter key to return the results. They should look something like this.

Hit "Enter" after the command to return results

You can see your Ubuntu version next to the Description heading. You can also see data about your LSB modules and the codename for your distributor.

2. Use the /etc/lsb-release or /etc/os-release Command

The /etc/lsb-release command can show you your Ubuntu version with separate lines for the release number and its description. It is designed for older systems, so you may like to use it if you’re running an outdated version of Ubuntu.

You can also obtain the same information using the /etc/os-release command. This is compatible with Ubuntu 16.04 and higher.

As before, open your terminal and enter one of the above commands. You’ll need to add “cat” before either of them:

cat etc/os-release

Then, you’ll see a list of information that includes the number of your Ubuntu version and its release name. Additionally, there are a few links to the Ubuntu website and resources that can help you.

Find the Ubuntu version and its release name
Ubuntu version and release name

Using the /etc/lsb-release command will return simpler results that show you the release ID, description, and codename. It doesn’t include the links and the Ubuntu version name.

3. Check the /etc/issue File

The /etc/issue file is a text-based document. It contains system identification data.

Using this method is simpler because the command won’t display anything other than your Ubuntu version. As such, you may like to utilize this file if you’re in a hurry and don’t need to gather any additional information about your system.

As with the previous commands, you’ll need to enter “cat” before the command. Type this into your terminal:

cat /etc/issue

Hit Enter, and you’ll see a single line of text.

Check the /etc/issue file

Your version of Ubuntu is the series of numbers before LTS. You don’t need to do anything else here.

4. Use the hostnamectl Command

Finally, you can use the hostnamectl command. This is typically used when you want to change the hostname of your system. However, it also returns information such as your Ubuntu version and machine ID.

Open up your terminal and type in this command:

hostnamectl

Next, press your Enter key and you’ll see a list of information.

Use the hostnamectl command

Here you can see both your Ubuntu version and your Ubuntu Linux kernel version. That’s it! Those are the main methods you can use to find the version of your Ubuntu OS.

How To Check Your Ubuntu Version in the GUI Settings?

If you’d rather not use the command line, you can also find your Ubuntu version in your GUI settings. You might prefer to use this method if you’re still getting used to working with the OS and its layout. However, it is a bit more time-consuming.

First, head to Show Applications. It’s the icon in the bottom left of your screen:

Find the "Show APplications" icon

Next, click on Settings. If you can’t find it, type “settings” into the search bar at the top of the screen.

Click on "Settings."

Then select the About tab from the left menu. You’ll need to scroll to the bottom of the list of items to find it. Here, you will be able to see your Ubuntu version next to the OS Name heading.

Find and select the "About" tab from the left menu
Find and select the “About” tab

For example, we’re currently running Ubuntu 20.04.3 on our system. It’s that easy!

Summary

Ubuntu is an open source OS that provides an excellent web development environment. However, it isn’t perfect and may not integrate with all the latest software. Therefore, you might need to check your version of Ubuntu before installing new programs.

To recap, you can check your Ubuntu version using any of the following methods:

  1. Use the lsb_release -a command.
  2. Use the /etc/lsb-release or /etc/os-release command.
  3. Check the /etc/issue file.
  4. Use the hostnamectl command.
  5. Check the Ubuntu version in your GUI settings.

Source

How To Install and Secure phpMyAdmin on Ubuntu 22.04

Introduction

While many users need the functionality of a database management system like MySQL, they may not feel comfortable interacting with the system solely from the MySQL prompt.

phpMyAdmin was created so that users can interact with MySQL through a web interface. In this guide, we’ll discuss how to install and secure phpMyAdmin so that you can safely use it to manage your databases on an Ubuntu 22.04 system.

Prerequisites

In order to complete this guide, you will need:

Additionally, there are important security considerations when using software like phpMyAdmin, since it:

  • Communicates directly with your MySQL installation
  • Handles authentication using MySQL credentials
  • Executes and returns results for arbitrary SQL queries

For these reasons, and because it is a widely-deployed PHP application which is frequently targeted for attack, you should never run phpMyAdmin on remote systems over a plain HTTP connection.

If you do not have an existing domain configured with an SSL/TLS certificate, you can follow this guide on securing Apache with Let’s Encrypt on Ubuntu 22.04. This will require you to register a domain namecreate DNS records for your server, and set up an Apache Virtual Host.

Step 1 — Installing phpMyAdmin

You can use APT to install phpMyAdmin from the default Ubuntu repositories.

As your non-root sudo user, update your server’s package index if you haven’t done so recently:

sudo apt update

Following that you can install the phpmyadmin package. Along with this package, the official documentation also recommends that you install a few PHP extensions onto your server to enable certain functionalities and improve performance.

If you followed the prerequisite LAMP stack tutorial, several of these modules will have been installed along with the php package. However, it’s recommended that you also install these packages:

  • php-mbstring: A module for managing non-ASCII strings and convert strings to different encodings
  • php-zip: This extension supports uploading .zip files to phpMyAdmin
  • php-gd: Enables support for the GD Graphics Library
  • php-json: Provides PHP with support for JSON serialization
  • php-curl: Allows PHP to interact with different kinds of servers using different protocols

Run the following command to install these packages onto your system. Please note, though, that the installation process requires you to make some choices to configure phpMyAdmin correctly. We’ll walk through these options shortly:

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl

Here are the options you should choose when prompted in order to configure your installation correctly:

  • For the server selection, choose apache2

Warning: When the prompt appears, “apache2” is highlighted, but not selected. If you do not hit SPACE to select Apache, the installer will not move the necessary files during installation. Hit SPACETAB, and then ENTER to select Apache.

  • Select Yes when asked whether to use dbconfig-common to set up the database
  • You will then be asked to choose and confirm a MySQL application password for phpMyAdmin

Note: Assuming you installed MySQL by following Step 2 of the prerequisite LAMP stack tutorial, you may have decided to enable the Validate Password plugin. As of this writing, enabling this component will trigger an error when you attempt to set a password for the phpmyadmin user:

phpMyAdmin password validation error

To resolve this, select the abort option to stop the installation process. Then, open up your MySQL prompt:

sudo mysql

Or, if you enabled password authentication for the root MySQL user, run this command and then enter your password when prompted:

mysql -u root -p

From the prompt, run the following command to disable the Validate Password component. Note that this won’t actually uninstall it, but just stop the component from being loaded on your MySQL server:

UNINSTALL COMPONENT "file://component_validate_password";

Following that, you can close the MySQL client:

exit

Then try installing the phpmyadmin package again and it will work as expected:

sudo apt install phpmyadmin

Once phpMyAdmin is installed, you can open the MySQL prompt once again with sudo mysql or mysql -u root -p and then run the following command to re-enable the Validate Password component:

INSTALL COMPONENT "file://component_validate_password";

The installation process adds the phpMyAdmin Apache configuration file into the /etc/apache2/conf-enabled/ directory, where it is read automatically. To finish configuring Apache and PHP to work with phpMyAdmin, the only remaining task in this section of the tutorial is to is explicitly enable the mbstring PHP extension, which you can do by typing:

sudo phpenmod mbstring

Afterwards, restart Apache for your changes to be recognized:

sudo systemctl restart apache2

phpMyAdmin is now installed and configured to work with Apache. However, before you can log in and begin interacting with your MySQL databases, you will need to ensure that your MySQL users have the privileges required for interacting with the program.

Step 2 — Adjusting User Authentication and Privileges

When you installed phpMyAdmin onto your server, it automatically created a database user called phpmyadmin which performs certain underlying processes for the program. Rather than logging in as this user with the administrative password you set during installation, it’s recommended that you log in as either your root MySQL user or as a user dedicated to managing databases through the phpMyAdmin interface.

Configuring Password Access for the MySQL Root Account

In Ubuntu systems running MySQL 5.7 (and later versions), the root MySQL user is set to authenticate using the auth_socket plugin by default rather than with a password. This allows for some greater security and usability in many cases, but it can also complicate things when you need to allow an external program — like phpMyAdmin — to access the user.

In order to log in to phpMyAdmin as your root MySQL user, you will need to switch its authentication method from auth_socket to one that makes use of a password, if you haven’t already done so. To do this, open up the MySQL prompt from your terminal:

sudo mysql

Next, check which authentication method each of your MySQL user accounts use with the following command:

SELECT user,authentication_string,plugin,host FROM mysql.user;
Output+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$I:jOry?]Sy<|qhQRj3fBRQ43i4UJxrpm.IaT6lOHkgveJjmeIjJrRe6         | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| phpmyadmin       | $A$005$?#{Z?`gN!c2az)}V-INCWXSuVdqB9zWteH1IkZfTe/rOLgVhSzEMM9R3G6K9    | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
6 rows in set (0.00 sec)

This example output indicates that the root user does in fact authenticate using the auth_socket plugin. To configure the root account to authenticate with a password, run the following ALTER USER command. Be sure to change password to a strong password of your choosing:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Note: The previous ALTER USER statement sets the root MySQL user to authenticate with the caching_sha2_password plugin. Per the official MySQL documentationcaching_sha2_password is MySQL’s preferred authentication plugin, as it provides more secure password encryption than the older, but still widely used, mysql_native_password.

However, some versions of PHP don’t work reliably with caching_sha2_passwordPHP has reported that this issue was fixed as of PHP 7.4, but if you encounter an error when trying to log in to phpMyAdmin later on, you may want to set root to authenticate with mysql_native_password instead:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Then, check the authentication methods employed by each of your users again to confirm that root no longer authenticates using the auth_socket plugin:

SELECT user,authentication_string,plugin,host FROM mysql.user;
Output+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$I:jOry?]Sy<|qhQRj3fBRQ43i4UJxrpm.IaT6lOHkgveJjmeIjJrRe6         | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| phpmyadmin       | $A$005$?#{Z?`gN!c2az)}V-INCWXSuVdqB9zWteH1IkZfTe/rOLgVhSzEMM9R3G6K9    | caching_sha2_password | localhost |
| root             | $A$005$3y�y|Z?'_[} ZyVHuESVwNmjKWOH/ndETwS.Kty0IH7UfiXjOfVvyWroy4a.   | caching_sha2_password | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
6 rows in set (0.00 sec)

This output shows that the root user will authenticate using a password. You can now log in to the phpMyAdmin interface as your root user with the password you’ve set for it here.

Configuring Password Access for a Dedicated MySQL User

Alternatively, some may find that it better suits their workflow to connect to phpMyAdmin with a dedicated user. To do this, open up the MySQL shell once again:

sudo mysql

If you have password authentication enabled for your root user, as described in the previous section, you will need to run the following command and enter your password when prompted in order to connect:

mysql -u root -p

From there, create a new user and give it a strong password:

CREATE USER 'sammy'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';

Note: Again, depending on what version of PHP you have installed, you may want to set your new user to authenticate with mysql_native_password instead of caching_sha2_password:

ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Then, grant your new user appropriate privileges. For example, you could grant the user privileges to all tables within the database, as well as the power to add, change, and remove user privileges, with this command:

GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

Following that, exit the MySQL shell:

exit

You can now access the web interface by visiting your server’s domain name or public IP address followed by /phpmyadmin:

https://your_domain_or_IP/phpmyadmin
phpMyAdmin login screen

Log in to the interface, either as root or with the new username and password you just configured.

When you log in, you’ll be taken to phpMyAdmin’s user interface:

phpMyAdmin user interface

Now that you’re able to connect and interact with phpMyAdmin, all that’s left to do is harden your system’s security to protect it from attackers.

Step 3 — Securing Your phpMyAdmin Instance

Because of its ubiquity, phpMyAdmin is a popular target for attackers, and you should take extra care to prevent unauthorized access. One way of doing this is to place a gateway in front of the entire application by using Apache’s built-in .htaccess authentication and authorization functionalities.

To do this, you must first enable the use of .htaccess file overrides by editing your phpMyAdmin installation’s Apache configuration file.

Use your preferred text editor to edit the phpmyadmin.conf file that has been placed in your Apache configuration directory. Here, we’ll use nano:

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Add an AllowOverride All directive within the <Directory /usr/share/phpmyadmin> section of the configuration file, like this:

/etc/apache2/conf-available/phpmyadmin.conf

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php
    AllowOverride All
    . . .

When you have added this line, save and close the file. If you used nano to edit the file, do so by pressing CTRL + XY, and then ENTER.

To implement the changes you made, restart Apache:

sudo systemctl restart apache2

Now that you have enabled the use of .htaccess files for your application, you need to create one to actually implement some security.

In order for this to be successful, the file must be created within the application directory. You can create the necessary file and open it in your text editor with root privileges by typing:

sudo nano /usr/share/phpmyadmin/.htaccess

Within this file, enter the following information:

/usr/share/phpmyadmin/.htaccess

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Here is what each of these lines mean:

  • AuthType Basic: This line specifies the authentication type that you are implementing. This type will implement password authentication using a password file.
  • AuthName: This sets the message for the authentication dialog box. You should keep this generic so that unauthorized users won’t gain any information about what is being protected.
  • AuthUserFile: This sets the location of the password file that will be used for authentication. This should be outside of the directories that are being served. We will create this file shortly.
  • Require valid-user: This specifies that only authenticated users should be given access to this resource. This is what actually stops unauthorized users from entering.

When you are finished, save and close the file.

The location that you selected for your password file was /etc/phpmyadmin/.htpasswd. You can now create this file and pass it an initial user with the htpasswd utility:

sudo htpasswd -c /etc/phpmyadmin/.htpasswd username

You will be prompted to select and confirm a password for the user you are creating. Afterwards, the file is created with the hashed password that you entered.

If you want to enter an additional user, you need to do so without the -c flag, like this:

sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser

Then restart Apache to put .htaccess authentication into effect:

sudo systemctl restart apache2

Now, when you access your phpMyAdmin subdirectory, you will be prompted for the additional account name and password that you just configured:

https://domain_name_or_IP/phpmyadmin
phpMyAdmin apache password

After entering the Apache authentication, you’ll be taken to the regular phpMyAdmin authentication page to enter your MySQL credentials. By adding an extra set of non-MySQL credentials, you’re providing your database with an additional layer of security. This is desirable, since phpMyAdmin has been vulnerable to security threats in the past.

Conclusion

You should now have phpMyAdmin configured and ready to use on your Ubuntu 22.04 server. Using this interface, you can create databases, users, and tables, as well as perform the usual operations like deleting and modifying structures and data.

Source

How To Secure Apache with Let’s Encrypt on Ubuntu 22.04

Introduction

Let’s Encrypt is a Certificate Authority (CA) that facilitates obtaining and installing free TLS/SSL certificates, thereby enabling encrypted HTTPS on web servers. It streamlines the process by providing a software client, Certbot, that attempts to automate most (if not all) of the required steps. Currently, the entire process of obtaining and installing a certificate is fully automated on both Apache and Nginx.

In this guide, you’ll use Certbot to obtain a free SSL certificate for Apache on Ubuntu 22.04, and make sure this certificate is set up to renew automatically.

This tutorial uses a separate virtual host file instead of Apache’s default configuration file for setting up the website that will be secured by Let’s Encrypt. We recommend creating new Apache virtual host files for each domain hosted in a server because it helps to avoid common mistakes and maintains the default configuration files as a fallback setup.

Prerequisites

To follow this tutorial, you will need:

  • One Ubuntu 22.04 server set up with a non-root user with sudo administrative privileges and firewall enabled. You can set this up by following our initial server setup for Ubuntu 22.04 tutorial.
  • A fully registered domain name. This tutorial will use your_domain as an example throughout. You can purchase a domain name on Namecheap, get one for free on Freenom, or use the domain registrar of your choice.
  • Both of the following DNS records set up for your server. You can follow this introduction to DigitalOcean DNS for details on how to add them.
    • An A record with your_domain pointing to your server’s public IP address.
    • An A record with www.your_domain pointing to your server’s public IP address.
  • Apache installed by following How To Install Apache on Ubuntu 22.04. Be sure that you have a virtual host file for your domain. This tutorial will use /etc/apache2/sites-available/your_domain.conf as an example.

Step 1 — Installing Certbot

To obtain an SSL certificate with Let’s Encrypt, you need to install the Certbot software on your server. You’ll use the default Ubuntu package repositories for that.

First, update the local package index:

sudo apt update

You need two packages: certbot, and python3-certbot-apache. The latter is a plugin that integrates Certbot with Apache, making it possible to automate obtaining a certificate and configuring HTTPS within your web server with a single command:

sudo apt install certbot python3-certbot-apache

You will be prompted to confirm the installation by pressing Y, then ENTER.

Certbot is now installed on your server. In the next step, you’ll verify Apache’s configuration to make sure your virtual host is set appropriately. This will ensure that the certbot client script will be able to detect your domains and reconfigure your web server to use your newly generated SSL certificate automatically.

Step 2 — Checking your Apache Virtual Host Configuration

To automatically obtain and configure SSL for your web server, Certbot needs to find the correct virtual host within your Apache configuration files. Your server domain name(s) will be retrieved from the ServerName and ServerAlias directives defined within your VirtualHost configuration block.

If you followed the virtual host setup step in the Apache installation tutorial, you should have a VirtualHost block set up for your domain at /etc/apache2/sites-available/your_domain.conf with the ServerName and also the ServerAlias directives already set appropriately.

To confirm this is set up, open the virtual host file for your domain using nano or your preferred text editor:

sudo nano /etc/apache2/sites-available/your_domain.conf

Find the existing ServerName and ServerAlias lines. They should be listed as follows:

/etc/apache2/sites-available/your_domain.conf

...
ServerName your_domain
ServerAlias www.your_domain
...

If you already have your ServerName and ServerAlias set up like this, you can exit your text editor and move on to the next step. If your current virtual host configuration doesn’t match the example, update it accordingly. If you’re using nano, you can exit by pressing CTRL+X, then Y and ENTER to confirm your changes, if any. Then, run the following command to validate your changes:

sudo apache2ctl configtest

You should receive Syntax OK as a response. If you get an error, reopen the virtual host file and check for any typos or missing characters. Once your configuration file’s syntax is correct, reload Apache so that the changes take effect:

sudo systemctl reload apache2

With these changes, Certbot will be able to find the correct VirtualHost block and update it.

Next, you’ll update the firewall to allow HTTPS traffic.

Step 3 — Allowing HTTPS Through the Firewall

If you have the UFW firewall enabled, as recommended by the prerequisite guides, you’ll need to adjust the settings to allow HTTPS traffic. Upon installation, Apache registers a few different UFW application profiles. You can leverage the Apache Full profile to allow both HTTP and HTTPS traffic on your server.

To verify what kind of traffic is currently allowed on your server, check the status:

sudo ufw status

If you followed one of our Apache installation guides, you will have output similar to the following, meaning that only HTTP traffic on port 80 is currently allowed:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere             
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

To allow for HTTPS traffic, allow the “Apache Full” profile:

sudo ufw allow 'Apache Full'

Then delete the redundant “Apache” profile:

sudo ufw delete allow 'Apache'

Your status will display as the following:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache Full                ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache Full (v6)           ALLOW       Anywhere (v6)        

You are now ready to run Certbot and obtain your certificates.

Step 4 — Obtaining an SSL Certificate

Certbot provides a variety of ways to obtain SSL certificates through plugins. The Apache plugin will take care of reconfiguring Apache and reloading the configuration whenever necessary. To use this plugin, run the following:

sudo certbot --apache

This script will prompt you to answer a series of questions in order to configure your SSL certificate. First, it will ask you for a valid email address. This email will be used for renewal notifications and security notices:

OutputSaving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): you@your_domain

After providing a valid email address, press ENTER to proceed to the next step. You will then be prompted to confirm if you agree to Let’s Encrypt terms of service. You can confirm by pressing Y and then ENTER:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Next, you’ll be asked if you would like to share your email with the Electronic Frontier Foundation to receive news and other information. If you do not want to subscribe to their content, write N. Otherwise, write Y then press ENTER to proceed to the next step:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: N

The next step will prompt you to inform Certbot of which domains you’d like to activate HTTPS for. The listed domain names are automatically obtained from your Apache virtual host configuration, so it’s important to make sure you have the correct ServerName and ServerAlias settings configured in your virtual host. If you’d like to enable HTTPS for all listed domain names (recommended), you can leave the prompt blank and press ENTER to proceed. Otherwise, select the domains you want to enable HTTPS for by listing each appropriate number, separated by commas and/ or spaces, then press ENTER:

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: your_domain
2: www.your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 

After this step, Certbot’s configuration is finished, and you will be presented with the final remarks about your new certificate and where to locate the generated files:

OutputSuccessfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/your_domain/privkey.pem
This certificate expires on 2022-07-10.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

Deploying certificate
Successfully deployed certificate for your_domain to /etc/apache2/sites-available/your_domain-le-ssl.conf
Successfully deployed certificate for www.your_domain.com to /etc/apache2/sites-available/your_domain-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https:/your_domain and https://www.your_domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Your certificate is now installed and loaded into Apache’s configuration. Try reloading your website using https:// and notice your browser’s security indicator. It should indicate that your site is properly secured, typically by a lock icon in the address bar.

You can use the SSL Labs Server Test to verify your certificate’s grade and obtain detailed information about it, from the perspective of an external service.

In the next and final step, you’ll test the auto-renewal feature of Certbot, which guarantees that your certificate will be renewed automatically before the expiration date.

Step 5 — Verifying Certbot Auto-Renewal

Let’s Encrypt’s certificates are only valid for ninety days. This is to encourage users to automate their certificate renewal process, as well as to ensure that misused certificates or stolen keys will expire sooner rather than later.

The certbot package you installed takes care of renewals by including a renew script to /etc/cron.d, which is managed by a systemctl service called certbot.timer. This script runs twice a day and will automatically renew any certificate that’s within thirty days of expiration.

To check the status of this service and make sure it’s active, run the following:

sudo systemctl status certbot.timer

Your output will be similar to the following:

Output● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset:>
     Active: active (waiting) since Mon 2022-04-11 20:52:46 UTC; 4min 3s ago
    Trigger: Tue 2022-04-12 00:56:55 UTC; 4h 0min left
   Triggers: ● certbot.service

Apr 11 20:52:46 jammy-encrypt systemd[1]: Started Run certbot twice daily.

To test the renewal process, you can do a dry run with certbot:

sudo certbot renew --dry-run
OutputSaving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/your_domain.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account registered.
Simulating renewal of an existing certificate for your_domain and www.your_domain.com

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/your_domain/fullchain.pem (success)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

If you don’t receive any errors, you’re all set. When necessary, Certbot will renew your certificates and reload Apache to pick up the changes. If the automated renewal process ever fails, Let’s Encrypt will send a message to the email you specified, warning you when your certificate is about to expire.

Conclusion

In this tutorial, you installed the Let’s Encrypt client certbot, configured and installed an SSL certificate for your domain, and confirmed that Certbot’s automatic renewal service is active within systemctl. If you have further questions about using Certbot, their documentation is a good place to start.

Source

How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Ubuntu 22.04

Introduction

A “LAMP” stack is a group of open source software that is typically installed together in order to enable a server to host dynamic websites and web apps written in PHP. This term is an acronym which represents the Linux operating system with the Apache web server. The site data is stored in a MySQL database, and dynamic content is processed by PHP.

In this guide, you’ll set up a LAMP stack on an Ubuntu 22.04 server.

Prerequisites

In order to complete this tutorial, you will need to have an Ubuntu 22.04 server with a non-root sudo-enabled user account and a basic firewall. This can be configured using our initial server setup guide for Ubuntu 22.04.

Step 1 — Installing Apache and Updating the Firewall

The Apache web server is among the most popular web servers in the world. It’s well documented, has an active community of users, and has been in wide use for much of the history of the web, which makes it a great choice for hosting a website.

Start by updating the package manager cache. If this is the first time you’re using sudo within this session, you’ll be prompted to provide your user’s password to confirm you have the right privileges to manage system packages with apt:

sudo apt update

Then, install Apache with:

sudo apt install apache2

You’ll be prompted to confirm Apache’s installation. Confirm by pressing Y, then ENTER.

Once the installation is finished, you’ll need to adjust your firewall settings to allow HTTP traffic. Ubuntu’s default firewall configuration tool is called Uncomplicated Firewall (UFW). It has different application profiles that you can leverage. To list all currently available UFW application profiles, execute this command:

sudo ufw app list
OutputAvailable applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Here’s what each of these profiles mean:

  • Apache: This profile opens only port 80 (normal, unencrypted web traffic).
  • Apache Full: This profile opens both port 80 (normal, unencrypted web traffic) and port 443 (TLS/SSL encrypted traffic).
  • Apache Secure: This profile opens only port 443 (TLS/SSL encrypted traffic).

For now, it’s best to allow only connections on port 80, since this is a fresh Apache installation and you don’t yet have a TLS/SSL certificate configured to allow for HTTPS traffic on your server.

To only allow traffic on port 80, use the Apache profile:

sudo ufw allow in "Apache"

Verify the change with:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                                
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                    
Apache (v6)                ALLOW       Anywhere (v6)     

Traffic on port 80 is now allowed through the firewall.

You can do a spot check right away to verify that everything went as planned by visiting your server’s public IP address in your web browser (view the note under the next heading to find out what your public IP address is if you do not have this information already):

http://your_server_ip

The default Ubuntu 22.04 Apache web page is there for informational and testing purposes. Below is an example of the Apache default web page:

Ubuntu 22.04 Apache default web page with an overview of your default configuration settings

If you can view this page, your web server is correctly installed and accessible through your firewall.

How To Find your Server’s Public IP Address

If you do not know what your server’s public IP address is, there are a number of ways to find it. Usually, this is the address you use to connect to your server through SSH.

There are a few different ways to do this from the command line. First, you could use the iproute2 tools to get your IP address by typing this:

ip addr show ens3 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

This will give you two or three lines back. They are all correct addresses, but your computer may only be able to use one of them, so feel free to try each one.

An alternative method is to use the curl utility to contact an outside party to tell you how it sees your server. This is done by asking a specific server what your IP address is:

curl http://icanhazip.com

Whichever method you choose, type in your IP address into your web browser to verify that your server is running.

Step 2 — Installing MySQL

Now that you have a web server up and running, you need to install the database system to be able to store and manage data for your site. MySQL is a popular database management system used within PHP environments.

Again, use apt to acquire and install this software:

sudo apt install mysql-server

When prompted, confirm installation by typing Y, and then ENTER.

When the installation is finished, it’s recommended that you run a security script that comes pre-installed with MySQL. This script will remove some insecure default settings and lock down access to your database system.

Warning: As of July 2022, an error will occur when you run the mysql_secure_installation script without some further configuration. The reason is that this script will attempt to set a password for the installation’s root MySQL account but, by default on Ubuntu installations, this account is not configured to connect using a password.

Prior to July 2022, this script would silently fail after attempting to set the root account password and continue on with the rest of the prompts. However, as of this writing the script will return the following error after you enter and confirm a password:

Output ... Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

New password:

This will lead the script into a recursive loop which you can only get out of by closing your terminal window.

Because the mysql_secure_installation script performs a number of other actions that are useful for keeping your MySQL installation secure, it’s still recommended that you run it before you begin using MySQL to manage your data. To avoid entering this recursive loop, though, you’ll need to first adjust how your root MySQL user authenticates.

First, open up the MySQL prompt:

sudo mysql

Then run the following ALTER USER command to change the root user’s authentication method to one that uses a password. The following example changes the authentication method to mysql_native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

After making this change, exit the MySQL prompt:

exit

Following that, you can run the mysql_secure_installation script without issue.

Start the interactive script by running:

sudo mysql_secure_installation

This will ask if you want to configure the VALIDATE PASSWORD PLUGIN.

Note: Enabling this feature is something of a judgment call. If enabled, passwords which don’t match the specified criteria will be rejected by MySQL with an error. It is safe to leave validation disabled, but you should always use strong, unique passwords for database credentials.

Answer Y for yes, or anything else to continue without enabling.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

If you answer “yes”, you’ll be asked to select a level of password validation. Keep in mind that if you enter 2 for the strongest level, you will receive errors when attempting to set any password which does not contain numbers, upper and lowercase letters, and special characters:

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary              file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Regardless of whether you chose to set up the VALIDATE PASSWORD PLUGIN, your server will next ask you to select and confirm a password for the MySQL root user. This is not to be confused with the system root. The database root user is an administrative user with full privileges over the database system. Even though the default authentication method for the MySQL root user doesn’t involve using a password, even when one is set, you should define a strong password here as an additional safety measure.

If you enabled password validation, you’ll be shown the password strength for the root password you just entered and your server will ask if you want to continue with that password. If you are happy with your current password, enter Y for “yes” at the prompt:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

For the rest of the questions, press Y and hit the ENTER key at each prompt. This will remove some anonymous users and the test database, disable remote root logins, and load these new rules so that MySQL immediately respects the changes you have made.

When you’re finished, test whether you’re able to log in to the MySQL console by typing:

sudo mysql

This will connect to the MySQL server as the administrative database user root, which is inferred by the use of sudo when running this command. Below is an example output:

OutputWelcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

To exit the MySQL console, type:

exit

Notice that you didn’t need to provide a password to connect as the root user, even though you have defined one when running the mysql_secure_installation script. That is because the default authentication method for the administrative MySQL user is unix_socket instead of password. Even though this might seem like a security concern, it makes the database server more secure because the only users allowed to log in as the root MySQL user are the system users with sudo privileges connecting from the console or through an application running with the same privileges. In practical terms, that means you won’t be able to use the administrative database root user to connect from your PHP application. Setting a password for the root MySQL account works as a safeguard, in case the default authentication method is changed from unix_socket to password.

For increased security, it’s best to have dedicated user accounts with less expansive privileges set up for every database, especially if you plan on having multiple databases hosted on your server.

Note: There are some older versions of PHP that doesn’t support caching_sha2_password, the default authentication method for MySQL 8. For that reason, when creating database users for PHP applications on MySQL 8, you may need to configure your application to use the mysql_native_password plug-in instead. This tutorial will demonstrate how to do that in Step 6.

Your MySQL server is now installed and secured. Next, you’ll install PHP, the final component in the LAMP stack.

Step 3 — Installing PHP

You have Apache installed to serve your content and MySQL installed to store and manage your data. PHP is the component of our setup that will process code to display dynamic content to the final user. In addition to the php package, you’ll need php-mysql, a PHP module that allows PHP to communicate with MySQL-based databases. You’ll also need libapache2-mod-php to enable Apache to handle PHP files. Core PHP packages will automatically be installed as dependencies.

To install these packages, run the following command:

sudo apt install php libapache2-mod-php php-mysql

Once the installation is finished, run the following command to confirm your PHP version:

php -v
OutputPHP 8.1.2 (cli) (built: Mar  4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

At this point, your LAMP stack is fully operational, but before testing your setup with a PHP script, it’s best to set up a proper Apache Virtual Host to hold your website’s files and folders.

Step 4 — Creating a Virtual Host for your Website

When using the Apache web server, you can create virtual hosts (similar to server blocks in Nginx) to encapsulate configuration details and host more than one domain from a single server. In this guide, we’ll set up a domain called your_domain, but you should replace this with your own domain name.

Note: In case you are using DigitalOcean as DNS hosting provider, check out our product documentation for detailed instructions on how to set up a new domain name and point it to your server.

Apache on Ubuntu 22.04 has one virtual host enabled by default that is configured to serve documents from the /var/www/html directory. While this works well for a single site, it can become unwieldy if you are hosting multiple sites. Instead of modifying /var/www/html, we’ll create a directory structure within /var/www for the your_domain site, leaving /var/www/html in place as the default directory to be served if a client request doesn’t match any other sites.

Create the directory for your_domain as follows:

sudo mkdir /var/www/your_domain

Next, assign ownership of the directory with the $USER environment variable, which will reference your current system user:

sudo chown -R $USER:$USER /var/www/your_domain

Then, open a new configuration file in Apache’s sites-available directory using your preferred command-line editor. Here, we’ll use nano:

sudo nano /etc/apache2/sites-available/your_domain.conf

This will create a new blank file. Add in the following bare-bones configuration with your own domain name:

/etc/apache2/sites-available/your_domain.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Save and close the file when you’re done. If you’re using nano, do that by pressing CTRL+X, then Y and ENTER.

With this VirtualHost configuration, we’re telling Apache to serve your_domain using /var/www/your_domain as the web root directory. If you’d like to test Apache without a domain name, you can remove or comment out the options ServerName and ServerAlias by adding a pound sign (#) the beginning of each option’s lines.

Now, use a2ensite to enable the new virtual host:

sudo a2ensite your_domain

You might want to disable the default website that comes installed with Apache. This is required if you’re not using a custom domain name, because in this case Apache’s default configuration would override your virtual host. To disable Apache’s default website, type:

sudo a2dissite 000-default

To make sure your configuration file doesn’t contain syntax errors, run the following command:

sudo apache2ctl configtest

Finally, reload Apache so these changes take effect:

sudo systemctl reload apache2

Your new website is now active, but the web root /var/www/your_domain is still empty. Create an index.html file in that location to test that the virtual host works as expected:

nano /var/www/your_domain/index.html

Include the following content in this file:

/var/www/your_domain/index.html

<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

Save and close the file, then go to your browser and access your server’s domain name or IP address:

http://server_domain_or_IP

Your web page should reflect the contents in the file you just edited:

Apache virtual host test landing page that reveals your HTML code to the user

You can leave this file in place as a temporary landing page for your application until you set up an index.php file to replace it. Once you do that, remember to remove or rename the index.html file from your document root, as it would take precedence over an index.php file by default.

A Note About DirectoryIndex on Apache

With the default DirectoryIndex settings on Apache, a file named index.html will always take precedence over an index.php file. This is useful for setting up maintenance pages in PHP applications, by creating a temporary index.html file containing an informative message to visitors. Because this page will take precedence over the index.php page, it will then become the landing page for the application. Once maintenance is over, the index.html is renamed or removed from the document root, bringing back the regular application page.

In case you want to change this behavior, you’ll need to edit the /etc/apache2/mods-enabled/dir.conf file and modify the order in which the index.php file is listed within the DirectoryIndex directive:

sudo nano /etc/apache2/mods-enabled/dir.conf

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

After saving and closing the file, you’ll need to reload Apache so the changes take effect:

sudo systemctl reload apache2

In the next step, we’ll create a PHP script to test that PHP is correctly installed and configured on your server.

Step 5 — Testing PHP Processing on your Web Server

Now that you have a custom location to host your website’s files and folders, create a PHP test script to confirm that Apache is able to handle and process requests for PHP files.

Create a new file named info.php inside your custom web root folder:

nano /var/www/your_domain/info.php

This will open a blank file. Add the following text, which is valid PHP code, inside the file:

/var/www/your_domain/info.php

<?php
phpinfo();

When you are finished, save and close the file.

To test this script, go to your web browser and access your server’s domain name or IP address, followed by the script name, which in this case is info.php:

http://server_domain_or_IP/info.php

Here is an example of the default PHP web page:

Ubuntu 22.04 PHP web page revealing pertinent information about the current PHP version and settings

This page provides information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If you see this page in your browser, then your PHP installation is working as expected.

After checking the relevant information about your PHP server through that page, it’s best to remove the file you created as it contains sensitive information about your PHP environment and your Ubuntu server. Use rm to do so:

sudo rm /var/www/your_domain/info.php

You can always recreate this page if you need to access the information again later.

Step 6 — Testing Database Connection from PHP (Optional)

If you want to test whether PHP is able to connect to MySQL and execute database queries, you can create a test table with test data and query for its contents from a PHP script. Before you do that, you need to create a test database and a new MySQL user properly configured to access it.

Create a database named example_database and a user named example_user. You can replace these names with different values.

First, connect to the MySQL console using the root account:

sudo mysql

To create a new database, run the following command from your MySQL console:

CREATE DATABASE example_database;

Now create a new user and grant them full privileges on the custom database you’ve just created.

The following command creates a new user named example_user that authenticates with the caching_sha2_password method. We’re defining this user’s password as password, but you should replace this value with a secure password of your own choosing.

CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';

Note: The previous ALTER USER statement sets the root MySQL user to authenticate with the caching_sha2_password plugin. Per the official MySQL documentationcaching_sha2_password is MySQL’s preferred authentication plugin, as it provides more secure password encryption than the older, but still widely used, mysql_native_password.

However, some versions of PHP don’t work reliably with caching_sha2_passwordPHP has reported that this issue was fixed as of PHP 7.4, but if you encounter an error when trying to log in to phpMyAdmin later on, you may want to set root to authenticate with mysql_native_password instead:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Now give this user permission over the example_database database:

GRANT ALL ON example_database.* TO 'example_user'@'%';

This will give the example_user user full privileges over the example_database database, while preventing this user from creating or modifying other databases on your server.

Now exit the MySQL shell with:

exit

Test if the new user has the proper permissions by logging in to the MySQL console again, this time using the custom user credentials:

mysql -u example_user -p

Notice the -p flag in this command, which will prompt you for the password used when creating the example_user user. After logging in to the MySQL console, confirm that you have access to the example_database database:

SHOW DATABASES;

This will give you the following output:

Output+--------------------+
| Database           |
+--------------------+
| example_database   |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

Next, create a test table named todo_list. From the MySQL console, run the following statement:

CREATE TABLE example_database.todo_list (
	item_id INT AUTO_INCREMENT,
	content VARCHAR(255),
	PRIMARY KEY(item_id)
);

Insert a few rows of content in the test table. Repeat the next command a few times, using different values, to populate your test table:

INSERT INTO example_database.todo_list (content) VALUES ("My first important item");

To confirm that the data was successfully saved to your table, run:

SELECT * FROM example_database.todo_list;

The following is the output:

Output+---------+--------------------------+
| item_id | content                  |
+---------+--------------------------+
|       1 | My first important item  |
|       2 | My second important item |
|       3 | My third important item  |
|       4 | and this one more thing  |
+---------+--------------------------+
4 rows in set (0.000 sec)

After confirming that you have valid data in your test table, exit the MySQL console:

exit

Now you can create the PHP script that will connect to MySQL and query for your content. Create a new PHP file in your custom web root directory using your preferred editor:

nano /var/www/your_domain/todo_list.php

The following PHP script connects to the MySQL database and queries for the content of the todo_list table, exhibiting the results in a list. If there’s a problem with the database connection, it will throw an exception.

Add this content into your todo_list.php script, remembering to replace the example_user and password with your own:

/var/www/your_domain/todo_list.php

<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

Save and close the file when you’re done editing.

You can now access this page in your web browser by visiting the domain name or public IP address configured for your website, followed by /todo_list.php:

http://your_domain_or_IP/todo_list.php

This web page should reveal the content you’ve inserted in your test table to your visitor:

Example PHP todo list web page in the browser

That means your PHP environment is ready to connect and interact with your MySQL server.

Conclusion

In this guide, you’ve built a flexible foundation for serving PHP websites and applications to your visitors, using Apache as a web server and MySQL as a database system.

As an immediate next step, you should ensure that connections to your web server are secured, by serving them via HTTPS. In order to accomplish that, you can use Let’s Encrypt to secure your site with a free TLS/SSL certificate.

Source

Setup Passwordless Login to Servers via SSH – Linux Hint

As a Linux system administrator, you will be configuring and tweaking a lot of Linux servers frequently. So, you have to SSH into all these servers, in order to SSH into these servers, you will also need the login passwords for each of the servers, which is very unlikely to be the same. So, things will get difficult as the number of servers you have to administer grows.

Luckily, there is a better solution. You can tell all the servers that you administer to trust the computer or laptop that you’re using to connect and configure them. This way, you can log into these servers without any password or with the same password. In this method, you only need to know the login password of these servers only once. Then, you can forget about it as long as you’re using the same computer or laptop to connect to these servers.

In this article, I am going to show you how to setup passwordless login to servers via SSH. So, let’s get started.

Here, I have 3 servers on my local network linuxhint-server1, linuxhint-server2, linuxhint-server3. I as a Linux system administrator, am using a laptop linuxhint-client which is also on the same network. So, I want to configure all the servers in a way that I can access to all these servers from my laptop linuxhint-client without any password. So, let’s see how this will be configured in next sections.

Generating SSH Keys on the Client:

The key idea here is that you generate an SSH key on your computer or laptop from which you want to access all the servers. Then, upload the SSH key to the servers from your computer or laptop.

To generate an SSH key on the computer or laptop from which you want to connect to the servers, run the following command:

Now, press <Enter> to continue.

Now, you can set a password for your SSH key. It is optional. Whether you set up a password for your SSH key or not depends on how you want to configure access to the servers. If you don’t set a password for the SSH key here, you won’t need any password to SSH into the servers. If you do set a password here, you will need to enter the same password every time you connect to any of the servers. So, It’s up to you. I will not set a password for the SSH key in this article.

If you do want to set up a password, just type in the password and press <Enter>. Otherwise, leave it blank and press <Enter>.

If you’ve set a password earlier, just type in the same password again and press <Enter>. Otherwise, just press <Enter> without typing in anything.

The SSH key should be generated.

By default, the ssh-keygen generates a RSA key of length 2048 bits. But, if you want to change the key type and length, you can use the -t and -b options of ssh-keygen as follows:

$ ssh-keygen -t key_type -b bit_length

Currently, the supported key_type is rsa, dsa, ecdsa, and ed25519 and the bit_length can be 2048, 4096 and so on.

Uploading SSH Key to the Servers:

Now, you have to upload the SSH key you just generated on your computer or laptop to the servers. For that, you have to have SSH server software (openssh-server) installed on each of the servers and must be able to login to the servers via SSH.

To login to linuxhint-server1 via SSH, you need the IP address of the linuxhint-server1 server. To do that, run the following command on the linuxhint-server1 server.

As you can see, the IP address of linuxhint-server1 is 192.168.21.203.

Now, from the linuxhint-client, upload the SSH key to the linuxhint-server1 as follows:

$ ssh-copy-id shovon@192.168.21.203

Now, type in yes and press <Enter>.

Now, type in the login password of the linuxhint-server1 server and press <Enter>.

The SSH key should be uploaded to the server linuxhint-server1.

The same way, upload the SSH key to the linuxhint-server2 as well.

$ ssh-copy-id shovon@192.168.21.133

Upload the SSH key to the linuxhint-server3 as well.

$ ssh-copy-id shovon@192.168.21.201

SSH into Servers without Password:

Now, you should be able to access all the servers via SSH without any password.

Let’s try to access the server linuxhint-server1:

$ ssh shovon@192.168.21.203

As you can see, it didn’t prompt me for a password. Instead, I was logged in directly to the console of linuxhint-server1.

I can also log in to the linuxhint-server2 server without any password as you can see in the screenshot below.

$ ssh shovon@192.168.21.133

As you can see, I can also SSH into the linuxhint-server3 server as well. Great!

So, that’s how you configure passwordless login to Linux servers via SSH. Thanks for reading this article.

Source

35 Best KDE Software for Linux Desktop Users in 2023.

KDE is a global community that develops free, open-source, software. They have created more than 200 nifty little apps that run on any Linux desktop and other platforms as well. KDE desktop environments such as Plasma are renowned for their adaptability and ability to be customized to the tastes of the user.

Here, we’ve outsourced a complete list of the most practical KDE applications that will make great additions to your software library. You can be sure that this list has something for everyone because it includes everything from simple paint software to a robust movie editor.

Contents:

1. Dolphin (File Manager)

2. Kdenlive (Video Editor)

3. Okular (Document Viewer)

4. KDE Connect (Device Integration)

5. Konsole (Terminal Emulator)

6. Kate (Text Editor)

7. Spectacle (Screenshot Tool)

8. Gwenview (Image Viewer)

9. Ark (Archive Manager)

10. KCalc (Calculator)

11. KFind (File Search Tool)

12. Discover (Software Center)

13. Filelight (Disk Space Visualizer)

14. Krita (Digital Painting)

15. KHelpCenter (Documentation and Help)

16. KColorChooser (Color Picker)

17. KGpg (PGP Key Manager)

18. Kasts (Podcast Client)

19. Alligator (RSS Feed Reader)

20. Krfb (Remote Desktop Sharing)

21. Pikasso (Image Viewer and Organizer)

22. PlasmaTube (YouTube Client)

23. Khipu (Diagram Drawing Tool)

24. Kirogi (Drone Remote Control)

25. Vakzination (Health Tool)

26. Nota (Text Editor)

27. KDE Partition Manager

28. KSystemLog (System Log Viewer)

29. Yakuake (Drop-Down Terminal Emulator)

30. Skanlite (Scanning Application)

31. KolourPaint (Painting Application)

32. KMouseTool (Mouse Automation Tool)

33. Kompare (Text File Comparison)

34. KTorrent (BitTorrent Client)

35. KTimer (Timer Application)

Conclusion

1. Dolphin (File Manager)

You can view and traverse the contents of your hard disks, USB sticks, SD cards, and other storage devices using Dolphin, which is KDE’s file manager. Creating, sharing, and deleting files and folders with Dolphin is simple and quick.

Its right-click menu offers a variety of rapid operations, including the ability to replicate, share, and compress files. Besides that, this file manager shows documents and folders from a variety of Internet cloud services and other distant computers as though they were on your desktop.

With strong plugins, you can enhance Dolphin’s functionality even further and customize it to fit your workflow. The git integration plugin can be used to interact with git repositories. In addition, you can use the NextCloud plugin to synchronize your files online.

Additionally, Dolphin accumulates low storage on your KDE desktop and comes with an integrated terminal that lets you execute commands on the currently open folder.

Dolphin - KDE File Manager
Dolphin – KDE File Manager

2. Kdenlive (Video Editor)

Want a free, high-quality video editor that works with all Linux distributions? Check out Kdenlive, a non-linear video editor software that accepts a variety of audio and video formats, enables the addition of effects and transitions, and renders the finished product in the format of your choice.

This app comes preinstalled on KDE, and it is the ideal video editing solution for your upcoming project thanks to features like multitrack video editing, audio and video effects and transitions, and a customizable UI.

There are a couple of online tutorials available if you’re interested in learning how to get the most out of Kdenlive. A list of textual and video lessons covering everything from fundamental editing to intricate methods can be found on the official Kdenlive website.

Kdenlive - Video Editing Freedom
Kdenlive – Video Editing Freedom

3. Okular (Document Viewer)

Okular, which bills itself as “The Universal Document Viewer” steps up to the plate by providing a quick, cross-platform document viewer for Windows, Linux, macOS, and other platforms.

Besides that, Okular incorporates built-in support for a variety of document formats, including PDF, EPUB, DjVu, MD, JPEG, PNG, GIF, TIFF, and WebP. You can rest assured that it can open any document type you encounter.

Okular - Document Viewer
Okular – Document Viewer

4. KDE Connect (Device Integration)

For connecting your computer and smartphone, KDE Connect comes with a number of functions. First, it lets you pair the KDE Linux distro with your smartphone, and with that connection, you can use it to check notifications, send remote input, control media playing, share files, and do many other things with it.

All supported operating systems include Linux (for mobile), Android, FreeBSD, Windows, and macOS.

KDE Connect – Enable Communication Between Devices
KDE Connect – Enable Communication Between Devices

5. Konsole (Terminal Emulator)

Konsole is a terminal used to run a command shell that offers cutting-edge features like split views, tabs, multiple profiles, bookmark support, activity monitoring, and more.

Konsole is more accessible and practical because it is incorporated into so many other KDE programs. For instance, applications such as DolphinKDevelop, and Kate all use Konsole as an integrated terminal emulator.

Konsole - KDE Terminal Emulator
Konsole – KDE Terminal Emulator

6. Kate (Text Editor)

Kate is a free, open-source, multi-view text editor and multi-document renowned for its advanced capabilities and user-friendly interface. You can browse and modify all of your text files more easily with Kate thanks to its rich features.

Kate packs the following features out of the box: customizable shortcuts, shell integration, code and text folding, spell checking, scriptable using JavaScript, encoding conversion, and more.

Additionally, Kate supported over 300 languages, making it simpler to comprehend code in practically all programming languages.

Kate - Text Editor
Kate – Text Editor

7. Spectacle (Screenshot Tool)

For taking screenshots of your desktop, Spectacle comes in handy. With this app, you can take screenshots in the following areas: a desktop, one monitor, the active window, the window controlled by the mouse, or a rectangle area of the screen.

The images can then be printed, shared with other programs for editing, or instantly stored without modification.

Spectacle - Screenshot Capture Utility
Spectacle – Screenshot Capture Utility

8. Gwenview (Image Viewer)

KDE’s Gwenview is a quick and simple image viewer that is great for exploring and showcasing an assortment of pictures. It supports a variety of image formats and is excellent for browsing and presenting collections of photographs.

Basic image editing tools like rotate, crop, resize, mirror, flip, minimize red eye, and change brightness, contrast, or gamma are also available in Gwenview. Besides that, it does dual duty as an embedded viewer and standalone program in the Konqueror web browser.

Gwenview - Image Viewer
Gwenview – Image Viewer

9. Ark (Archive Manager)

The KDE community developed Ark, which is a free open-source file compression and decompression program that supports a variety of file types, including rar, tar, gzip, bzip2, and more.

With Ark, users can browse, extract, make, and modify archives, and even without extracting files, read the contents of the file.

Ark - File Archiver
Ark – File Archiver

10. KCalc (Calculator)

KCalc is a scientific calculator that has all the features you would anticipate from a scientific calculator, KCalc includes trigonometric functions, logic operations, and statistical computations.

The recall of past calculation results is made simple via a results stack. User-defined precision is available, and numbers can be cut and pasted on the display.

The display’s typeface and colors can be changed, which improves usability. It is simple to use KCalc without a pointing device because of key bindings.

KCalc - Scientific Calculator
KCalc – Scientific Calculator

11. KFind (File Search Tool)

KFind is an open-source file search tool that can be opened from your menu section, KRunner, or as a separate search engine.

Additionally, it has been incorporated into Dolphin and Konqueror as a Find File in the Tools menu. Files can be found using the KFind search engine by name, type, or content.

KFind - File Search Utility By KDE
KFind – File Search Utility By KDEKFind

12. Discover (Software Center)

You can install applications such as games and tools with the aid of Discover. You can search apps, browse by category, view screenshots, and read reviews using Discover.

The software repository for your operating system, Flatpak reposthe Snap store, or even AppImages from shop.kde.org may all be managed with Discover.

Discover also gives you the ability to find, install, and manage add-ons for Plasma and all of your favorite KDE applications.

Discover - Plasma Resources Management GUI
Discover – Plasma Resources Management GUI

13. Filelight (Disk Space Visualizer)

freestar

Filelight is a disk-use visualization tool that shows files and folders on your computer from an intuitive perspective of concentric circles.

To examine extensive information about files and directories, Filelight can scan local, remote, or removable disks. You can also eliminate files or folders that are eating up too much space.

DolphinKonqueror, and Krusader file managers are integrated with Filelight, which includes customizable color schemes.

Filelight - Quickly Visualize Disk Space Usage
Filelight – Quickly Visualize Disk Space Usage

14. Krita (Digital Painting)

Krita is a free and open-source program that is used for sketching and painting. It gives a complete method for masters to create digital painting files from scratch.

Krita is a fantastic option for producing matte paintings, comics, rendering textures, and concept art. Numerous color palettes, including RGB and CMYK, are all supported by Krita at 8 and 16 bits for integer channels. 16 and 32 bits for floating point channels.

Enjoy painting with Krita’s cutting-edge brush engines, incredible filters, and a plethora of useful tools.

Krita - Digital Painting
Krita – Digital Painting

15. KHelpCenter (Documentation and Help)

As the name implies, KHelpCenter is an app that offers a single point of access to all of your KDE applications’ and system utilities’ documentation.

It can be launched from the command line, the program launcher, or the help menu of an application. KHelpCenter shows documentation from a variety of sources, such as man pages, KDE community apps, and more.

KHelpCenter - Software Documentation Viewer
KHelpCenter – Software Documentation Viewer

16. KColorChooser (Color Picker)

freestar

KColorChooser is an amazing tool for creating custom color palettes and color blending schemes. It can obtain the color of any pixel on the screen using the dropper function.

There are several popular color schemes present, including the oxygen color scheme and the typical Web colors. KColorChooser can be downloaded on KDE using Discover and other AppStream application stores.

KColorChooser - A Small Utility to Select Color
KColorChooser – A Small Utility to Select Color

17. KGpg (PGP Key Manager)

GnuPG keys can be managed using the free and open-source encryption program KGpg. KGpg offers a graphical interface to create, manage, import, and export GnuPG keys. You can also use it to encrypt, decode, sign, and validate communications and files.

The steps below describe how to use KGpg to produce a new GnuPG keypair:

  • From the main menu, open KGpg by choosing Applications > Utilities > KGpg.
  • The application will walk you through the process of generating your own GnuPG keypair if you have never used KGpg before.
  • When prompted to create a new key pair, the dialog box that displays asks for your name, email address, and an optional comment.
  • Select your key’s algorithms, key strength (number of bits), and expiration time.
  • In the following dialog box, enter your passphrase.
  • Within the main KGpg window, your key will show up. Look in the ID column next to the freshly produced key to find your GnuPG key ID.
KGpg - Simple Interface for GnuPG
KGpg – Simple Interface for GnuPG

18. Kasts (Podcast Client)

If you’re looking for a podcast application for your KDE Plasma desktop, Kasts comes in handy. Kasts provides an intuitive user interface (UI) and has a number of features, including variable playback speed, full system integration, episode management through play queue, and search for podcasts.

You can subscribe to podcasts using its subscription feature. Additionally, Kasts offers you the chance to make a playlist for continuous playback of your preferred podcasts.

Kasts - Kirigami-Based Podcast Player
Kasts – Kirigami-Based Podcast Player

19. Alligator (RSS Feed Reader)

For Linux desktops, there are various feed reader applications that are mostly GTK-based. Introducing Alligator, a Qt-based feed reader for desktops running KDE Plasma.

It has the simplest user interface and offers capabilities like browsing and subscribing to feeds, as well as several ways to view them.

Alligator - Kirigami-Based RSS Reader
Alligator – Kirigami-Based RSS Reader

20. Krfb (Remote Desktop Sharing)

The KDE desktop application Krfb acts as a Virtual Network Computing (VNC) server, enabling other users to log in and view your screen via VNC clients.

This app has a wide range of settings, including an IP address and a connection to the system that requires a password. You may also set up the VNC service to broadcast to the LAN. For simple remote training connections and system assistance, Krfb is the ideal client.

Krfb - Desktop Sharing
Krfb – Desktop Sharing

21. Pikasso (Image Viewer and Organizer)

Pikasso is an open-source simple drawing program that Is written using Rust and Lyon programming languages. This tool provides you with a blank canvas on which to sketch using mouse or touch motion.

Additionally, the fundamental colors and forms (circles, rectangles, and lines) are included. It’s a great program for kids and is ideal for learning the basics of drawing.

Pikasso - Drawing Programs Using Kirigami
Pikasso – Drawing Programs Using Kirigami

22. PlasmaTube (YouTube Client)

PlasmaTube is a desktop client for YouTube built with QtMultimedia and youtube-dl. With this application, you can watch videos and explore YouTube on your desktop.

It has extra features, including text searching and playlist subscriptions. When utilizing PlasmaTube, you can access the standard YouTube features like the view count, description, and playback control.

PlasmaTube - YouTube Video Player
PlasmaTube – YouTube Video Player

23. Khipu (Diagram Drawing Tool)

A graph plotter on your desktop is an essential app if you’re a student or a teacher. Khipu is a sophisticated mathematical function plotter application that supports the following functionalities, 2D and 3D planes, dictionaries, and other features.

Additionally, Khipu’s backend uses the Analitza library to perform its functions.

Khipu - Advanced Mathematical Function Plotter
Khipu – Advanced Mathematical Function Plotter

24. Kirogi (Drone Remote Control)

Kirogi is an open-source program that facilitates touch-based navigation and drone flight controls.

Additionally, you can control drones utilizing Kirogi’s functions, such as flips and turns. It also supports joysticks and gamepads, live video feeds, customizing speed and altitude, and other features.

Kirogi - Ground Control Application for Drones
Kirogi – Ground Control Application for Drones

25. Vakzination (Health Tool)

Vakzination is an app that lets you manage all of your health certifications. With Vakzination, you can import any certificates that are based on PDF or QR codes. The certificates are then organized for you.

However, even though this application is designed for mobile phones, you can still install it on your KDE desktop using Flatpak.

Vakzination
Vakzination

26. Nota (Text Editor)

Nota is a simple text editor with many features that you can use. The Nota text editor’s key benefit is its responsive layout, which also works with Plasma Mobile.

Additionally, it has several tabs, a built-in dark mode, and syntax highlighting. Besides that, you can see a thumbnail view of the working text files during your session on its special overview page.

Nota - Multi-Platform Text Editor
Nota – Multi-Platform Text Editor

27. KDE Partition Manager

You can manage the drives, partitions, and file systems on your computer with the use of the KDE Partition Manager. You can also, quickly and without data loss, create, copy, transfer, remove, backup, restore, and resize files.

Numerous file systems, such as XFS, ext2/3/4, btrfs, reiserfs, NTFS, FAT16/32, and JFS, are all supported by KDE Partition Manager.

KDE Partition Manager
KDE Partition Manager

28. KSystemLog (System Log Viewer)

You can view and examine system logs on your computer using KSystemLog, a system log reader. To view log files, including kernel logs, system logs, daemon logs, and general journal logs, a graphical interface is provided.

KSystemLog has the ability to sift and filter log lines, as well as provide the admin with real-time alarm messages by email, text, and Slack. KSystemLog can be launched from the main menu. It attempts to open the /var/log/syslog file, which is the most practical log, by default.

You can choose other log files from the File menu or use the Open Log File button on the toolbar if you want to view other log files.

KSystemLog
KSystemLog

29. Yakuake (Drop-Down Terminal Emulator)

Yakuake is an open-source terminal emulator based on KDE Konsole technology that offers a tabbed interface, adjustable dimensions, animation speed, and a powerful D-Bus interface.

By navigating to Applications > System > Yakuake from the main menu, you can launch the app.

Yakuake
Yakuake

30. Skanlite (Scanning Application)

Skanlite is an image-scanning application included in the KDE Applications collection. It is designed to scan with flatbed scanners and, when used with supported scanners, can capture not only images and documents but also clear slides and film strips.

For the final scan, Skanlite offers a preview with a selection feature, and it can store photographs right away in a designated folder with automatically generated names and formats.

Skanlite - Image Scanning Application
Skanlite – Image Scanning Application

31. KolourPaint (Painting Application)

KolourPaint is a free, open-source painting program. It is similar to Microsoft Paint but with several extra capabilities, including rotation, color harmony, and support for transparency.

freestar

For sketching different forms, such as lines, rectangles, rounded rectangles, ovals, and polygons, KolourPaint offers a number of tools to choose from. Additionally, it allows text, lines, curves, selects, rotation, monochromatic, and other sophisticated effects.

KolourPaint
KolourPaint

32. KMouseTool (Mouse Automation Tool)

KMouseTool is an open-source app that belongs to the KDE application suite. The app helps people who suffer from repetitive strain injuries and find it painful to touch buttons.

Every time the mouse cursor pauses for a split second, KMouseTool clicks the mouse. The amount of time that KMouseTool waits before clicking or dragging can be changed.

It’s recommended to get familiar with KMouseTool’s default settings before clicking. Particularly at first, you might want to keep Smart Drag deactivated. Once you feel confident clicking, practice using Smart Drag.

KMouseTool - Program That Clicks the Mouse
KMouseTool – Program That Clicks the Mouse

33. Kompare (Text File Comparison)

Kompare is a GUI front-end tool that makes it possible to view and merge discrepancies between source files. It can be used to compare changes to files or folder contents, and it supports a variety of diff formats and offers a wide range of settings to personalize the information level shown.

Kompare - Graphical File Differences Tool
Kompare – Graphical File Differences Tool

34. KTorrent (BitTorrent Client)

KDE’s KTorrent is a BitTorrent program that enables you to download files by means of the BitTorrent protocol. It has extensive capabilities, including connection through a proxy, system tray integration, queuing of torrents, and global and per-torrent speed limits.

Besides that, this app has built-in functionalities such as support for webseeds, support for torrents and private trackers, support for µTorrent’s peer exchange, and more.

KTorrent
KTorrent

35. KTimer (Timer Application)

The KDE Applications collection includes the timer program KTimer. With this app, you can customize the text, color, and sound settings. In addition, you can enter multiple tasks and set a timer for each of them. It is possible to start, stop, modify, or loop the timers for each activity.

KTimer
KTimer
Conclusion

That said, there is an app for everyone and anything, thanks to the KDE community. Need a program to create digital graphics? You have Krita. Install Kast if you need a podcast program.

The availability of such a sizable selection of free software makes the switch to KDE for newcomers much simpler.

Source

5 Tools to Create a Bootable USB with Multiple Operating Systems.

USB creator tools are essential when it comes to experiencing varying distributions in a live system without the stress of burning an image onto a compact disc.

There are a number of different tools that can be used to create a bootable USB drive with multiple operating systems. In this article, we will discuss four of the most popular tools:

Contents:

1. YUMI – Multiboot USB Creator

2. SARDU MultiBoot Creator

3. Ventoy – Bootable USB Solution

4. Popsicle – Multiple USB File Flasher

5. Rufus – Create Bootable USB Drives

Conclusion

1. YUMI – Multiboot USB Creator

YUMI (Your Universal Multiboot Installer) is a versatile tool designed to craft multiboot USB drives. It efficiently combines multiple ISO files into a single bootable flash drive.

With YUMI, users can effortlessly launch a variety of live Linux OS, Windows installers, antivirus tools, backup solutions, penetration testing utilities, diagnostics, and more.

YUMI is that tool that will enable to write more than a few Linux images onto a single USB drive and it’s especially useful for folks looking to try out multiple Linux distros without having them installed on an actual PC – the only limit to the use of the tool is the size of your thumb drive.

Features:

  • Supports a wide range of distributions, including Windows, Linux, and various utilities.
  • User-friendly interface that guides users through the process.
  • Uses syslinux for booting Linux distributions and NTFS for Windows.
YUMI - Multiboot USB Creator
YUMI – Multiboot USB Creator

2. SARDU MultiBoot Creator

SARDU MultiBoot Creator is a free and open-source software application that can be used to create bootable USB drives and DVDs with multiple operating systems, antivirus tools, utility programs, and other ISO images.

It is a powerful and versatile tool that can be used for a variety of purposes, including:

  • Installing multiple operating systems on a single computer.
  • Troubleshooting computer problems.
  • Creating a recovery disk.
  • Testing different operating systems.
  • Demonstrating new software to clients.

It is easy to use and supports a wide range of operating systems, including Windows, Linux, macOS, and FreeBSD. It also supports a variety of bootable file formats, including ISO, IMG, BIN, and VHD.

SARDU MultiBoot Creator
SARDU MultiBoot Creator

3. Ventoy – Bootable USB Solution

Ventoy is an open-source tool that revolutionizes the creation of multiboot USB drives. Unlike traditional methods that require formatting and partitioning for each ISO file, Ventoy allows users to directly copy multiple ISO files onto a USB drive.

Once the drive is set up, adding or removing an OS is as simple as dragging and dropping the ISO file. Its user-friendly approach eliminates complex steps, making it a favorite for tech enthusiasts and professionals alike.

Supporting both legacy BIOS and UEFI boot modes, that ensures compatibility across a wide range of systems, making multiboot tasks more efficient and straightforward.

Ventoy Bootable USB Creator
Ventoy Bootable USB Creator

4. Popsicle – Multiple USB File Flasher

Popsicle is an open-source dynamic Linux utility designed for writing image files to multiple USB devices simultaneously by ensuring consistency and efficiency.

Whether you’re setting up a batch of bootable drives or distributing software across several devices, Popsicle makes the task seamless with its intuitive interface that provides clear progress indicators for each device, reducing the margin for error.

As a testament to its adaptability, it supports a variety of image formats, including ISO and IMG. For users seeking a reliable and efficient multi-device flashing solution, Popsicle stands out as a top choice.

Popsicle - Multiple USB File Flasher
Popsicle – Multiple USB File Flasher

5. Rufus – Create Bootable USB Drives

Rufus is a renowned utility that facilitates the creation of bootable USB drives, especially for Windows environments. While primarily known for single-boot drive creation, advanced users have leveraged Rufus to craft multiboot USBs, housing multiple operating systems and tools.

Its lightweight nature, combined with a user-friendly interface, makes Rufus a preferred choice for many when it comes to preparing USBs for OS installations, system rescues, or diagnostic tools.

The software’s efficiency in handling various image formats, including ISO and IMG, and its compatibility with both UEFI and BIOS systems, underscores its versatility and prowess in the realm of bootable media creation.

Rufus - Create Bootable USB Drives
Rufus – Create Bootable USB Drives
Conclusion

Creating a bootable USB with multiple operating systems is an invaluable resource for troubleshooting, testing, and even regular use. Whether you’re trying out different Linux distributions, setting up a recovery toolset, or installing various Windows versions, these tools make the process hassle-free.

Choose the one that fits your needs and expertise, and equip yourself with a powerful multiboot USB toolkit.

Source

5 Best GUI-Enabled USB Image Writer Tools on Linux.

USB writer tools are essential softwares that enable you to write Linux ISO images onto USB drives, so you may run a live system or install an operating system onto a PC or multiple systems.

These tools are usually minimalistic and there are more than a few of them out there; however, I’ve chosen those which I feel are the best in both user experience and functionality for this list.

1. Gnome Multi-Writer

The Gnome Multi-Writer USB tool from the GNOME project is quite the multitasker as it can write a single image (ISO or IMG) to multiple drives subsequently.

The little program functions best with desktop environments using GNOME as its base and these include UnityCinnamon, and Mate – just to name a few.

Gnome MultiWriter
Gnome MultiWriter

The supported USB sizes range from 1GB to 32GB and you can always find the program in the standard Linux repository should you develop a liking for it.

$ sudo apt install gnome-multi-writer [On Debian, Ubuntu and Mint]

$ sudo yum install gnome-multi-writer [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]

$ sudo emerge -a sys-apps/gnome-multi-writer [On Gentoo Linux]

$ sudo apk add gnome-multi-writer [On Alpine Linux]

$ sudo pacman -S gnome-multi-writer [On Arch Linux]

$ sudo zypper install gnome-multi-writer [On OpenSUSE]

2. Etcher – USB and SD Card Writer

Etcher is a relatively new cross-platform and open-source image-burning tool by Balena that was developed using JSHTMLnode.js, and GitHub’s Electron framework. It supports writing both IMG and ISO images to SD and USB cards.

The application is primarily used for creating bootable USB drives or SD cards with its user-friendly interface that simplifies the process, making it accessible even for those with limited technical expertise.

Etcher Bootable USB Creator
Etcher Bootable USB Creator

You can head on to Etcher’s website to make a download, for Linux or other platforms. You can run the application from the terminal in Linux by going to the directory in which you downloaded it and executing the command below from the terminal.

$ sudo chmod +x Etcher-linux-x64.AppImage

$ sudo ./Etcher-linux-x64.AppImage

3. Unetbootin – Create Bootable Live USB Image

Unetbootin has been around longer than GNOME Multiwriter and Etcher; it’s a widely used and acclaimed bootable live USB creator on Linux that is also cross-platform with support for a wide variety of ISO images including Windows and macOS.

The application is open source and also has the ability to download images directly from their source to write directly on your USB drive.

UNetbootin
UNetbootin

To install UNetbootin from the Ubuntu PPA, run the commands:

$ sudo add-apt-repository ppa:gezakovacs/ppa

$ sudo apt-get update

$ sudo apt-get install unetbootin

Unetbootin is also available as a binary package for other Linux distributions that you need to download and run it from the desktop or terminal.

4. ISO Image Writer

ISO Image Writer is a KDE-based tool that is specifically designed for writing ISO files to USB drives. As part of the KDE suite of applications, it integrates seamlessly with the KDE Plasma desktop environment.

The software aims to provide a straightforward and user-friendly interface, making the process of creating bootable USB drives hassle-free.

KDE ISO Image Writer
KDE ISO Image Writer

To install ISO Image Writer, just download the AppImage file, set the executable permission, and run it as shown.

$ chmod +x KDE-ISO-Image-Writer-1.0.0-x86_64.AppImage

$ ./KDE-ISO-Image-Writer-1.0.0-x86_64.AppImage

Alternatively, it is also available to install from flatpak and snap as shown.

$ flatpak install flathub org.kde.isoimagewriter

$ flatpak run org.kde.isoimagewriter

OR

$ sudo snap install isoimagewriter

5. Popsicle

Popsicle is a versatile tool designed for Linux systems that allows users to flash multiple USB devices simultaneously. Ideal for situations where mass duplication of data across several USB drives is required, Popsicle streamlines the process, ensuring efficiency and consistency.

With its user-friendly interface, users can easily select an image file, such as .iso or .img, and then choose the target USB drives. Once initiated, Popsicle takes care of the flashing process, providing real-time progress updates for each device. Whether you’re setting up multiple bootable drives for a workshop, class, or event, Popsicle offers a reliable solution to get the job done swiftly.

Popsicle - Multiple USB File Flasher
Popsicle – Multiple USB File Flasher
Conclusion

I haven’t had the chance to try a whole lot of USB tools in the past. However, I’d love to hear your thoughts on those I’ve selected on this list or any others you may have in mind in the comments below.

Source

WP2Social Auto Publish Powered By : XYZScripts.com