From owner-freebsd-bugs@FreeBSD.ORG Wed Jun 15 21:32:31 2005 Return-Path: X-Original-To: freebsd-bugs@freebsd.org Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CF9E216A41C for ; Wed, 15 Jun 2005 21:32:31 +0000 (GMT) (envelope-from rionda@gufi.org) Received: from vsmtp2.tin.it (vsmtp2.tin.it [212.216.176.222]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8DEEA43D48 for ; Wed, 15 Jun 2005 21:32:31 +0000 (GMT) (envelope-from rionda@gufi.org) Received: from kaiser.sig11.org (82.48.161.190) by vsmtp2.tin.it (7.0.027) id 42AFD7C3000618B3 for freebsd-bugs@freebsd.org; Wed, 15 Jun 2005 23:32:30 +0200 Received: by kaiser.sig11.org (Postfix, from userid 1000) id 61E51610F; Wed, 15 Jun 2005 23:32:27 +0200 (CEST) Date: Wed, 15 Jun 2005 23:32:27 +0200 From: Matteo Riondato To: freebsd-bugs@freebsd.org Message-ID: <20050615213227.GQ1053@kaiser.sig11.org> Mail-Followup-To: Matteo Riondato , freebsd-bugs@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Subject: [rionda@gufi.org: Re: kern/63954: devfs loses permissions] X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jun 2005 21:32:31 -0000 GNATS keeps on eating my followups.. :( ----- Forwarded message from Matteo Riondato ----- From: Matteo Riondato To: bug-followup@FreeBSD.org, edwin@mavetju.org, mmolteni@cisco.com, freebsd-rc@freebsd.org Date: Wed, 15 Jun 2005 18:27:44 +0200 Subject: Re: kern/63954: devfs loses permissions Patch for this against /etc/rc.d/devfs follows and can be found at http://www.riondabsd.net/diff/devfs.diff. Please note that this patch includes fix for PR bin/65693 (wildcarded device names in devfs.conf ). I hope someone will pick this up and commit the patch. --- devfs.old Wed Jun 8 22:50:32 2005 +++ devfs Wed Jun 15 14:50:37 2005 @@ -37,25 +37,44 @@ read_devfs_conf } + +do_action() +{ + case "$1" in + l*) if [ -c $2 -a ! -e $3 ]; then + ln -fs $2 $3 + fi + ;; + o*) if [ -c $2 ]; then + chown $3 $2 + fi + if echo $3 | grep -q : ; then + uid=${3%%:*} + gid=${3##*:} + devfs rule add path $2 user $uid group $gid + devfs rule apply path $2 user $uid group $gid + else + devfs rule add path $2 user $3 + devfs rule apply path $2 user $3 + fi + ;; + p*) if [ -c $2 ]; then + chmod $3 $2 + fi + devfs rule add path $2 mode $3 + devfs rule apply path $2 + ;; + esac +} + read_devfs_conf() { if [ -r /etc/devfs.conf ]; then cd /dev while read action device parameter; do - case "${action}" in - l*) if [ -c ${device} -a ! -e ${parameter} ]; then - ln -fs ${device} ${parameter} - fi - ;; - o*) if [ -c ${device} ]; then - chown ${parameter} ${device} - fi - ;; - p*) if [ -c ${device} ]; then - chmod ${parameter} ${device} - fi - ;; - esac + for dev_name in ${device}; do + do_action ${action} ${dev_name} ${parameter} + done done < /etc/devfs.conf fi } Best Regards -- Rionda aka Matteo Riondato Disinformato per default G.U.F.I. Staff Member (http://www.gufi.org) FreeSBIE Developer (http://www.freesbie.org)