Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Injected-Via-Gmane: http://gmane.org/ To: cygwin AT cygwin DOT com From: Andrew DeFaria Subject: Re: suggestion for cygutils - usermod (was Re: howto change home path in /etc/passwd) Date: Mon, 12 May 2003 14:52:04 -0700 Lines: 87 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet AT main DOT gmane DOT org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4b) Gecko/20030416 Thunderbird/0.1a X-Accept-Language: en-us, en In-Reply-To: Bernard Kash wrote: >"Igor Pechtchanski" wrote in message >news:... > > >>On Mon, 12 May 2003 Sylvain DOT Ferriol AT imag DOT fr wrote: >> >> >> >>>Surlignage Max Bowsher : >>> >>> >>> >>>>Sylvain DOT Ferriol AT imag DOT fr wrote: >>>> >>>> >>>>>Yes , because i don't want to create a shell doing this: grep -v >>>>>$USERNAME /etc/passwd > /etc/passwd >>>>> >>>>> >>>sorry >>>but i don't know with sed how to delete a line starting with $USER >>> >>> >>For the record: "sed '/'$USER':/d". However, grep is perfectly >>adequate. What Max was warning you about was the shell redirection >>mechanism. You'd be safer using something like >> >> cp -p /etc/passwd /etc/passwd-bak-tmp && grep -v $USERNAME >>/etc/passwd-bak-tmp > /etc/passwd && rm -f /etc/passwd-bak-tmp >> >> > >Unfortunately, if you have a user named Homer that uses >'home' as his userid, the grep will eliminate more users >than you might expect. A more realistic example might be >two users 'ted' and 'ed' when modifying user 'ed'. > OK then grep -v "^$USERNAME:" /etc/passwd-bak-tmp ... > >Also, the mkuser -p option expects a base directory, >so if $HOME is "/home/usrname" the resulting record >will set HOME to "/home/username/username" > >I've used awk delete a user from passwd... > >awk -F: -v usr=$USERNAME '{IGNORECASE=1; if($1 != usr) print $1;}' >/etc/passwd > >BB > > > >>>>Care! That will leave you with an empty /etc/passwd. >>>>The shell truncates /etc/passwd BEFORE grep reads it. >>>> >>>> >>>> >>>>>mkpasswd -l -u $USERNAME -p $HOME >> /etc/passwd >>>>> >>>>>sylvain >>>>> >>>>> >>>>Max. >>>> >>>> >>Hope this helps, >> Igor >>-- >> http://cs.nyu.edu/~pechtcha/ >> |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu >>ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com >> |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski >> '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! >> >>Knowledge is an unending adventure at the edge of uncertainty. >> -- Leto II >> >> >> >> > > > -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/