|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Re: [PATCH] install.sh: install as root with reasonable
There are some problems with this patch as applied on top
of the unstable tree.
Recursive cp's into non-existing subdirs of the tmp
directory fail:
Installing Xen from './install' to '/'...
cp: `/tmp/tmp.RMnWQq3560/etc/init.d/': specified destination directory does not
exist
...
For the patch to work, we'd also need to "mkdir -p" any directory
which is the destination of a "cp" into the tmp dir.
I'm also confused about the bug to start with:
As far as I can see, all Makefiles in the repository install
files into dist/install using /usr/bin/install with properly
set permissions. If one does not, then that would be a bug
and we ought to fix it. /usr/bin/install should also create
parent directories with appropriate permissions. The umask
of the person running the build should have no effect. Have I
missed something? Which files under /lib did you find created
with bad permissions? Perhaps this is a problem with the linux
build installing modules with permissions based on the umask
of the build process?
Cheers,
Emmanuel.
> From: Horms <horms@xxxxxxxxxxxx>
> [...]
> I played around with a few other ideas and I think that the /tmp option
> is a clean and easy solution. Here is a patch that does this.
>
> # HG changeset patch
> # User Horms <horms@xxxxxxxxxxxx>
> # Node ID 651f32f67427ebb167eb2b6d921182bb21da2a7b
> # Parent 340bec28050f360b9d800fb354abfd6b5ee80bd2
> [INSTALL] Fix owner and permissions for installed files
>
> Make sure that installed files have sensible permissions
> and are owned by the user running install, presumably root.
>
> Without this patch, if the user that does the build has
> a restrictive umask, say 0077, and the install is done into /,
> then /lib, will become only accessable to that user.
>
> Signed-Off-By: Horms <horms@xxxxxxxxxxxx>
>
> diff -r 340bec28050f -r 651f32f67427 install.sh
> --- a/install.sh Fri Dec 2 02:16:21 2005
> +++ b/install.sh Fri Dec 2 02:21:15 2005
> @@ -22,19 +22,25 @@
> exit 1
> fi
>
> +tmp="`mktemp -d`"
> +
> echo "Installing Xen from '$src' to '$dst'..."
> -(cd $src; tar -cf - --exclude etc/init.d --exclude etc/hotplug --exclude
> etc/udev * ) | tar -C $dst -xf -
> -cp -fdRL $src/etc/init.d/* $dst/etc/init.d/
> +(cd $src; tar -cf - --exclude etc/init.d --exclude etc/hotplug --exclude
> etc/udev * ) | tar -C "$tmp" -xf -
> +cp -fdRL $src/etc/init.d/* "$tmp"/etc/init.d/
> echo "All done."
>
> [ -x "$(which udevinfo)" ] && \
> UDEV_VERSION=$(udevinfo -V | sed -e 's/^[^0-9]*
> \([0-9]\{1,\}\)[^0-9]\{0,\}/\1/')
>
> if [ -n "$UDEV_VERSION" ] && [ $UDEV_VERSION -ge 059 ]; then
> - cp -f $src/etc/udev/rules.d/*.rules $dst/etc/udev/rules.d/
> + cp -f $src/etc/udev/rules.d/*.rules "$tmp/etc/udev/rules.d/"
> else
> - cp -f $src/etc/hotplug/*.agent $dst/etc/hotplug/
> + cp -f $src/etc/hotplug/*.agent "$tmp/etc/hotplug/"
> fi
> +
> +chmod -R a+rX "$tmp"
> +(cd $tmp; tar -cf - *) | tar --no-same-owner -C "$dst" -xf -
> +rm -r "$tmp"
>
> echo "Checking to see whether prerequisite tools are installed..."
> cd $src/../check
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: [Xen-devel] Re: [PATCH] install.sh: install as root with reasonable permissions,
Emmanuel Ackaouy <=
|
|
|
|
|