Re: viでの強制上書きについて
in article 3990052news.pl@insigna.ie.u-ryukyu.ac.jp, Shinji KONO at
kono@ie.u-ryukyu.ac.jp wrote on 04.7.28 08:06 PM:
> 本当に権限がなければ上書きできないので、そういうことなんじゃないかと。
> owner が root だったとかさ。
ownerは実行者(私)ですので、権限はあります。
in article 86wu0onx19.fsf@poe.mob.or.jp, IKEDA Kenji at noroi-fj@mob.or.jp
wrote on 04.7.28 09:20 PM:
> 単に vi と nvi(などの viクローン)の仕様の差でしょう。
> nvi/common/exf.c の file_write() の当該部分には、
>
> /*
> * If the user owns the file but does not
> * have write permission on it, grant it
> * automatically for the duration of the
> * opening of the file, if possible.
> */
>
> などというコメントがあり、chmod して write して chmod し戻してます。
> オリジナルはそんなことしてくれないからエラーになる。
「そんなことしてくれない」のであれば、「w」コマンドと「w!」コマンドの違いって
何なのでしょう?
in article ce8ec1$8gv$1@caraway.media.kyoto-u.ac.jp, SAITOH Akinori at
saitoh@kankyo-u.ac.jp.nospam wrote on 04.7.28 11:48 PM:
> viewで起動したときなどviをreadonlyモードで動かしているときには、
> うっかり、ZZなどでファイルを書き換えないように、書き込みコマンドを
> 受け付けないようになっています。
「ZZ」「w」「wq」など、普段書き込みに使用するコマンドで書き込めないのは当然で
すが、そのために「w!」があるんじゃないんでしょうか?
> :w!
> は、書き込みを行いますが、実際に成功するかどうかはOS側の問題です。
Solarisのviのmanページでは、
:w!CR forced write, if permission originally not valid
とあります。普通に読めば、これはreadonlyであっても強制的に書き込む、と考えら
れますから、内部でchmodするしかないと思うんですけど。
ちなみに、rootであれば、w!は問題なく強制書き込みできます。
ーー
川部
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735