Date: Wed, 03 May 2000 15:46:25 +0100 From: Ben Smithurst <ben@scientia.demon.co.uk> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/18373: pkg_delete shouldn't insist on root Message-ID: <E12n0Px-000LKM-00@magnesium.scientia.demon.co.uk>
next in thread | raw e-mail | index | archive | help
>Number: 18373
>Category: bin
>Synopsis: pkg_delete shouldn't insist on root
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed May 3 10:20:03 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Ben Smithurst
>Release: FreeBSD 3.4-STABLE i386
>Organization:
>Environment:
>Description:
It is rather inconvenient that pkg_delete(1) requires the calling user
to be root, as this makes testing a port you have created hard (it
seems you have to be root to allow "make deinstall" do anything). This
restriction seems unnecessary, and removing it certainly can't be a
security risk.
>How-To-Repeat:
make your own port, install it to ~/something, set PKG_DBDIR to
~/somethingelse, try to "make deinstall".
>Fix:
Convert the fatal error to a warning if the -f flag is used (which
conveniently is used by the ports system's "make deinstall").
Index: main.c
===================================================================
RCS file: /usr/cvs/src/usr.sbin/pkg_install/delete/main.c,v
retrieving revision 1.17
diff -u -r1.17 main.c
--- main.c 2000/02/18 07:00:01 1.17
+++ main.c 2000/05/03 14:43:46
@@ -107,8 +107,11 @@
if (pkgs == start)
warnx("missing package name(s)"), usage();
*pkgs = NULL;
- if (!Fake && getuid() != 0)
- errx(1, "you must be root to delete packages");
+ if (!Fake && getuid() != 0) {
+ if (!Force)
+ errx(1, "you must be root to delete packages");
+ warnx("you must be root to delete packages (proceeding anyway)");
+ }
if ((error = pkg_perform(start)) != 0) {
if (Verbose)
warnx("%d package deletion(s) failed", error);
Index: pkg_delete.1
===================================================================
RCS file: /usr/cvs/src/usr.sbin/pkg_install/delete/pkg_delete.1,v
retrieving revision 1.16
diff -u -r1.16 pkg_delete.1
--- pkg_delete.1 2000/02/29 15:13:53 1.16
+++ pkg_delete.1 2000/05/03 14:38:29
@@ -94,7 +94,12 @@
the package.
.It Fl f
Force removal of the package, even if a dependency is recorded or the
-deinstall or require script fails.
+deinstall or require script fails. This flag also allows
+.Nm
+to be run by non-root users, which can be useful for porters if the port has
+been installed to a directory writable by that user, and if
+.Ev PKG_DBDIR
+has been set to a directory writable by that user.
.El
.Pp
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E12n0Px-000LKM-00>
