Hard limits are a kernel-configurable item, and users can’t exceed them. Soft limits are the user defaults, and users can change that using the ulimit program or the limit/unlimit builtins.
Basically, soft limits can be changed to anything up to the hard limit. Think of soft limits as the warning barrier. When a user reaches the soft limit they will get an warning message but are still allowed to use more space up to the hard limit.
Also, you can configure the system to set expiration times for users who have exceeded their soft limit. You can set both soft and hard limits. The system will not allow a user to exceed his or her hard limit. However, a system administrator may set a soft limit (sometimes referred to as a quota), which the user can temporarily exceed. The soft limit must be less than the hard limit.
Use ulimit -a to check soft limits, and ulimit -Ha to check hard limits. These values will display as open files.
You can set these values by placing the following entries in /etc/system.
This will require a reboot
Note that rlim_fd_max is the hard limit, and rlim_fd_cur is the current limit (or soft limit)