SCCS-vsn: bin/rm/rm.c 4.4
-static char *sccsid = "@(#)rm.c 4.3 (Berkeley) %G%";
+static char *sccsid = "@(#)rm.c 4.4 (Berkeley) %G%";
#include <stdio.h>
#include <sys/types.h>
#include <stdio.h>
#include <sys/types.h>
fflg++;
iflg = 0;
rflg = 0;
fflg++;
iflg = 0;
rflg = 0;
+ uid = getuid();
+ euid = geteuid();
while(argc>1 && argv[1][0]=='-') {
arg = *++argv;
argc--;
while(argc>1 && argv[1][0]=='-') {
arg = *++argv;
argc--;
}
else if(!fflg) {
if (access(arg, 02)<0) {
}
else if(!fflg) {
if (access(arg, 02)<0) {
- printf("rm: override protection %o for %s? ", buf.st_mode&0777, arg);
- if(!yes())
+ if (uid == buf.st_uid || euid == buf.st_uid) {
+ printf("rm: override protection %o for %s? ",
+ buf.st_mode&0777, arg);
+ if(!yes())
+ return;
+ } else {
+ printf("rm: %s: not owner.\n", arg);
}
}
if(unlink(arg) && (fflg==0 || iflg)) {
}
}
if(unlink(arg) && (fflg==0 || iflg)) {