From 46eaf3e4f63983bd442216ed56ef1a0ef21b9036 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Tue, 21 Mar 2017 13:35:37 +0330 Subject: [PATCH] fix: no need for unnecessary dependencies fix(vsftpd): a few bugs --- .../mongodb/serverman-service-mongodb.cabal | 1 - services/mysql/serverman-service-mysql.cabal | 1 - services/nginx/serverman-service-nginx.cabal | 2 -- .../vsftpd/serverman-service-vsftpd.cabal | 1 - services/vsftpd/src/Main.hs | 9 ++++--- services/vsftpd/src/Types.hs | 26 +++++++++---------- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/services/mongodb/serverman-service-mongodb.cabal b/services/mongodb/serverman-service-mongodb.cabal index 7361798..c274001 100644 --- a/services/mongodb/serverman-service-mongodb.cabal +++ b/services/mongodb/serverman-service-mongodb.cabal @@ -18,7 +18,6 @@ executable mongodb default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , data-default-class - , mtl , mongoDB >= 2.1.1.1 && < 3 , bytestring , text diff --git a/services/mysql/serverman-service-mysql.cabal b/services/mysql/serverman-service-mysql.cabal index f2d3190..b8cee70 100644 --- a/services/mysql/serverman-service-mysql.cabal +++ b/services/mysql/serverman-service-mysql.cabal @@ -18,5 +18,4 @@ executable mysql default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , data-default-class - , mtl , mysql >= 0.1.4 && < 1 diff --git a/services/nginx/serverman-service-nginx.cabal b/services/nginx/serverman-service-nginx.cabal index befddb0..08cd7a8 100644 --- a/services/nginx/serverman-service-nginx.cabal +++ b/services/nginx/serverman-service-nginx.cabal @@ -19,6 +19,4 @@ executable nginx default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , data-default-class - , monad-control - , mtl , free diff --git a/services/vsftpd/serverman-service-vsftpd.cabal b/services/vsftpd/serverman-service-vsftpd.cabal index 1288337..4c485bc 100644 --- a/services/vsftpd/serverman-service-vsftpd.cabal +++ b/services/vsftpd/serverman-service-vsftpd.cabal @@ -18,4 +18,3 @@ executable vsftpd default-language: Haskell2010 build-depends: base >= 4.7 && < 5 , data-default-class - , mtl diff --git a/services/vsftpd/src/Main.hs b/services/vsftpd/src/Main.hs index ba44cbb..b7ea746 100644 --- a/services/vsftpd/src/Main.hs +++ b/services/vsftpd/src/Main.hs @@ -14,7 +14,7 @@ module Main (call, main) where import Control.Monad.Free import Data.List import Data.Either - import Control.Monad.State + import Control.Monad.State hiding (liftIO) call :: Service -> App () @@ -33,10 +33,13 @@ module Main (call, main) where (Right opensslResponse) <- execute "openssl" ["passwd", "-1", pass] "" True let encryptedPassword = head . lines $ opensslResponse - executeRoot "useradd" [user, "-d", directory, "-G", "ftp", "-p", encryptedPassword] "" True + executeRoot "groupadd" ["-f", "ftp"] "" False + executeRoot "useradd" [user, "-d", directory, "-G", "ftp", "-p", encryptedPassword] "" False liftIO $ do - renameFileIfMissing original (original ++ ".backup") + execIfExists original $ do + renameFileIfMissing original (original ++ ".backup") + writeFile original content writeFile userList user diff --git a/services/vsftpd/src/Types.hs b/services/vsftpd/src/Types.hs index 6f3bbf5..e603c36 100644 --- a/services/vsftpd/src/Types.hs +++ b/services/vsftpd/src/Types.hs @@ -34,22 +34,22 @@ module Types ( FileSharingParams (..) , anonymous = False , anonymousWrite = False , recreateUser = False - } - + } instance Show FileSharingParams where show (FileSharingParams { directory, user, pass, port, writable, anonymous, anonymousWrite }) = let boolToEnglish True = "YES" boolToEnglish False = "NO" in keyvalue [ ("anonymous_enable", boolToEnglish anonymous) - , ("write_enable", boolToEnglish writable) - , ("allow_writeable_chroot", boolToEnglish writable) - , ("anon_upload_enable", boolToEnglish anonymousWrite) - , ("anon_mkdir_write_enable", boolToEnglish anonymousWrite) - , ("listen", "YES") - , ("userlist_enable", "YES") - , ("userlist_file", "/etc/vsftpd-serverman-user-list") - , ("userlist_deny", "NO") - , ("chroot_local_user", "YES") - , ("xferlog_enable", "YES") - , ("local_enable", "YES")] "=" + , ("write_enable", boolToEnglish writable) + , ("allow_writeable_chroot", boolToEnglish writable) + , ("anon_upload_enable", boolToEnglish anonymousWrite) + , ("anon_mkdir_write_enable", boolToEnglish anonymousWrite) + , ("listen", "YES") + , ("userlist_enable", "YES") + , ("userlist_file", "/etc/vsftpd-serverman-user-list") + , ("userlist_deny", "NO") + , ("local_root", directory) + , ("xferlog_enable", "YES") + , ("local_enable", "YES") + , ("pam_service_name", "ftp")] "="