diff --git a/core/modules/file/src/FileAccessControlHandler.php b/core/modules/file/src/FileAccessControlHandler.php
index 2e336af..0c13cb5 100644
--- a/core/modules/file/src/FileAccessControlHandler.php
+++ b/core/modules/file/src/FileAccessControlHandler.php
@@ -23,6 +23,10 @@ class FileAccessControlHandler extends EntityAccessControlHandler {
    */
   protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) {
 
+    // Always allow access to file in public file system.
+    if (($operation == 'view') && (file_uri_scheme($entity->getFileUri()) == 'public')) {
+      return AccessResult::allowed();
+    }
     if ($operation == 'download' || $operation == 'view') {
       $references = $this->getFileReferences($entity);
       if ($references) {
diff --git a/core/modules/file/src/Tests/AccessTest.php b/core/modules/file/src/Tests/AccessTest.php
new file mode 100644
index 0000000..c4cc146
--- /dev/null
+++ b/core/modules/file/src/Tests/AccessTest.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\file\Tests\AccessTest.
+ */
+
+namespace Drupal\file\Tests;
+
+use Drupal\file\Entity\File;
+
+/**
+ * Access file tests.
+ *
+ * @group file
+ */
+class AccessTest extends FileManagedTestBase {
+
+  /**
+   * Tests if public file is always accessible.
+   */
+  function testFileAccess(){
+    // Create a new file entity.
+    $file = File::create(array(
+      'uid' => 1,
+      'filename' => 'drupal.txt',
+      'uri' => 'public://drupal.txt',
+      'filemime' => 'text/plain',
+      'status' => FILE_STATUS_PERMANENT,
+    ));
+    file_put_contents($file->getFileUri(), 'hello world');
+
+    // Save it, inserting a new record.
+    $file->save();
+    // Create user to check file access.
+    $account = $this->createUser(array('access site reports'));
+    $access = $file->access('view', $account);
+
+    $this->assertTrue($access, 'Public file is accessible to different user');
+
+    // Create anonymous user to check file access.
+    $account = $this->createUser()->getAnonymousUser();
+    $access = $file->access('view', $account);
+    $this->assertTrue($access, 'Public file is accessible to anonymous user');
+  }
+}
\ No newline at end of file
