tar and /

Daniel Braniss danny at cs.huji.ac.il
Wed Oct 8 06:24:31 UTC 2014


A facts that I did not mention:
	the tar file is created by ports when requesting ‘package’, it now adds
		/usr/local
making extraction difficult for those that use nfs/amd for /usr/local
(the solution is to extract the files in /var/tmp, and re-taring without the /usr/local :-)

to my surprise, even though tar complains that it can’t do the link to /
it actually does the link!!
notice that I mentioned ‘link', not symlink! which of course brings the question why some ports insist
on link, and  not symlink is beyond me.

thanks
	danny

On Oct 7, 2014, at 5:35 PM, Jason Hellenthal <jhellenthal at dataix.net> wrote:

> From tar(1)
> 
>     o       Archive entries can exploit symbolic links to restore files to other directories.
>             An archive can restore a symbolic link to another directory, then use that link to
>             restore a file into that directory.  To guard against this, tar checks each
>             extracted path for symlinks.  If the final path element is a symlink, it will be
>             removed and replaced with the archive entry.  If -U is specified, any intermediate
>             symlink will also be unconditionally removed.  If neither -U nor -P is specified,
>             tar will refuse to extract the entry.
> 
> With that stated you might want to roll through your filesystem with symlinks(1) [sysutils/symlinks]. Use of this to shorten, remove dangling etc..
> 
> DESCRIPTION
>       symlinks  is a useful utility for maintainers of FTP sites, CDROMs, and
>       Linux software distributions.  It scans directories for symbolic  links
>       and lists them on stdout, often revealing flaws in the filesystem tree.
> 
>       Each link is output with a classification of relative,  absolute,  dan-
>       gling, messy, lengthy, or other_fs.
> 
>       relative  links  are those expressed as paths relative to the directory
>       in which the links reside, usually independent of the  mount  point  of
>       the filesystem.
> 
>       absolute links are those given as an absolute path from the root direc-
>       tory as indicated by a leading slash (/).
> 
>       dangling links are those for which the target of the link does not cur-
>       rently  exist.  This commonly occurs for absolute links when a filesys-
>       tem is mounted at other than its customary mount point  (such  as  when
>       the normal root filesystem is mounted at /mnt after booting from alter-
>       native media).
> 
>       messy links are links which contain unnecessary slashes or dots in  the
>       path.  These are cleaned up as well when -c is specified.
> 
>       lengthy links are links which use "../" more than necessary in the path
>       (eg.  /bin/vi -> ../bin/vim) These are only detected when -s is  speci-
>       fied, and are only cleaned up when -c is also specified.
> 
>       other_fs  are those links whose target currently resides on a different
>       filesystem from where symlinks was run (most useful with -r ).
> 
> Hope this helps.
> 
> On Oct 7, 2014, at 1:44, Daniel Braniss <danny at cs.huji.ac.il> wrote:
> 
>> hi,Ian Lepore <ian at FreeBSD.org>
>> for security reasons tar removes the leading /, which is fine.
>> so I can chadir to /var/tmp, and do an extract there. The problem arises when there
>> is a file that is linked to /…
>> Is there some way to drop that leading ‘/‘ too?
>> 
>> cheers,
>> 
>> _______________________________________________
>> freebsd-hackers at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
> 
> -- 
> Jason Hellenthal
> Mobile: +1 (616) 953-0176
> jhellenthal at DataIX.net
> JJH48-ARIN
> 



More information about the freebsd-hackers mailing list