diff options
author | Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> | 2010-06-20 20:58:53 -0400 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2010-08-02 01:34:42 -0400 |
commit | 0617c7ff34dc9b1d641640c3953274bb2dbe21a6 (patch) | |
tree | 6be51af32ad65380aff9b7fa385f65ef15b3d53b /security/tomoyo/common.h | |
parent | 7c2ea22e3c5463627ca98924cd65cb9e480dc29c (diff) |
TOMOYO: Remove alias keyword.
Some programs behave differently depending on argv[0] passed to execve().
TOMOYO has "alias" keyword in order to allow administrators to define different
domains if requested pathname passed to execve() is a symlink. But "alias"
keyword is incomplete because this keyword assumes that requested pathname and
argv[0] are identical. Thus, remove "alias" keyword (by this patch) and add
syntax for checking argv[0] (by future patches).
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/tomoyo/common.h')
-rw-r--r-- | security/tomoyo/common.h | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/security/tomoyo/common.h b/security/tomoyo/common.h index ec3ed488ee30..12b0c5c46c8d 100644 --- a/security/tomoyo/common.h +++ b/security/tomoyo/common.h | |||
@@ -53,7 +53,6 @@ enum tomoyo_policy_id { | |||
53 | TOMOYO_ID_DOMAIN_INITIALIZER, | 53 | TOMOYO_ID_DOMAIN_INITIALIZER, |
54 | TOMOYO_ID_DOMAIN_KEEPER, | 54 | TOMOYO_ID_DOMAIN_KEEPER, |
55 | TOMOYO_ID_AGGREGATOR, | 55 | TOMOYO_ID_AGGREGATOR, |
56 | TOMOYO_ID_ALIAS, | ||
57 | TOMOYO_ID_GLOBALLY_READABLE, | 56 | TOMOYO_ID_GLOBALLY_READABLE, |
58 | TOMOYO_ID_PATTERN, | 57 | TOMOYO_ID_PATTERN, |
59 | TOMOYO_ID_NO_REWRITE, | 58 | TOMOYO_ID_NO_REWRITE, |
@@ -72,7 +71,6 @@ enum tomoyo_group_id { | |||
72 | 71 | ||
73 | /* Keywords for ACLs. */ | 72 | /* Keywords for ACLs. */ |
74 | #define TOMOYO_KEYWORD_AGGREGATOR "aggregator " | 73 | #define TOMOYO_KEYWORD_AGGREGATOR "aggregator " |
75 | #define TOMOYO_KEYWORD_ALIAS "alias " | ||
76 | #define TOMOYO_KEYWORD_ALLOW_MOUNT "allow_mount " | 74 | #define TOMOYO_KEYWORD_ALLOW_MOUNT "allow_mount " |
77 | #define TOMOYO_KEYWORD_ALLOW_READ "allow_read " | 75 | #define TOMOYO_KEYWORD_ALLOW_READ "allow_read " |
78 | #define TOMOYO_KEYWORD_DELETE "delete " | 76 | #define TOMOYO_KEYWORD_DELETE "delete " |
@@ -683,20 +681,6 @@ struct tomoyo_aggregator_entry { | |||
683 | }; | 681 | }; |
684 | 682 | ||
685 | /* | 683 | /* |
686 | * tomoyo_alias_entry is a structure which is used for holding "alias" entries. | ||
687 | * It has following fields. | ||
688 | * | ||
689 | * (1) "head" is "struct tomoyo_acl_head". | ||
690 | * (2) "original_name" which is a dereferenced pathname. | ||
691 | * (3) "aliased_name" which is a symlink's pathname. | ||
692 | */ | ||
693 | struct tomoyo_alias_entry { | ||
694 | struct tomoyo_acl_head head; | ||
695 | const struct tomoyo_path_info *original_name; | ||
696 | const struct tomoyo_path_info *aliased_name; | ||
697 | }; | ||
698 | |||
699 | /* | ||
700 | * tomoyo_policy_manager_entry is a structure which is used for holding list of | 684 | * tomoyo_policy_manager_entry is a structure which is used for holding list of |
701 | * domainnames or programs which are permitted to modify configuration via | 685 | * domainnames or programs which are permitted to modify configuration via |
702 | * /sys/kernel/security/tomoyo/ interface. | 686 | * /sys/kernel/security/tomoyo/ interface. |
@@ -809,8 +793,6 @@ int tomoyo_mount_permission(char *dev_name, struct path *path, char *type, | |||
809 | unsigned long flags, void *data_page); | 793 | unsigned long flags, void *data_page); |
810 | /* Create "aggregator" entry in exception policy. */ | 794 | /* Create "aggregator" entry in exception policy. */ |
811 | int tomoyo_write_aggregator_policy(char *data, const bool is_delete); | 795 | int tomoyo_write_aggregator_policy(char *data, const bool is_delete); |
812 | /* Create "alias" entry in exception policy. */ | ||
813 | int tomoyo_write_alias_policy(char *data, const bool is_delete); | ||
814 | /* | 796 | /* |
815 | * Create "initialize_domain" and "no_initialize_domain" entry | 797 | * Create "initialize_domain" and "no_initialize_domain" entry |
816 | * in exception policy. | 798 | * in exception policy. |
@@ -868,16 +850,14 @@ void tomoyo_put_number_union(struct tomoyo_number_union *ptr); | |||
868 | char *tomoyo_encode(const char *str); | 850 | char *tomoyo_encode(const char *str); |
869 | 851 | ||
870 | /* | 852 | /* |
871 | * Returns realpath(3) of the given pathname but ignores chroot'ed root. | 853 | * Returns realpath(3) of the given pathname except that |
872 | * These functions use kzalloc(), so the caller must call kfree() | 854 | * ignores chroot'ed root and does not follow the final symlink. |
873 | * if these functions didn't return NULL. | ||
874 | */ | 855 | */ |
875 | char *tomoyo_realpath(const char *pathname); | 856 | char *tomoyo_realpath_nofollow(const char *pathname); |
876 | /* | 857 | /* |
877 | * Same with tomoyo_realpath() except that it doesn't follow the final symlink. | 858 | * Returns realpath(3) of the given pathname except that |
859 | * ignores chroot'ed root and the pathname is already solved. | ||
878 | */ | 860 | */ |
879 | char *tomoyo_realpath_nofollow(const char *pathname); | ||
880 | /* Same with tomoyo_realpath() except that the pathname is already solved. */ | ||
881 | char *tomoyo_realpath_from_path(struct path *path); | 861 | char *tomoyo_realpath_from_path(struct path *path); |
882 | /* Get patterned pathname. */ | 862 | /* Get patterned pathname. */ |
883 | const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename); | 863 | const char *tomoyo_file_pattern(const struct tomoyo_path_info *filename); |