xl: Print the correct err msg when access to the backend is forbidden (#8735)

minio server /data{1..4} shows an error about inability to bind a port, though
the real problem is /data{1..4} cannot be created because of the lack of
permissions.

This commit fix the behavior.
This commit is contained in:
Anis Elleuch 2020-01-03 16:45:26 +01:00 committed by Nitish Tiwari
parent dd311623df
commit d861edfc00

View File

@ -20,7 +20,7 @@ import (
"errors"
"fmt"
"io"
"os"
"net"
"syscall"
"github.com/minio/minio/pkg/color"
@ -106,9 +106,11 @@ func ErrorToErr(err error) Err {
// Show a generic message for known golang errors
if errors.Is(err, syscall.EADDRINUSE) {
return ErrPortAlreadyInUse(err).Msg("Specified port is already in use")
} else if errors.Is(err, syscall.EACCES) {
} else if errors.Is(err, syscall.EACCES) || errors.Is(err, syscall.EPERM) {
switch err.(type) {
case *net.OpError:
return ErrPortAccess(err).Msg("Insufficient permissions to use specified port")
} else if os.IsPermission(err) {
}
return ErrNoPermissionsToAccessDirFiles(err).Msg("Insufficient permissions to access path")
} else if errors.Is(err, io.ErrUnexpectedEOF) {
return ErrUnexpectedDataContent(err)