Skip to main content

Give permission to a SSH user only to a specific directory and block terminal access !!




How do I restrict the user to only be able to do anything within that folder? (ie: that folder is the user's root and they cannot view/edit anything higher in the directory tree)



Step-1: adding a new group

sudo addgroup sftptsl



Step-2: Create the chroot directory

sudo mkdir /var/www/html/user-dir/

sudo chmod g+rx /var/www/html/user-dir/



Step-3: Create the group-writable directory

sudo mkdir -p /var/www/html/user-dir/working-dir1/

sudo chmod g+rwx /var/www/html/user-dir/working-dir1/



Step-4: Give them both to the new group.

sudo chgrp -R sftptsl /var/www/html/user-dir/



Step-5: create an user and asign to this group 

sudo adduser --ingroup sftptsl sftpuser



## group change

You can also assign an existing user to the group

usermod -g primarygroupname username

usermod -G secondarygroupname username

-g (primary group assigned to the users)

-G (Other groups the user belongs to)



Step-6: Open the SSH configuration file from "/etc/ssh/sshd_config", add the below text end of the file


Match Group sftptsl

  # Force the connection to use SFTP and chroot to the required directory.

  ForceCommand internal-sftp

  ChrootDirectory /var/www/html/user-dir/

  # Disable tunneling, authentication agent, TCP and X11 forwarding.

  PermitTunnel no

  AllowAgentForwarding no

  AllowTcpForwarding no

  X11Forwarding no





Step-7: Check it is working or not by using filezilla or any remote file browser.

Comments

Popular posts from this blog

Setup a Multi-Protocol VPN Server Using SoftEther on Centos7

  Introduction This article explains how to install and configure a multi-protocol VPN server using the SoftEther package. We enable and configure OpenVPN and L2TP over IPSec and SSTP VPN Servers on Linux. What is SoftEther SoftEther VPN is one of the world’s most powerful and easy-to-use multi-protocol VPN software, made by the good folks at the University of Tsukuba, Japan. It runs on Windows, Linux, Mac, FreeBSD and Solaris and is freeware and open-source. You can use SoftEther for any personal or commercial use free of charge. Step 1: Create a Virtual Server First, you need to create a DigitalOcean Droplet. As mentioned in SoftEther’s website, SoftEther will work on almost every Linux distro with kernel v2.4 or above,; however it’s recommended to choose one of these distributions: CentOS, Fedora, or Red Hat Enterprise Linux. Personally I have tried it on Ubuntu, CentOS and Fedora, both 32 and 64 bit editions, and it has worked perfectly. Step 2: Update your Server Software Usin...

Get wifi password easily from a windows PC

How to get saved wifi password from a windows machines easily. Vulnerability: A hacker can easily use this trick if he can access a windows machine, get all the saved wifi password, implant a backdoor into the machine and try to access other devices connected to that wifi. So, keep secure your windows PC by using latest antivirus, firewall. Let's get started..... Open cmd and type "netsh wlan show profile" It will show all the saved wifi profile in your PC. Now select a profile to get it's password. netsh wlan show profile name="Finix" key=clear It will show detail of the SSID with a value "Key Content" under "Security Settings" that is the wifi password. Have fun.  

Deploying a laravel app using nginx alias

  server { listen 80; server_name subdomian.example.com; root /var/www/mainapp/; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; error_log /var/log/nginx/error.log warn; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ \.php$ { fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location /laravelapp { alias /var/www/mainapp/laravelapp/public; index index.php index.html in...