Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file contains utility functions for dealing with the local | 5 // This file contains utility functions for dealing with the local |
| 6 // filesystem. | 6 // filesystem. |
| 7 | 7 |
| 8 #ifndef BASE_FILE_UTIL_H_ | 8 #ifndef BASE_FILE_UTIL_H_ |
| 9 #define BASE_FILE_UTIL_H_ | 9 #define BASE_FILE_UTIL_H_ |
| 10 #pragma once | 10 #pragma once |
| (...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 652 FILE_SYSTEM_CGROUP, // cgroup control. | 652 FILE_SYSTEM_CGROUP, // cgroup control. |
| 653 FILE_SYSTEM_OTHER, // any other value. | 653 FILE_SYSTEM_OTHER, // any other value. |
| 654 FILE_SYSTEM_TYPE_COUNT | 654 FILE_SYSTEM_TYPE_COUNT |
| 655 }; | 655 }; |
| 656 | 656 |
| 657 // Attempts determine the FileSystemType for |path|. | 657 // Attempts determine the FileSystemType for |path|. |
| 658 // Returns false if |path| doesn't exist. | 658 // Returns false if |path| doesn't exist. |
| 659 BASE_EXPORT bool GetFileSystemType(const FilePath& path, FileSystemType* type); | 659 BASE_EXPORT bool GetFileSystemType(const FilePath& path, FileSystemType* type); |
| 660 #endif | 660 #endif |
| 661 | 661 |
| 662 #if defined(OS_POSIX) | |
| 663 // Test that |path| can only be changed by a specific user and group. | |
| 664 // Specifically, test that all parts of |path| under (and including) |base|: | |
| 665 // * Exist. | |
| 666 // * Are owned by a specific user and group. | |
|
Evan Martin
2011/08/30 17:26:38
Does it matter that you check the group, when you
Sam Kerner (Chrome)
2011/09/16 18:12:59
I considered not checking group membership if the
| |
| 667 // * Are not writable by all users. | |
| 668 // * Are not symbolic links. | |
| 669 // This is useful for checking that a config file is administrator-controlled. | |
| 670 // |base| must contain |path|. | |
| 671 BASE_EXPORT bool IsPathControlledByUser(const FilePath& base, | |
| 672 const FilePath& path, | |
| 673 uid_t owner_uid, | |
| 674 gid_t group_gid); | |
| 675 | |
| 676 // Is |path| writable only by a user with administrator privileges? | |
| 677 // Check this by testing that |path|, and every parent directory including | |
| 678 // the root of the filesystem, are owned by root, controlled by the group | |
| 679 // "admin", are not writable by all users, and contain no symbolic links. | |
|
Evan Martin
2011/08/30 17:26:38
What is "admin" here? It is not true that my root
Sam Kerner (Chrome)
2011/09/16 18:12:59
Updated to make it clear that this function is mac
| |
| 680 // Will return false if |path| does not exist. | |
| 681 BASE_EXPORT bool IsPathControlledByAdmin(const FilePath& path); | |
| 682 #endif // defined(OS_POSIX) | |
| 683 | |
| 662 } // namespace file_util | 684 } // namespace file_util |
| 663 | 685 |
| 664 // Deprecated functions have been moved to this separate header file, | 686 // Deprecated functions have been moved to this separate header file, |
| 665 // which must be included last after all the above definitions. | 687 // which must be included last after all the above definitions. |
| 666 #include "base/file_util_deprecated.h" | 688 #include "base/file_util_deprecated.h" |
| 667 | 689 |
| 668 #endif // BASE_FILE_UTIL_H_ | 690 #endif // BASE_FILE_UTIL_H_ |
| OLD | NEW |