sed
変更するスクリプトがあります/etc/shadow
。実際の変更は重要ではありません。ただ例を挙げます。
root@device:~ sed -i 's/root:\(.*\):0:0/root:\1:10:0/' /etc/shadow
sed: can't create temp file '/etc/passwdH5HWP7': Permission denied
出力が示すように、一部の権限エラーがあるようですが、コマンドを実行しています。root
。
組み込みディストリビューションがsed
使用されます。BusyBox v1.22.1
既定のフォルダで例を試してもエラーは発生しません。そして、/etc/shadow
テキストエディタを介しても正常に編集が可能です。
sed
root以外のユーザーとしてファイルを作成していますか?
答え1
/
これは、(contain /etc
)が読み取り専用ファイルシステムですが、シンボリックリンクと読み取り/書き込みファイルシステムに他の動的ファイルがある/etc/shadow
ため/etc/passwd
です。
shadow
これにより、直接編集してファイルを送信できますpasswd
。sed -i
実装が実際に更新されていないため失敗します。代わりに、一時ファイルを作成し、変更を記録し、元のファイルを一時コピーに置き換えます。表示されるエラーメッセージは、sed
(一時)ファイルを書き込めないことを示します/etc/passwdH5HWP7
。
解決策?-i
一時ファイルの場所を直接使用して制御しないか、-i
フラグのファイル名を指定してください。どちらの場合も、読み取りおよび書き込みアクセス権がある場所にファイル名を指定する必要があります。