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 get SMNP information from router using PHP

First install SNMP package:

sudo apt-get install snmp

To use SNMP in PHP install php-snmp extention:

sudo apt-get install -y php-snmp

Get SNMP information from router user command:

snmpwalk -v2c -Cc -c public 192.168.1.1 > out.txt

This command will get all SNMP information from router 192.168.1.1 and save it into file out.txt

Now let’s create file index.php and write code that will get all MAC addresses from BDCOM P3310 OLT. To get all MAC addresses use OID: iso.3.6.1.2.1.17.7.1.2.2.1.1. In PHP file create function SnmpGet:

function SnmpGet($host, $community, $object_id){
    exec("snmpwalk  -v2c -Cc -c ".$community." ".$host." ".$object_id, $snmpWalkReturn);
    foreach($snmpWalkReturn as $value){
            $oid = explode("=", $value);
            $walk[trim($oid[0])] = trim($oid[1]);
    }
    return $walk;
}

Put SNMP result in variable $MacResult:

$MacResult = snmprealwalk2($hostname, $community, "iso.3.6.1.2.1.17.7.1.2.2.1.1");

In cycle foreach go through all elements and remove unnecessary data:

if(count($MacResult)){
    foreach($MacResult as $Item => $Value)
    {
        $Oid = str_replace("iso.3.6.1.2.1.17.7.1.2.2.1.1.", "", $Item);
        $Mac = str_replace("Hex-STRING: ", "", $Value);

        if(!strpos($Mac, "STRING:")){
            echo $Mac.' | '.$Oid;
        }
    }
}

Similarly get EPON interface id from OID: iso.3.6.1.2.1.17.7.1.2.2.1.2

How to install Arch Linux with i3

1 .Download Arch Linux ISO from official site: https://www.archlinux.org/download/

2. Create Live USB of Arch Linux using Etcher GUI tool:

Etcher GUI tool on Linux

Or You can use Rufus in Windows:

Once you have created a liveUSB for Arch Linux, restart your PC and boot from USB. While booting press Delete, F2, F10 or F12 key to go into boot menu.

3. Create partition.

Use the command fdisk to show and create partitions on your system:

fdisk -l

If you have old partitions on your disk, you can delete them all using command:

wipefs -a /dev/sda

Be careful! This command destroy all data on your hard drive.

Select the disk you are going to partition:

fdisk /dev/sda

Enter n – to create new partition, then program ask you to choose a disk number, enter 1, and then enter first and last block of dist (press Enter for default).

4. Create root partition. To format root partition use command:

mkfs.ext4 /dev/sda1

5. Install Arch Linux

mount /dev/sda1 /mnt

Use pacstrap script to install all necessary packages:

pacstrap /mnt base linux linux-firmware vim nano mc

Generate a fstab file to define how disk partition, block devices or remote file systems are mounted into the filesystem.

genfstab -U /mnt >> /mnt/etc/fstab

Use arch-chroot and set the mounted disk as root. Now Arch Linux is installed on the disk.

arch-chroot /mnt

6. Setting up timezone

timedatectl list-timezones
timedatectl set-timezone Europe/Kiev

7. Setting up Locale

locale-gen
echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

8. Network configuration

echo name > /etc/hostname
touch /etc/hosts

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