truss says it does not use O_NOFOLLOW.

Olga

2010/3/12 James Carlson <carlsonj at workingcode.com>:
> ????? ???????????? wrote:
>> 2010/3/12 Christine Tran <christine.tran at gmail.com>:
>>> 2010/3/12 ????? ???????????? <olga.kryzhanovska at gmail.com>:
>>>> This one, right?
>>>>       -i[SUFFIX], --in-place[=SUFFIX]
>>>>              edit files in place (makes backup if extension supplied)
>>>>
>>>> -i copies the content to a temporary backup file, truncates the
>>>> original (keeping permissions, ACL flags etc) and starts processing
>>>> from backup to original file, right?
>>>>
>>>>
>>>> Which purpose has this option (I can't look at the GPL code without
>>>> getting tainted by the GPL):
>>>> --follow-symlinks
>>>>              follow symlinks when processing in place
>>> Yes, that's the one.
>>
>> I understand now how -i works but I am puzzled about --follow-symlinks
>> - why is it required?
>
> I would expect that it uses O_NOFOLLOW by default, and --follow-symlinks
> is there to allow the user to disable that feature if he's really sure
> he wants to do that.
>
> If you were running the program as a privileged user you might want to
> have this flag enabled by default so that if someone sneaks in a symlink
> to /etc/passwd in place of one of the files you thought you were
> processing, you don't accidentally do something you'll regret later.
>
> --
> James Carlson         42.703N 71.076W         <carlsonj at workingcode.com>
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     olga.kryzhanovska at gmail.com   \-`\-'----.
 `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
      /\/\                                     /\/\
      `--`                                      `--`

Reply via email to