BUG? in sys_access() in Linux 2.2.x when euid!=0 and ruid==0

J. Anastasov (uli@linux.tu-varna.acad.bg)
Sun, 4 Apr 1999 12:33:22 +0300 (EEST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--214042346-2023312364-923218402=:7915
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

Is this a minor bug or feature ?

access(fnm,mask) returns EACCES when euid!=0 and ruid==0 if
mask contains R_OK, W_OK or X_OK.

Why fs/open.c:sys_access() denies access for root in kernels
2.2.x ? I use attached test program. My patch is:

fs/open.c:sys_access.c():

if (current->uid)
cap_clear(current->cap_effective);

must be changed to:

if (current->uid)
cap_clear(current->cap_effective);
else
current->cap_effective = current->cap_permitted;

--214042346-2023312364-923218402=:7915
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="test_access.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.9904041233221.7915@linux.tu-varna.acad.bg>
Content-Description: More info in test program!
Content-Disposition: attachment; filename="test_access.c"

LyogU3ltcHRvbTogCQkJCQkJCQkqLw0KLyogCWluIExpbnV4LTIuMi4xIC0g
NSBhY2Nlc3MoKSBmYWlscyB3aXRoIEVBQ0NFUyBmb3IgdXNlciByb290CSov
DQovKgl3aGVuIEVVSUQhPTAgYW5kIFJVSUQ9PTAuIGN1cnJlbnQtPmNhcF9l
ZmZlY3RpdmUJCSovDQovKglpcyAwIGFuZCBtdXN0IGJlIGxvYWRlZCB3aXRo
IGN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQJCSovDQovKgliZWZvcmUgcGVybWlz
c2lvbiBjaGVja3MJCQkJCSovDQovKgkJCQkJCQkJCSovDQovKiBQYXRjaCBm
b3IgTGludXggMi4yLng6CQkJCQkJKi8NCi8qCQkJCQkJCQkJKi8NCi8qIGZz
L29wZW4uYywgc3lzX2FjY2VzcygpOgkJCQkJCSovDQovKgkJCQkJCQkJCSov
DQovKglpZiAoY3VycmVudC0+dWlkKQkJCQkJCSovDQovKgkJY2FwX2NsZWFy
KGN1cnJlbnQtPmNhcF9lZmZlY3RpdmUpOwkJCSovDQovKgkJCQkJCQkJCSov
DQovKgltdXN0IGJlIGNoYW5nZWQgdG8gKFRFU1RFRCk6CQkJCQkqLw0KLyoJ
CQkJCQkJCQkqLw0KLyoJaWYgKGN1cnJlbnQtPnVpZCkJCQkJCQkqLw0KLyoJ
CWNhcF9jbGVhcihjdXJyZW50LT5jYXBfZWZmZWN0aXZlKTsJCQkqLw0KLyoJ
ZWxzZQkJCQkJCQkJKi8NCi8qCQljdXJyZW50LT5jYXBfZWZmZWN0aXZlID0g
Y3VycmVudC0+Y2FwX3Blcm1pdHRlZDsJKi8NCi8qCQkJCQkJCQkJKi8NCi8q
IFRlc3RzOgkJCQkJCQkJKi8NCi8qIDIuMC4zNQlPSwkJCQkJCQkqLw0KLyog
Mi4wLjM2CU9LCQkJCQkJCSovDQovKiAyLjEuKglOb3QgdGVzdGVkLCBtYXkg
YmUgd2hlbiBjYXBfKiBhcmUgYWRkZWQgaW4gdGhlIGtlcm5lbAkqLw0KLyog
Mi4yLjEJRkFJTEVEKEJVRz8pCQkJCQkJKi8NCi8qIDIuMi4yCUZBSUxFRChC
VUc/KQkJCQkJCSovDQovKiAyLjIuMwlGQUlMRUQoQlVHPykJCQkJCQkqLw0K
LyogMi4yLjQJRkFJTEVEKEJVRz8pCQkJCQkJKi8NCi8qIDIuMi41CUZBSUxF
RChCVUc/KQkJCQkJCSovDQovKiBPdGhlciB1bmljZXMJT0sJCQkJCQkJKi8N
Ci8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi8qIE5leHQgaXMg
dGhlIHRlc3QgcHJvZ3JhbQkJCQkJCSovDQovKiB0ZXN0X2FjY2Vzcy5jLCBK
LiBBbmFzdGFzb3YJCQkJCQkqLw0KLyogVGVzdCBpZiBhY2Nlc3MoKSByZXR1
cm5zIEVBQ0NFUyBmb3Igcm9vdCBpbiBzZXRldWlkIHByb2dyYW0sIGkuZS4g
CSovDQovKiB3aGVuIGV1aWQgIT0gMCBhbmQgcnVpZCA9PSAwCQkJCQkJKi8N
Ci8qCQkJCQkJCQkJKi8NCi8qIFVzYWdlOgkJCQkJCQkJKi8NCi8qCWdjYyAt
byB0ZXN0X2FjY2VzcyB0ZXN0X2FjY2Vzcy5jCQkJCSovDQovKgkuL3Rlc3Rf
YWNjZXNzCQkJCQkJCSovDQoNCg0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5j
bHVkZSA8ZXJybm8uaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRl
IDxzdHJpbmcuaD4NCg0KLyogVXNhZ2U6IHRlc3RfYWNjZXNzIGZpbGUJKi8N
Cg0KLyogVVNFUl9JRDogYW55IFVJRCE9MAkqLw0KI2RlZmluZQlVU0VSX0lE
CTk5DQovKiBJTlZBTElEX0dJRDogcm9vdCBtdXN0IG5vdCBiZSBtZW1iZXIg
b2YgZ3JvdXAgd2l0aCBHSUQ9SU5WQUxJRF9HSUQJKi8NCiNkZWZpbmUJSU5W
QUxJRF9HSUQJNDMyMQ0KDQppbnQgdGVzdChjaGFyICpmbm0saW50IG1hc2sp
DQp7DQppbnQgcmM7DQoNCglyYyA9IGFjY2Vzcyhmbm0sbWFzayk7DQoJaWYg
KHJjIDwgMCkgew0KCQlpZiAoRUFDQ0VTID09IGVycm5vKSB7DQoJCQlwcmlu
dGYoImFjY2VzcyglcywlZCk6ICVzLCBUSElTIElTIEEgQlVHXG4iLGZubSxt
YXNrLHN0cmVycm9yKGVycm5vKSk7DQoJCX0gZWxzZSB7DQoJCQlwZXJyb3Io
ImFjY2VzcygpIik7DQoJCX0NCgl9IGVsc2Ugew0KCQlwcmludGYoImFjY2Vz
cyglcywlZCk6IE9LXG4iLGZubSxtYXNrKTsNCgl9DQoJcmV0dXJuIHJjOw0K
fQ0KaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQ0Kew0KaW50IHJj
Ow0KRklMRSAqZnA7DQpjaGFyIHRtcFs4MF07DQpjaGFyICpmbm07DQoNCglp
ZiAoZ2V0dWlkKCkgfHwgZ2V0ZXVpZCgpKSB7DQoJCXByaW50ZigiVGhpcyBw
cm9ncmFtIG11c3QgYmUgc3RhcnRlZCBhcyByb290XG4iKTsNCgkJcmV0dXJu
IDE7DQoJfQ0KCWlmIChhcmdjID4gMSkgew0KCQlmbm0gPSBhcmd2WzFdOw0K
CX0gZWxzZSB7DQoJCWZubSA9IGFyZ3ZbMF07DQoJfQ0KCS8qIFNldCBvd25l
cnNoaXA6IFVJRCE9MCBhbmQgR0lEIT0wCSovDQoJcmMgPSBjaG93bihmbm0s
VVNFUl9JRCxJTlZBTElEX0dJRCk7DQoJaWYgKHJjIDwgMCkgew0KCQlwZXJy
b3IoImNob3duKCkiKTsNCgkJcmV0dXJuIDE7DQoJfQ0KCS8qIEdyYW50IGFj
Y2VzcyBmb3IgVVNFUl9JRDpJTlZBTElEX0dJRCwgbm9uZSBmb3Igb3RoZXJz
CSovDQoJcmMgPSBjaG1vZChmbm0sMDU1MCk7DQoJaWYgKHJjIDwgMCkgew0K
CQlwZXJyb3IoImNobW9kKCkiKTsNCgkJcmV0dXJuIDE7DQoJfQ0KCS8qIENo
YW5nZSBFVUlEIG9ubHkJKi8NCglyYyA9IHNldGV1aWQoVVNFUl9JRCk7DQoJ
aWYgKHJjIDwgMCkgew0KCQlwZXJyb3IoInNldGV1aWQoKSIpOw0KCQlyZXR1
cm4gMTsNCgl9DQoJcHJpbnRmKCJFVUlEPSVkLCBSVUlEPSVkXG4iLChpbnQp
Z2V0ZXVpZCgpLChpbnQpZ2V0dWlkKCkpOw0KI2lmZGVmCV9fbGludXhfXw0K
CS8qIGdyZXAgZm9yICJDYXAiIGluIC9wcm9jL3NlbGYvc3RhdHVzCSovDQoJ
ZnAgPSBmb3BlbigiL3Byb2Mvc2VsZi9zdGF0dXMiLCJyIik7DQoJaWYgKGZw
KSB7DQoJCXdoaWxlIChmZ2V0cyh0bXAsc2l6ZW9mKHRtcCktMSxmcCkpIHsN
CgkJCWlmICghc3RybmNhc2VjbXAodG1wLCJDYXAiLDMpKSB7DQoJCQkJcHJp
bnRmKCIlcyIsdG1wKTsNCgkJCX0NCgkJfQ0KCQlmY2xvc2UoZnApOw0KCX0N
CiNlbmRpZg0KCS8qIEhlcmUgRVVJRD1VU0VSX0lELCBSVUlEPTAJCQkqLw0K
CS8qIGNhcF9lZmZlY3RpdmUgaXMgY2xlYXJlZCBhbmQJCQkqLw0KCS8qIGNh
cF9wZXJtaXR0ZWQgYXJlIG5vdCBjaGFuZ2VkIChSVUlEPTApIGJ5CSovDQoJ
Lyogc2V0ZXVpZChVU0VSX0lEKQkJCQkqLw0KCS8qIE5vdyBjaGVjayB3aXRo
IGFjY2VzcygpIHdoaWxlIFJVSUQ9MAkJKi8NCgkvKiBXZSBleHBlY3QgZnVs
bCBhY2Nlc3MgZm9yIHJvb3QJCSovDQoJcmMgPSAwOw0KCXJjICs9IHRlc3Qo
Zm5tLEZfT0spOw0KCXJjICs9IHRlc3QoZm5tLFJfT0spOw0KCXJjICs9IHRl
c3QoZm5tLFdfT0spOw0KCXJjICs9IHRlc3QoZm5tLFhfT0spOw0KCWlmICgh
cmMpIHsNCgkJcHJpbnRmKCJPS1xuIik7DQoJfQ0KCXJldHVybiAwOw0KfQ0K

--214042346-2023312364-923218402=:7915--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/