1

//etc/fstabで変更しようとしています。この質問のように、しかし、その質問の解決策は私にとってはうまくいきません。sedawk

またはマウントポイントにnodev(and nosuid) オプションを追加する必要があります。nfsnfs4

私は働いています。

awk '$4!~/nodev/&&$3~"nfs"{$4=$4",nodev"}1' OFS="\t" /etc/fstab > /etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab

awk '$4!~/nosuid/&&$3~"nfs"{$4=$4",nosuid"}1' OFS="\t" /etc/fstab > /etc/fstab.tmp && mv /etc/fstab.tmp /etc/fstab

ただし、既存の空白を消去し、単一のタブに置き換えます。私の質問は次のとおりです。この変更を邪魔にならない方法で行うにはどうすればよいですか? この答えは有望に見えましたが、自分の用途に適応させるのに十分なほどよく理解していません。

sedまたは以外のソリューションをawk受け入れますが、その他のツールはデフォルトの Red Hat/CentOS 環境に存在する必要があります (キックスタートの %post 中)。

4

2 に答える 2

2

残念ながら、awkフィールドのいずれかを変更すると、空白をマンジする傾向があります。しかし、これはsedを使用すると非常に簡単です。sed が\S空白以外の表現をサポートしている場合は、次のことができます。

sed 's/\S\S*/&,nodev/4',nodev4 列目に追加します。だから試してください:

sed -e '/nfs/{/nodev/!s/\S\S*/&,nodev/4}' -e '/nfs/{/nosuid/!s/\S\S*/&,nosuid/4}'

sed で が許可されていない場合は、代わり/Sに を使用し[^ ]ます (実際のスペースと括弧内のタブ)。これは、 の一致をnfs3 列目に制限しません。演習は読者に任せます。

于 2013-01-23T23:49:05.173 に答える
1

これは少し遅れていますが、KickStart ファイルで /etc/fstab を変更するために使用する方法を次に示します。

    sed -i '/tmp\s/ s/defaults/rw,nodev,noexec,nosuid/' /etc/fstab

基本的に、 の行の/tmp後に少なくとも 1 つのスペースが続く場合、単語defaultsを で置換しrw,nodev,noexec,nosuidます。大騒ぎする必要はありません。

于 2014-07-31T17:14:22.320 に答える