FreeBSDでLinuxのようにsed -iするとエラーがでますの。

こないだのFreeBSDの初期設定を、何時ぞやのLinuxの最初にこれくらいはやっとけスクリプトみたいにスクリプトにしようと思ってちょこちょこ作っていたものの、sedでエラーが出て途中で終わってたのだ。

何だか突然やる気になって調べてみたらこんなことで可能になった。

sed -i "s/^PermitRootLogin no/PermitRootLogin yes/" /etc/ssh/sshd_config
sed: 1: "/etc/ssh/sshd_config": bad flag in substitute command: 'h'

こんな感じのエラーになっていたのだが。

 

 sed -i "" s/^#PermitRootLogin\ no/PermitRootLogin\ yes/g /etc/ssh/sshd_config

これでいけた、ダブルクオテーションがいるみたい。
空白の前は円マークですの。
それでは実際に使ってみよう。

sudo cat /etc/ssh/sshd_config | grep "PermitRootLogin yes"
PermitRootLogin yes
sed -i "" s/PermitRootLogin\ yes/PermitRootLogin\ no/g /etc/ssh/sshd_config
sudo cat /etc/ssh/sshd_config | grep "PermitRootLogin no"
PermitRootLogin no

このとおり。
こんな感じでいけちゃいました。
これでスクリプト作成が捗るのじゃあ。

しばらくは前回に引き続いてユーザー権限でできるもん!シリーズをやろうかと思ってたけど、やっぱり明日の風は明日吹くのだ。

 

参考サイト
MY MCP FreeBSD sed -i Error “sed: 1: “FILE”: bad flag in substitute command: ‘.’ “

 

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です