1

sshd_config などの構成ファイルを指定すると、次のようになります。

[...]
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes
X11Forwarding yes
X11DisplayOffset 10
[...]

構成設定を設定できるコマンドを書きたいと思います。たとえば、 に設定PasswordAuthenticationしたいno。エントリが既に存在する場合は置き換え、存在しない場合はファイルの最後に追加します。

どうすればシェルからそれを行うことができますか?

4

2 に答える 2

2

これを行うために使用できますawk。ここに私が書いたスクリプトがあります:

$ cat setProp.sh
#!/bin/sh

propFile=$1
key=$2
value=$3

awk -v "key=$key" -v "value=$value" '{
    if($1==key) {
        found=1
        print $1" "value
    } else {
        print
    }
}
END {
    if(!found) print key" "value
}' $propFile

使用法:

$ setProp.sh myfile RhostsRSAAuthentication no
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication yes
X11Forwarding yes
X11DisplayOffset 10
于 2012-07-30T12:18:22.237 に答える
0
awk '{if($1~/PasswordAuthentication/){flag=1;if($2~/yes/)$2="no";print $0}else{print}} END{if(flag!=1)print "PasswordAuthentication no"}' temp
于 2012-07-30T12:48:00.940 に答える