Date: Mon, 4 Nov 1996 09:31:03 +1000 (EST) From: Clary Harridge <clary@elec.uq.edu.au> To: karpen@ocean.campus.luth.se (Mikael Karpberg) Cc: freebsd-security@FreeBSD.org Subject: Re: /etc/security Message-ID: <199611032331.JAA07164@s4.elec.uq.edu.au> In-Reply-To: <199611011141.MAA08439@ocean.campus.luth.se> from "Mikael Karpberg" at Nov 1, 96 12:41:41 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> ---- > > According to Garrett Wollman: > > <<On Thu, 31 Oct 1996 08:18:58 +0100, sthaug@nethelp.no said: > [... on the find job not handling ' characters either ...] > > >> checking setuid files and devices: > > >> find: /doscopy/sb16/pro_org/i'vebeen.org: illegal path > > >> find: /doscopy/sb16/pro_org/she'llbe.org: illegal path > > > > The best way to deal with this is probably using the `-print0' primary > > to `find' and using a `perl -n0' script to process the results, like: > > > > find ..... -print0 | perl -n0e 'exec "/bin/ls", "-lFgod", <>;' > > Would this solve the spaces problem too, and any other eventualities? > It may do but I don't think it is necessary. The problem is the -X switch of find, why use xargs anyway. The task of the find is to just ls any suid/sgid files. Why complicate it? from the find manual page -X The -X option is a modification to permit find to be safely used in conjunction with xargs(1). If a file name contains any of the delimiting characters used by xargs, a diagnostic message is displayed on standard error, and the file is skipped. The delim- iting characters include single (`` ' '') and double (`` " '') quotes, backslash (``\''), space, tab and newline characters. I read this to say that any suid file with a blank, or other delimiter, in the name will create an error but be skipped from the output. For example s5:/tmp # touch "Name with space" s5:/tmp # chmod 4777 !$ chmod 4777 "Name with space" s5:/tmp # ll !$ ll "Name with space" 0 -rwsrwxrwx 1 root bin 0 Nov 1 09:00 Name with space s5:/tmp # find -X . -xdev -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ \( -perm -u+s -or -perm -g+s \) ? \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ ? \( -perm -u+s -or -perm -g+s \) find: ./Name with space: illegal path s5:/tmp # s5:/tmp # find . -xdev -type f \ \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ \( -perm -u+s -or -perm -g+s \) -a -exec ls -lgTd {} ";" ? \( -perm -u+x -or -perm -g+x -or -perm -o+x \) \ ? \( -perm -u+s -or -perm -g+s \) -a -exec ls -lgTd {} ";" -rwsrwxrwx 1 root bin 0 Nov 1 09:00:04 1996 ./Name with space So let's keep it simple. -- regards Dept. of Electrical Engineering, Clary Harridge University of Queensland, QLD, Australia, 4072 Phone: +61-7-3365-3636 Fax: +61-7-3365-4999 INTERNET: clary@elec.uq.edu.au
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611032331.JAA07164>