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: ‘.’ “

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *