How to set permissions to files and folders in Linux terminal

There are there types of file permissions in Linux:

1. Owner permissions
2. Group permissions
3. Other permissions

Also you can set permissions for read, write and execute file for this three groups.

To set correct permissions for all files and folders in currend folder use command:

find . -type f -print0 | xargs -0 chmod 644
find . -type d -print0 | xargs -0 chmod 750

This commands will grant readm write, execute access for owner, read access for group and block all access for other users.

If you wand to grant access to files and folders for other users use commands:

find . -type f -print0 | xargs -0 chmod 665
find . -type d -print0 | xargs -0 chmod 751

Encrypt and decrypt files using GPG

To install GPG on your Debian/Ubuntu/Mint Linux operating system use command:

sudo apt-get install gpg

Default GPG folder is: /home/user/.gnupg. Generate private and public keys:

gpg --full-gen-key

Answer the several questions (encryption type: RSA, keysize: 4096 for better encryption, key expiration time, your name and email address) and press “O” if all changes are correct.

To view public keys use command:

gpg -k

To view secret gpg keys use command:

gpg -K

How to run custom file with Wine .exe in Linux Mint

To run Windows programs in Linux we use Wine. But how to open any file with exe program using Wine? For example we have 1.txt file. To run this file with notepad.exe use command:

wine "/home/user/notepad.exe" 1.txt

To associate some type of files with EXE program we can use shell script:

#!/bin/sh

QUICKPARLOCATION="/home/user/Notepad.exe"
PARAM=`winepath -w "$*" 2>/dev/null`
wine "$QUICKPARLOCATION" "$PARAM" &
exit 0

Put this file in /home/user/bin directory. Open file properties and in field “Open with” select Notepad.sh script:

How to install latest wine on Ubuntu or Linux Mint

The official WineHQ repository has a set of standard Wine packages that you can download and install on your system. Please follow these steps to do so:

Run the following command in the Terminal for adding i386 architecture before installing a 64-bit version of Wine:

sudo dpkg --add-architecture i386
Next add the WineHQ signing key:

wget -qO- https://dl.winehq.org/wine-builds/Release.key | sudo apt-key add -

Then run this command to import the other key for the WineHQ Repository:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv F987672F

Now run the following command in order to add the relevant repository from the WineHQ:

sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

Next update the Ubuntu package lists with the command:

sudo apt-get update

Now we can install latest stable version of Wine in Ubuntu or Linux Mint operating system:

sudo apt-get install --install-recommends winehq-stable

Linux how to fix ext4 filesystem

Sometimes if server is shutdown incorrect filesystem filesystem can be corrupted and loaded in “read only” mode.

To check file system status use command:

mount | grep /dev/sd

This command show filesystem status, if filesystem is read only – you will see “ro” status: /dev/sda2 on / type ext4 (ro,readonly,data=ordered)

To fix filesystem use command:

fsck /dev/sda2

This command will fix all errors on filesystem, To apply fix enter y on keybord. When fixing is complete reboot system and check filesystem again.

How to create and compare md5 checksum of files

To create md5 checksum of all files in folder use command:

md5sum /etc/*

This comment will show all md5 checksum in /etc directory:

To write this checksum in text document use command:

md5sum /etc/* >> /file.txt

To compare checksum of files in folder with checksum of files in text document use command:

md5sum -c /file.txt

If checksums match, near the file will be record “Success”, it means that the file has not changed. Otherwise it means that the file was edited by someone.

To check your system, regularly create checksum files for directories: /etc, /bin, /sbin, / lib

Use md5sub recursive in sub-directories

If You want to create md5 checksum of all files in all sub-directories use next command, it will create md5 checksum of all files in /etc directory:

find -type f -exec md5sum '{}' \; > md5sum.txt

How To Set Up Apache Virtual Hosts on Ubuntu Linux

You will need to have Apache installed in order to work through these steps. If you haven’t already done so, you can get Apache installed on your server through apt-get:

sudo apt-get update
sudo apt-get install apache2

For example let’s create virtual Apache host test.host. Create host directory:

sudo mkdir -p /var/www/test.host/public_html

Now we have the directory structure for our files, but they are owned by our root user. If we want our regular user to be able to modify files in our web directories, we can change the ownership by doing this:

sudo chown -R $USER:$USER /var/www/test.host/public_html

We should also modify our permissions a little bit to ensure that read access is permitted to the general web directory and all of the files and folders it contains so that pages can be served correctly:

sudo chmod -R 755 /var/www

Virtual host files are the files that specify the actual configuration of our virtual hosts and dictate how the Apache web server will respond to various domain requests.

Apache comes with a default virtual host file called 000-default.conf that we can use as a jumping off point. We are going to copy it over to create a virtual host file for each of our domains.

We will start with one domain, configure it, copy it for our second domain, and then make the few further adjustments needed. The default Ubuntu configuration requires that each virtual host file end in .conf. Start by copying the file for the first domain:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.host.conf

Open the new file in your editor with root privileges:

sudo nano /etc/apache2/sites-available/test.host.conf

Change this file look something like this:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName test.host
    ServerAlias www.test.host
    DocumentRoot /var/www/test.host/public_html

    <Directory /var/www/test.host/public_html>
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Now that we have created our virtual host files, we must enable them. Apache includes some tools that allow us to do this.

sudo a2ensite test.host.conf

Next, disable the default site defined in 000-default.conf:

sudo a2dissite 000-default.conf

When you are finished, you need to restart Apache to make these changes take effect:

sudo service apache2 restart

How to check SSD life in Linux

To check SSD Smart information install program: Smartmontools:

sudo apt-get intall smartmontools

To view information about SSD drive use command:

sudo smartctl -i /dev/sda

To view all Smart information about SSD use command:

sudo smartctl -a /dev/sda

To view only SSD health in percent use command:

sudo smartctl -a /dev/sda | grep Media_Wearout_Indicator

Allow SSH root login on Debian and Ubuntu Linux

By default Ubuntu 18.04 installation comes with unset root password. To set root password open up terminal and execute the following linux command:

$ sudo passwd
[sudo] password for user: 
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Edit SSH configuration file: /etc/ssh/sshd_config and set property PermitRootLogin to yes:

Save configuration file and restart ssh service by command:

sudo service ssh restart

To restart SSH on Debian you can use command:

systemctl restart ssh.service

Turn off clamav for email in VestaCP

You should edit /etc/exim4/exim.conf

#CLAMD =  yes
CLAMD =  no

edit /usr/local/vesta/conf/vesta.conf and comment / remove clamav

#ANTIVIRUS_SYSTEM='clamav'
ANTIVIRUS_SYSTEM=''

than disable and stop the service

systemctl disable clamd
systemctl stop clamd
systemctl restart exim

Test exim (send and receive email)
watch your log