From owner-freebsd-bugs@FreeBSD.ORG Sun Sep 26 20:50:08 2010 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B15DE1065696 for ; Sun, 26 Sep 2010 20:50:08 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 4C3218FC1C for ; Sun, 26 Sep 2010 20:50:08 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o8QKo8mc085847 for ; Sun, 26 Sep 2010 20:50:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o8QKo8sx085842; Sun, 26 Sep 2010 20:50:08 GMT (envelope-from gnats) Date: Sun, 26 Sep 2010 20:50:08 GMT Message-Id: <201009262050.o8QKo8sx085842@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: jhell Cc: Subject: Re: misc/150972: symbolic link bug X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: jhell List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Sep 2010 20:50:08 -0000 The following reply was made to PR misc/150972; it has been noted by GNATS. From: jhell To: "Kevin K. Han" Cc: freebsd-gnats-submit@freebsd.org Subject: Re: misc/150972: symbolic link bug Date: Sun, 26 Sep 2010 16:40:30 -0400 On 09/26/2010 14:24, Kevin K. Han wrote: > Create a directory on the root folder, for example ("/whatever"). I assume ``root'' creates this directory. > Switch to user's home directory ("cd /usr/home/username") ... from now onwards, work in this directory: This is a normal user account != uid/0 > Create a symbolic link from inside a user's home ("ln -s /whatever .") If the above is true then this symlink is not uid/gid 0 > Execute this: ("chown -R username:username whatever") You have now just given yourself permission to remove this folder, but ok lets continue. > Try to delete it using ("rm whatever")... it will say it is a directory. It is still not deleted! Ok ( rm whatever ) symlink gone and directory /whatever still exists. > Then, try to delete using ("rm -r -f whatever/"), no errormessage, BUT It is still there! rm -rf whatever/ rm: whatever/: Permission denied ls -ld whatever lrwxr-x--- 1 jhell jhell 10 Sep 26 16:30 whatever -> /whatever/ ls -ld /whatever drwxr-xr-x 2 jhell jhell 512 Sep 26 16:23 /whatever > Then, again, try the same thing ("rm whatever")... It is GONE, INCLUDING the original at "/whatever" !!! rm whatever ls -ld whatever ls: whatever: No such file or directory ls -ld /whatever drwxr-xr-x 2 jhell jhell 512 Sep 26 16:23 /whatever There is a different meaning for symlinks when you specify a trailing slash as where a rm /path/to/symlink and rm /path/to/symlink/ having different meanings and this can be expected and is proper use. When you did "( rm -r -f whatever/ )" you were actually telling rm to remove the /whatever directory instead of the symlink so as you went on you had never checked whether that directory was still there before you continued to try and remove the symlink. As a normal user you should not be able to remove /whatever even if it is owned by you. Are you using a ZFS filesystem or a UFS filesystem ? -- jhell,v