diff --git a/src/config.erl b/src/config.erl
index 640d7c2..1feed6b 100644
--- a/src/config.erl
+++ b/src/config.erl
@@ -253,7 +253,7 @@
             true = ets:insert(?MODULE, {{Sec, Key}, Val}),
             couch_log:notice("~p: [~s] ~s set to ~s for reason ~p",
                              [?MODULE, Sec, Key, Val, Reason]),
-            case {Persist, Config#config.write_filename} of
+            ConfigWriteReturn = case {Persist, Config#config.write_filename} of
                 {true, undefined} ->
                     ok;
                 {true, FileName} ->
@@ -261,16 +261,21 @@
                 _ ->
                     ok
             end,
-            Event = {config_change, Sec, Key, Val, Persist},
-            gen_event:sync_notify(config_event, Event),
-            {reply, ok, Config}
+            case ConfigWriteReturn of
+                ok ->
+                    Event = {config_change, Sec, Key, Val, Persist},
+                    gen_event:sync_notify(config_event, Event),
+                    {reply, ok, Config};
+                {error, _Else} ->
+                    {reply, {error, _Else}, Config}
+            end
     end;
 
 handle_call({delete, Sec, Key, Persist, Reason}, _From, Config) ->
     true = ets:delete(?MODULE, {Sec,Key}),
     couch_log:notice("~p: [~s] ~s deleted for reason ~p",
         [?MODULE, Sec, Key, Reason]),
-    case {Persist, Config#config.write_filename} of
+    ConfigDeleteReturn = case {Persist, Config#config.write_filename} of
         {true, undefined} ->
             ok;
         {true, FileName} ->
@@ -278,9 +283,15 @@
         _ ->
             ok
     end,
-    Event = {config_change, Sec, Key, deleted, Persist},
-    gen_event:sync_notify(config_event, Event),
-    {reply, ok, Config};
+    case ConfigDeleteReturn of
+        ok ->
+            Event = {config_change, Sec, Key, deleted, Persist},
+            gen_event:sync_notify(config_event, Event),
+            {reply, ok, Config};
+        _Else ->
+            {reply, _Else, Config}
+    end;
+
 handle_call(reload, _From, Config) ->
     DiskKVs = lists:foldl(fun(IniFile, DiskKVs0) ->
         {ok, ParsedIniValues} = parse_ini_file(IniFile),
diff --git a/src/config_writer.erl b/src/config_writer.erl
index 2812686..159437c 100644
--- a/src/config_writer.erl
+++ b/src/config_writer.erl
@@ -35,7 +35,7 @@
 
     NewLines = process_file_lines(Lines, [], SectionLine, Pattern, Key, Value),
     NewFileContents = reverse_and_add_newline(strip_empty_lines(NewLines), []),
-    ok = file:write_file(File, NewFileContents).
+    file:write_file(File, NewFileContents).
 
 
 process_file_lines([Section|Rest], SeenLines, Section, Pattern, Key, Value) ->
diff --git a/test/config_tests.erl b/test/config_tests.erl
index 7a5b56d..6afb591 100644
--- a/test/config_tests.erl
+++ b/test/config_tests.erl
@@ -297,6 +297,45 @@
     }.
 
 
+config_access_right_test_() ->
+    {
+        "Config file access right tests",
+        {
+            foreach,
+            fun setup/0,
+            fun teardown/1,
+            [
+                fun should_write_config_to_file/0,
+                fun should_delete_config_from_file/0,
+                fun should_not_write_config_to_file/0,
+                fun should_not_delete_config_from_file/0
+            ]
+        }
+    }.
+
+
+should_write_config_to_file() ->
+    ?assertEqual(ok, config:set("admins", "foo", "500", true)).
+
+
+should_delete_config_from_file() ->
+    ?assertEqual(ok, config:delete("admins", "foo", true)).
+
+
+should_not_write_config_to_file() ->
+    meck:new(config_writer),
+    meck:expect(config_writer, save_to_file, fun(_, _) -> {error, eacces} end),
+    ?assertEqual({error, eacces}, config:set("admins", "foo", "500", true)),
+    meck:unload(config_writer).
+
+
+should_not_delete_config_from_file() ->
+    meck:new(config_writer),
+    meck:expect(config_writer, save_to_file, fun(_, _) -> {error, eacces} end),
+    ?assertEqual({error, eacces}, config:delete("admins", "foo", true)),
+    meck:unload(config_writer).
+
+
 should_load_all_configs() ->
     ?assert(length(config:all()) > 0).
 
