system/extras
Revision | 792c19392e68cebf210bc5183e7d0d194e055315 (tree) |
---|---|
Zeit | 2013-09-29 11:15:23 |
Autor | Chih-Wei Huang <cwhuang@linu...> |
Commiter | Chih-Wei Huang |
su: remove the legacy su
It's useless for us.
@@ -1,17 +0,0 @@ | ||
1 | -ifneq ($(SUPERUSER_EMBEDDED),true) | |
2 | -LOCAL_PATH:= $(call my-dir) | |
3 | -include $(CLEAR_VARS) | |
4 | - | |
5 | -LOCAL_SRC_FILES:= su.c | |
6 | - | |
7 | -LOCAL_MODULE:= su | |
8 | - | |
9 | -LOCAL_FORCE_STATIC_EXECUTABLE := true | |
10 | - | |
11 | -LOCAL_STATIC_LIBRARIES := libc | |
12 | - | |
13 | -LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) | |
14 | -LOCAL_MODULE_TAGS := debug | |
15 | - | |
16 | -include $(BUILD_EXECUTABLE) | |
17 | -endif |
@@ -1,190 +0,0 @@ | ||
1 | - | |
2 | - Copyright (c) 2005-2008, The Android Open Source Project | |
3 | - | |
4 | - Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | - you may not use this file except in compliance with the License. | |
6 | - | |
7 | - Unless required by applicable law or agreed to in writing, software | |
8 | - distributed under the License is distributed on an "AS IS" BASIS, | |
9 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
10 | - See the License for the specific language governing permissions and | |
11 | - limitations under the License. | |
12 | - | |
13 | - | |
14 | - Apache License | |
15 | - Version 2.0, January 2004 | |
16 | - http://www.apache.org/licenses/ | |
17 | - | |
18 | - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | |
19 | - | |
20 | - 1. Definitions. | |
21 | - | |
22 | - "License" shall mean the terms and conditions for use, reproduction, | |
23 | - and distribution as defined by Sections 1 through 9 of this document. | |
24 | - | |
25 | - "Licensor" shall mean the copyright owner or entity authorized by | |
26 | - the copyright owner that is granting the License. | |
27 | - | |
28 | - "Legal Entity" shall mean the union of the acting entity and all | |
29 | - other entities that control, are controlled by, or are under common | |
30 | - control with that entity. For the purposes of this definition, | |
31 | - "control" means (i) the power, direct or indirect, to cause the | |
32 | - direction or management of such entity, whether by contract or | |
33 | - otherwise, or (ii) ownership of fifty percent (50%) or more of the | |
34 | - outstanding shares, or (iii) beneficial ownership of such entity. | |
35 | - | |
36 | - "You" (or "Your") shall mean an individual or Legal Entity | |
37 | - exercising permissions granted by this License. | |
38 | - | |
39 | - "Source" form shall mean the preferred form for making modifications, | |
40 | - including but not limited to software source code, documentation | |
41 | - source, and configuration files. | |
42 | - | |
43 | - "Object" form shall mean any form resulting from mechanical | |
44 | - transformation or translation of a Source form, including but | |
45 | - not limited to compiled object code, generated documentation, | |
46 | - and conversions to other media types. | |
47 | - | |
48 | - "Work" shall mean the work of authorship, whether in Source or | |
49 | - Object form, made available under the License, as indicated by a | |
50 | - copyright notice that is included in or attached to the work | |
51 | - (an example is provided in the Appendix below). | |
52 | - | |
53 | - "Derivative Works" shall mean any work, whether in Source or Object | |
54 | - form, that is based on (or derived from) the Work and for which the | |
55 | - editorial revisions, annotations, elaborations, or other modifications | |
56 | - represent, as a whole, an original work of authorship. For the purposes | |
57 | - of this License, Derivative Works shall not include works that remain | |
58 | - separable from, or merely link (or bind by name) to the interfaces of, | |
59 | - the Work and Derivative Works thereof. | |
60 | - | |
61 | - "Contribution" shall mean any work of authorship, including | |
62 | - the original version of the Work and any modifications or additions | |
63 | - to that Work or Derivative Works thereof, that is intentionally | |
64 | - submitted to Licensor for inclusion in the Work by the copyright owner | |
65 | - or by an individual or Legal Entity authorized to submit on behalf of | |
66 | - the copyright owner. For the purposes of this definition, "submitted" | |
67 | - means any form of electronic, verbal, or written communication sent | |
68 | - to the Licensor or its representatives, including but not limited to | |
69 | - communication on electronic mailing lists, source code control systems, | |
70 | - and issue tracking systems that are managed by, or on behalf of, the | |
71 | - Licensor for the purpose of discussing and improving the Work, but | |
72 | - excluding communication that is conspicuously marked or otherwise | |
73 | - designated in writing by the copyright owner as "Not a Contribution." | |
74 | - | |
75 | - "Contributor" shall mean Licensor and any individual or Legal Entity | |
76 | - on behalf of whom a Contribution has been received by Licensor and | |
77 | - subsequently incorporated within the Work. | |
78 | - | |
79 | - 2. Grant of Copyright License. Subject to the terms and conditions of | |
80 | - this License, each Contributor hereby grants to You a perpetual, | |
81 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
82 | - copyright license to reproduce, prepare Derivative Works of, | |
83 | - publicly display, publicly perform, sublicense, and distribute the | |
84 | - Work and such Derivative Works in Source or Object form. | |
85 | - | |
86 | - 3. Grant of Patent License. Subject to the terms and conditions of | |
87 | - this License, each Contributor hereby grants to You a perpetual, | |
88 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable | |
89 | - (except as stated in this section) patent license to make, have made, | |
90 | - use, offer to sell, sell, import, and otherwise transfer the Work, | |
91 | - where such license applies only to those patent claims licensable | |
92 | - by such Contributor that are necessarily infringed by their | |
93 | - Contribution(s) alone or by combination of their Contribution(s) | |
94 | - with the Work to which such Contribution(s) was submitted. If You | |
95 | - institute patent litigation against any entity (including a | |
96 | - cross-claim or counterclaim in a lawsuit) alleging that the Work | |
97 | - or a Contribution incorporated within the Work constitutes direct | |
98 | - or contributory patent infringement, then any patent licenses | |
99 | - granted to You under this License for that Work shall terminate | |
100 | - as of the date such litigation is filed. | |
101 | - | |
102 | - 4. Redistribution. You may reproduce and distribute copies of the | |
103 | - Work or Derivative Works thereof in any medium, with or without | |
104 | - modifications, and in Source or Object form, provided that You | |
105 | - meet the following conditions: | |
106 | - | |
107 | - (a) You must give any other recipients of the Work or | |
108 | - Derivative Works a copy of this License; and | |
109 | - | |
110 | - (b) You must cause any modified files to carry prominent notices | |
111 | - stating that You changed the files; and | |
112 | - | |
113 | - (c) You must retain, in the Source form of any Derivative Works | |
114 | - that You distribute, all copyright, patent, trademark, and | |
115 | - attribution notices from the Source form of the Work, | |
116 | - excluding those notices that do not pertain to any part of | |
117 | - the Derivative Works; and | |
118 | - | |
119 | - (d) If the Work includes a "NOTICE" text file as part of its | |
120 | - distribution, then any Derivative Works that You distribute must | |
121 | - include a readable copy of the attribution notices contained | |
122 | - within such NOTICE file, excluding those notices that do not | |
123 | - pertain to any part of the Derivative Works, in at least one | |
124 | - of the following places: within a NOTICE text file distributed | |
125 | - as part of the Derivative Works; within the Source form or | |
126 | - documentation, if provided along with the Derivative Works; or, | |
127 | - within a display generated by the Derivative Works, if and | |
128 | - wherever such third-party notices normally appear. The contents | |
129 | - of the NOTICE file are for informational purposes only and | |
130 | - do not modify the License. You may add Your own attribution | |
131 | - notices within Derivative Works that You distribute, alongside | |
132 | - or as an addendum to the NOTICE text from the Work, provided | |
133 | - that such additional attribution notices cannot be construed | |
134 | - as modifying the License. | |
135 | - | |
136 | - You may add Your own copyright statement to Your modifications and | |
137 | - may provide additional or different license terms and conditions | |
138 | - for use, reproduction, or distribution of Your modifications, or | |
139 | - for any such Derivative Works as a whole, provided Your use, | |
140 | - reproduction, and distribution of the Work otherwise complies with | |
141 | - the conditions stated in this License. | |
142 | - | |
143 | - 5. Submission of Contributions. Unless You explicitly state otherwise, | |
144 | - any Contribution intentionally submitted for inclusion in the Work | |
145 | - by You to the Licensor shall be under the terms and conditions of | |
146 | - this License, without any additional terms or conditions. | |
147 | - Notwithstanding the above, nothing herein shall supersede or modify | |
148 | - the terms of any separate license agreement you may have executed | |
149 | - with Licensor regarding such Contributions. | |
150 | - | |
151 | - 6. Trademarks. This License does not grant permission to use the trade | |
152 | - names, trademarks, service marks, or product names of the Licensor, | |
153 | - except as required for reasonable and customary use in describing the | |
154 | - origin of the Work and reproducing the content of the NOTICE file. | |
155 | - | |
156 | - 7. Disclaimer of Warranty. Unless required by applicable law or | |
157 | - agreed to in writing, Licensor provides the Work (and each | |
158 | - Contributor provides its Contributions) on an "AS IS" BASIS, | |
159 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | |
160 | - implied, including, without limitation, any warranties or conditions | |
161 | - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | |
162 | - PARTICULAR PURPOSE. You are solely responsible for determining the | |
163 | - appropriateness of using or redistributing the Work and assume any | |
164 | - risks associated with Your exercise of permissions under this License. | |
165 | - | |
166 | - 8. Limitation of Liability. In no event and under no legal theory, | |
167 | - whether in tort (including negligence), contract, or otherwise, | |
168 | - unless required by applicable law (such as deliberate and grossly | |
169 | - negligent acts) or agreed to in writing, shall any Contributor be | |
170 | - liable to You for damages, including any direct, indirect, special, | |
171 | - incidental, or consequential damages of any character arising as a | |
172 | - result of this License or out of the use or inability to use the | |
173 | - Work (including but not limited to damages for loss of goodwill, | |
174 | - work stoppage, computer failure or malfunction, or any and all | |
175 | - other commercial damages or losses), even if such Contributor | |
176 | - has been advised of the possibility of such damages. | |
177 | - | |
178 | - 9. Accepting Warranty or Additional Liability. While redistributing | |
179 | - the Work or Derivative Works thereof, You may choose to offer, | |
180 | - and charge a fee for, acceptance of support, warranty, indemnity, | |
181 | - or other liability obligations and/or rights consistent with this | |
182 | - License. However, in accepting such obligations, You may act only | |
183 | - on Your own behalf and on Your sole responsibility, not on behalf | |
184 | - of any other Contributor, and only if You agree to indemnify, | |
185 | - defend, and hold each Contributor harmless for any liability | |
186 | - incurred by, or claims asserted against, such Contributor by reason | |
187 | - of your accepting any such warranty or additional liability. | |
188 | - | |
189 | - END OF TERMS AND CONDITIONS | |
190 | - |
@@ -1,159 +0,0 @@ | ||
1 | -/* | |
2 | -** | |
3 | -** Copyright 2008, The Android Open Source Project | |
4 | -** | |
5 | -** Licensed under the Apache License, Version 2.0 (the "License"); | |
6 | -** you may not use this file except in compliance with the License. | |
7 | -** You may obtain a copy of the License at | |
8 | -** | |
9 | -** http://www.apache.org/licenses/LICENSE-2.0 | |
10 | -** | |
11 | -** Unless required by applicable law or agreed to in writing, software | |
12 | -** distributed under the License is distributed on an "AS IS" BASIS, | |
13 | -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 | -** See the License for the specific language governing permissions and | |
15 | -** limitations under the License. | |
16 | -*/ | |
17 | - | |
18 | -#define LOG_TAG "su" | |
19 | - | |
20 | -#include <stdio.h> | |
21 | -#include <stdlib.h> | |
22 | -#include <string.h> | |
23 | -#include <sys/types.h> | |
24 | -#include <dirent.h> | |
25 | -#include <errno.h> | |
26 | - | |
27 | -#include <unistd.h> | |
28 | -#include <time.h> | |
29 | - | |
30 | -#include <pwd.h> | |
31 | - | |
32 | -#include <private/android_filesystem_config.h> | |
33 | - | |
34 | - | |
35 | -void pwtoid(const char *tok, uid_t *uid, gid_t *gid) | |
36 | -{ | |
37 | - struct passwd *pw; | |
38 | - pw = getpwnam(tok); | |
39 | - if (pw) { | |
40 | - if (uid) *uid = pw->pw_uid; | |
41 | - if (gid) *gid = pw->pw_gid; | |
42 | - } else { | |
43 | - uid_t tmpid = atoi(tok); | |
44 | - if (uid) *uid = tmpid; | |
45 | - if (gid) *gid = tmpid; | |
46 | - } | |
47 | -} | |
48 | - | |
49 | -void extract_uidgids(const char *uidgids, uid_t *uid, gid_t *gid, gid_t *gids, | |
50 | - int *gids_count) | |
51 | -{ | |
52 | - char *clobberablegids; | |
53 | - char *nexttok; | |
54 | - char *tok; | |
55 | - int gids_found; | |
56 | - | |
57 | - if (!uidgids || !*uidgids) { | |
58 | - *gid = *uid = 0; | |
59 | - *gids_count = 0; | |
60 | - return; | |
61 | - } | |
62 | - clobberablegids = strdup(uidgids); | |
63 | - strcpy(clobberablegids, uidgids); | |
64 | - nexttok = clobberablegids; | |
65 | - tok = strsep(&nexttok, ","); | |
66 | - pwtoid(tok, uid, gid); | |
67 | - tok = strsep(&nexttok, ","); | |
68 | - if (!tok) { | |
69 | - /* gid is already set above */ | |
70 | - *gids_count = 0; | |
71 | - free(clobberablegids); | |
72 | - return; | |
73 | - } | |
74 | - pwtoid(tok, NULL, gid); | |
75 | - gids_found = 0; | |
76 | - while ((gids_found < *gids_count) && (tok = strsep(&nexttok, ","))) { | |
77 | - pwtoid(tok, NULL, gids); | |
78 | - gids_found++; | |
79 | - gids++; | |
80 | - } | |
81 | - if (nexttok && gids_found == *gids_count) { | |
82 | - fprintf(stderr, "too many group ids\n"); | |
83 | - } | |
84 | - *gids_count = gids_found; | |
85 | - free(clobberablegids); | |
86 | -} | |
87 | - | |
88 | -/* | |
89 | - * SU can be given a specific command to exec. UID _must_ be | |
90 | - * specified for this (ie argc => 3). | |
91 | - * | |
92 | - * Usage: | |
93 | - * su 1000 | |
94 | - * su 1000 ls -l | |
95 | - * or | |
96 | - * su [uid[,gid[,group1]...] [cmd]] | |
97 | - * E.g. | |
98 | - * su 1000,shell,net_bw_acct,net_bw_stats id | |
99 | - * will return | |
100 | - * uid=1000(system) gid=2000(shell) groups=3006(net_bw_stats),3007(net_bw_acct) | |
101 | - */ | |
102 | -int main(int argc, char **argv) | |
103 | -{ | |
104 | - struct passwd *pw; | |
105 | - uid_t uid, myuid; | |
106 | - gid_t gid, gids[10]; | |
107 | - | |
108 | - /* Until we have something better, only root and the shell can use su. */ | |
109 | - myuid = getuid(); | |
110 | - if (myuid != AID_ROOT && myuid != AID_SHELL) { | |
111 | - fprintf(stderr,"su: uid %d not allowed to su\n", myuid); | |
112 | - return 1; | |
113 | - } | |
114 | - | |
115 | - if(argc < 2) { | |
116 | - uid = gid = 0; | |
117 | - } else { | |
118 | - int gids_count = sizeof(gids)/sizeof(gids[0]); | |
119 | - extract_uidgids(argv[1], &uid, &gid, gids, &gids_count); | |
120 | - if(gids_count) { | |
121 | - if(setgroups(gids_count, gids)) { | |
122 | - fprintf(stderr, "su: failed to set groups\n"); | |
123 | - return 1; | |
124 | - } | |
125 | - } | |
126 | - } | |
127 | - | |
128 | - if(setgid(gid) || setuid(uid)) { | |
129 | - fprintf(stderr,"su: permission denied\n"); | |
130 | - return 1; | |
131 | - } | |
132 | - | |
133 | - /* User specified command for exec. */ | |
134 | - if (argc == 3 ) { | |
135 | - if (execlp(argv[2], argv[2], NULL) < 0) { | |
136 | - int saved_errno = errno; | |
137 | - fprintf(stderr, "su: exec failed for %s Error:%s\n", argv[2], | |
138 | - strerror(errno)); | |
139 | - return -saved_errno; | |
140 | - } | |
141 | - } else if (argc > 3) { | |
142 | - /* Copy the rest of the args from main. */ | |
143 | - char *exec_args[argc - 1]; | |
144 | - memset(exec_args, 0, sizeof(exec_args)); | |
145 | - memcpy(exec_args, &argv[2], sizeof(exec_args)); | |
146 | - if (execvp(argv[2], exec_args) < 0) { | |
147 | - int saved_errno = errno; | |
148 | - fprintf(stderr, "su: exec failed for %s Error:%s\n", argv[2], | |
149 | - strerror(errno)); | |
150 | - return -saved_errno; | |
151 | - } | |
152 | - } | |
153 | - | |
154 | - /* Default exec shell. */ | |
155 | - execlp("/system/bin/sh", "sh", NULL); | |
156 | - | |
157 | - fprintf(stderr, "su: exec failed\n"); | |
158 | - return 1; | |
159 | -} |