ルート資格情報を使用してファイルに書き込むことはできません。

ルート資格情報を使用してファイルに書き込むことはできません。

iceweaselアイコンのエラーを修正するために小さなスクリプトを起動しようとしています。

ここにスクリプトがあります。回避策として見つけることができます。バグレポートから

for n in 16 32 48; do inkscape -z -w $n -h $n -e 
/usr/share/iceweasel/browser/chrome/icons/default/default${n}.png 
/usr/share/icons/hicolor/scalable/apps/iceweasel.svg; done

for n in 16 32 48 64 128; do inkscape -z -w $n -h $n -e 
/usr/share/icons/hicolor/${n}x${n}/apps/iceweasel.png 
/usr/share/icons/hicolor/scalable/apps/iceweasel.svg; done

tempiceweasel.sh上記の行を含むファイルを作成しました。実行権限を付与しました。

# chmod +x tempiceweasel.sh
# ls -la tempiceweasel.sh
-rwxr-xr-x 1 user user 349 mars   9 16:33 tempiceweasel.sh

スクリプトを起動すると権限エラーが発生します。

# ./scripts/tempiceweasel.sh
Nothing to do!
./scripts/tempiceweasel.sh: ligne 3: /usr/share/iceweasel/browser/chrome/icons/default/default16.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 4: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 3: /usr/share/iceweasel/browser/chrome/icons/default/default32.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 4: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 3: /usr/share/iceweasel/browser/chrome/icons/default/default48.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 4: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 7: /usr/share/icons/hicolor/16x16/apps/iceweasel.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 8: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 7: /usr/share/icons/hicolor/32x32/apps/iceweasel.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 8: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 7: /usr/share/icons/hicolor/48x48/apps/iceweasel.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 8: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 7: /usr/share/icons/hicolor/64x64/apps/iceweasel.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 8: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée
Nothing to do!
./scripts/tempiceweasel.sh: ligne 7: /usr/share/icons/hicolor/128x128/apps/iceweasel.png: Permission non accordée
./scripts/tempiceweasel.sh: ligne 8: /usr/share/icons/hicolor/scalable/apps/iceweasel.svg: Permission non accordée

このディレクトリにファイルを書き込む権限がないようです。なぜrootとして実行されているのか理解できず、これらのファイルに対する権限は次のとおりです。

-rw-r--r-- 1 root root   93 févr. 14 14:25 default16.png
-rw-r--r-- 1 root root  325 févr. 14 14:25 default32.png
-rw-r--r-- 1 root root 1845 févr. 14 14:25 default48.png

なぜこのファイルに書き込めないのかご存知ですか?

ベストアンサー1

コピーして貼り付けるコマンドは、1行のコマンドでなければなりません。代わりに3つの行に分けられます。したがって、各コマンドは実行するコマンドと同じです。

# for n in 16 32 48; do inkscape -z -w $n -h $n -e
# /usr/share/iceweasel/browser/chrome/icons/default/default${n}.png 
# /usr/share/icons/hicolor/scalable/apps/iceweasel.svg; done

したがって、デフォルトでは、ループの各ステップでinkscapeを実行しようとした後に実行されます。イメージファイルを実行ファイルとして実行してみてください。その後、svgファイルに対して同じ操作を試みます。もちろん、権限に対するエラーが発生するのは、イメージに実行権限がないためです。 「何もしない」は、パラメータが欠落しているinkscapeから来ています。

3行はすべて同じ行になければなりません。あるいは、単一のコマンドではなくシェルスクリプトを作成するので、それを作成するためのより適切な方法は次のとおりです。

for n in 16 32 48
do
    inkscape -z -w $n -h $n -e \
        /usr/share/iceweasel/browser/chrome/icons/default/default${n}.png \
        /usr/share/icons/hicolor/scalable/apps/iceweasel.svg
done

行末のバックスラッシュを参照してください。これは、次の行が現在の行の連続であることを意味します。 2番目のループにも同じことが当てはまります。

おすすめ記事