Nextcloud

Move Data Directory

https://help.nextcloud.com/t/howto-change-move-data-directory-after-installation/17170

Tools

Fix permissions

chown -R www-data:www-data /var/www/nextcloud

Scan for file changes

sudo -u www-data php /var/www/nextcloud/occ files:scan --all

Resolving file locks

For anyone having issues with files getting lock while using redis on nextcloud pi. Specially while syncing nodejs apps…

  1. Connect to your redis
    sudo redis-cli -s /var/run/redis/redis.sock
  2. authenticate in your redis with the password for redis found in /var/www/nextcloud/config/config.php
    $> auth “yourpasswordfoundinconfig.php”
    $> flushall
    Your locked files should synchronize now

Convert AVI to MP4

ffmpeg -i input.avi output.mp4                       # Default H.264 codec
ffmpeg -i input.avi -c:v libx265 -c:a aac output.mp4 # Encode video with HEVC and audio with AAC:

FFmpeg options:

-c:a copy        # copy audio without re-encoding
-c:a aac         # convert audio to AAC
-c:v libaom-av1  # video in AV format
-qscale:v N      # Video Quality: N = 1..31 (1 is highest quality)
-qscale:v N      # Audio Quality: N = 1..31 (1 is highest quality)
-strict -2       # turn on experimental features 

Batch Convert

Convert entire folder to MP4

for i in *.avi; do ffmpeg -i "$i" "${i%.*}.mp4"; done

Convert AVI to MP4 – folder with sub-directories:

find . -name "*.avi" -exec sh -c 'f="{}"; ffmpeg -i "$f" "${f%.avi}.mp4"' \;

Links

https://unix.stackexchange.com/questions/35746/encode-with-ffmpeg-using-avi-to-mp4

https://trac.ffmpeg.org/wiki/Encode/H.265

Install mod_security Apache module in Ubuntu 18.04

Install

sudo apt-get install modsecurity-crs libapache2-mod-security2

Check if it was added to Apache

sudo apachectl -M | grep security

Configure

Copy the default configuration:

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Enable ModSecurity:

sudo nano /etc/modsecurity/modsecurity.conf
SecRuleEngine On # change this setting to On

Enable for Apache virtual host(s):

sudo nano /etc/apache2/sites-available/000-default.conf

At the bottom of the file, just above the tag, add the following lines:

SecRuleEngine On

Addition information

# Apache configuration file, where modsecurity config is added
/etc/apache2/mods-enabled/security2.conf

# Place where modsecurity rules are stored:
/usr/share/modsecurity-crs/rules/*.conf

# Test if it's working
yoursite_address/?exec=/bin/bash

https://www.linode.com/docs/web-servers/apache-tips-and-tricks/configure-modsecurity-on-apache/

Exceptions, Whitelisting

https://www.jasonkingstudios.com/blog/apache-mod_security-whitelisting-wordpress/

https://jpmrblood.github.io/apache2/tips/wordpress/modsecurity-wordpress/

https://www.liquidweb.com/kb/whitelisting-in-modsec/

Changing permissions in linux

Glossary

Permission types

r = read, w = write, x = execute, X = execute (applies only to folders)
u = user, g = group, o = other, a = ugo = "all"

Numerical permissions

Number	Permission Type                Symbol
0	No Permission	               ---
1	Execute	                       --x
2	Write	                       -w-
3	Execute + Write	               -wx
4	Read	                       r--
5	Read + Execute	               r-x
6	Read + Write                   rw-
7	Read + Write +Execute          rwx

chmod command – changing permission

# Examples:
chmod u=rwX,g=rX,o=rX *    # file = rw,r,r; folder = rwx,rx,rx
chmod u=rwX,go=rX *.       # same as above
chmod a+r *                # add read permission for all
chmod o-r *                # remove read permission for others
chmod -R a+X *             # add execute permission fo folders recursively

# WordPress example: set files = 444 and folders to 755:
sudo find /var/www/ -type f -exec chmod 444 {} + -o -type d -exec chmod 755 {} +
# I this case you may also want to set ownership:
sudo chown -R www-data:www-data /var/www

Viewing file permission in Linux

ls -al