diff --git a/system/options.nix b/system/options.nix index 77c1f2f970b..b2b907733c9 100644 --- a/system/options.nix +++ b/system/options.nix @@ -1684,6 +1684,27 @@ Whether to enable the anonymous FTP user. "; }; + + writeEnable = mkOption { + default = false; + description = " + Whether any write activity is permitted to users. + "; + }; + + anonymousUploadEnable = mkOption { + default = false; + description = " + Whether any uploads are permitted to anonymous users. + "; + }; + + anonymousMkdirEnable = mkOption { + default = false; + description = " + Whether mkdir is permitted to anonymous users. + "; + }; }; printing = { diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 2b851d051af..ce2cf17060d 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -317,7 +317,8 @@ let ++ optional config.services.vsftpd.enable (import ../upstart-jobs/vsftpd.nix { inherit (pkgs) vsftpd; - inherit (config.services.vsftpd) anonymousUser; + inherit (config.services.vsftpd) anonymousUser + writeEnable anonymousUploadEnable anonymousMkdirEnable; }) # X Font Server diff --git a/upstart-jobs/vsftpd.nix b/upstart-jobs/vsftpd.nix index 67a11e77b2f..01a509ea679 100644 --- a/upstart-jobs/vsftpd.nix +++ b/upstart-jobs/vsftpd.nix @@ -1,4 +1,6 @@ -{ vsftpd, anonymousUser }: +{ vsftpd, anonymousUser +, anonymousUploadEnable, anonymousMkdirEnable, writeEnable +}: { name = "vsftpd"; @@ -40,6 +42,27 @@ start script "anonymous_enable=YES" else "anonymous_enable=NO") + +(if writeEnable then +" +write_enable=YES" +else +" +write_enable=NO" +) + +(if anonymousUploadEnable then +" +anon_upload_enable=YES" +else +" +anon_upload_enable=NO" +) + +(if anonymousMkdirEnable then +" +anon_mkdir_write_enable=YES" +else +" +anon_mkdir_write_enable=NO" +) + " background=NO listen=YES