Viを開かないで管理者権限のファイルに書き込む

今週からようやく梅雨らしくなってきました。紫陽花がいい色になって少し嬉しい今日この頃です。

さて季節とは全く関係ないのですが、今日たまたまこちらの記事「MacからNASとかWindowsの共有フォルダへのアクセスが妙に遅いのを解決する」を見ていて気づいたことがありました。

Viは難しい

近年Macを使う人がとても増えましたよね。MacはサーバOSとしてよく使われるLinuxをベースにしていますので、少し特別なシステム設定を変更したいとき、多くの人にとってはあまり馴染みの無い、ターミナルを開いて操作をしなければならない場面があります。

それがその記事で紹介されているような、/etc/sysctl.conf というファイルに net.inet.tcp.delayed_ack=0 という文字を書き込むといった操作ですね。具体的にviというエディタでファイルを開いて編集する手順が紹介されていることも、同様に多いです。

こういった場合、サーバのオペレーションに慣れている人はいいのですが、慣れない人にとってviという特殊なエディタを使うことはひどく敷居が高いと思います。その記事のコメント欄もviの使い方説明になってしまっていたほど、ちょっと普通の「メモ帳」とか「テキストエディット」とかとは操作の仕方が違うのです。

teeを使う

それよりはただ1行追記するだけでよいのであれば、ターミナルから以下のように入力します。(エンターキーを押した後、パスワードの入力も必要です)

echo 'net.inet.tcp.delayed_ack=0' | sudo tee -a /etc/sysctl.conf

このようにすれば、例え書き込みにroot権限(強い管理者の権限)が必要なファイルであっても、viエディタを開くことなく追記することができます。