User Permission Setup
User Management for FTP Access
Creating FTP Users
## Create a new system user
sudo adduser ftpuser
## Create FTP-specific directory
sudo mkdir -p /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
User Permission Levels
graph TD
A[FTP User Permissions] --> B[Read-Only]
A --> C[Write Access]
A --> D[Full Access]
A --> E[Restricted Access]
Permission Configuration Types
| Permission Level |
Description |
Use Case |
| Read-Only |
Can download files |
Public file sharing |
| Write Access |
Can upload files |
Collaborative environments |
| Full Access |
Read and write |
Internal file management |
| Restricted Access |
Limited directory access |
Secure file transfer |
Configuring vsftpd User Restrictions
Chroot Jail Configuration
## Edit vsftpd configuration
sudo nano /etc/vsftpd.conf
## Add these lines
chroot_local_user=YES
allow_writeable_chroot=YES
Creating Virtual FTP Users
## Install authentication support
sudo apt install libpam-pwdfile
## Create virtual user database
sudo htpasswd -c /etc/vsftpd.virtusers ftpuser
Advanced User Access Control
PAM Configuration
## Create PAM configuration
sudo nano /etc/pam.d/vsftpd
## Add authentication rules
auth required pam_pwdfile.so pwdfile /etc/vsftpd.virtusers
account required pam_permit.so
User Quota Management
## Install quota support
sudo apt install quota
## Enable quota in /etc/fstab
/dev/sda1 / ext4 defaults,usrquota 0 1
## Set user quota
sudo setquota -u ftpuser 100M 200M 0 0
Monitoring User Activities
## Enable logging
sudo nano /etc/vsftpd.conf
## Add logging directives
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
Best Practices
- Use strong, unique passwords
- Implement least privilege principle
- Regularly audit user access
- Use SSL/TLS encryption
Troubleshooting User Access
## Check FTP user status
sudo systemctl status vsftpd
## Verify user configuration
sudo grep ftpuser /etc/passwd
## Test user login
ftp localhost
LabEx recommends practicing user permission setups in a controlled environment to understand the nuances of FTP access management.