プロが教える店舗&オフィスのセキュリティ対策術

shellscriptのなかで、管理者権限が必要なコマンドを用いるとき、sudoをつけて、じっこうさせているのですが、昇格して実行してくれません。

例えば、
update=sudo apt update
eval $update
こうしたとき、端末に、
E: ロックファイル /var/lib/apt/lists/lock をオープンできません - open (13: 許可がありません)
E: ディレクトリ /var/lib/apt/lists/ をロックできません
W: ファイル /var/cache/apt/pkgcache.bin の削除中に問題が発生しました - RemoveCaches (13: 許可がありません)
W: ファイル /var/cache/apt/srcpkgcache.bin の削除中に問題が発生しました - RemoveCaches (13: 許可がありません)
と、権限がないと怒られます。
対処法を教えてください。
シェルスクリプトには[chmod +x]で権限はついています。
ダブルクリックで実行したいのでスクリプト内の修正法を教えていただければ幸いです.

A 回答 (2件)

すみません。

No1です。前回の投稿では言葉足らずだと思ったものですから、再度投稿させていただきます。
ご質問者様のご質問にある『一般ユーザがオーナのシェルスクリプトの中に"sudo ....."行がある。』状態が正常に(ご質問者様の意図どおりに)働くようなら、それは重大なセキュリティ違反となることに注意しなければなりません。

それは、ファイルのオーナが一般ユーザであるために、このユーザが"sudo ....."行を自由に書き換えることができることに起因します。

この点に注目すれば、ご質問(スクリプトが正常に働かない。)は不具合ではなく、それこそ正常な状態であると思います。
    • good
    • 2

一般ユーザのままで...



$ apt update

を指令すると、ご指摘のままのメッセージが表示されます。それ故、スクリプトファイルの中で"sudo"コマンドの指令が無視されていると仮定すると(すみません、私自身全くsudo使ったことがありません。理由は他の回答者を待ちましょう。) 、次のような対策で如何でしょうか...スクリプトファイル名を"hoge"と仮定すると...

1.スクリプトファイルのオーナ/グループを"root"として製作する。
2.ファイルのパーミッションを..."-rwxr--r--"とする。
このファイルをls -lで参照すれば、次のように見えるはずです。

-rwxr--r-- 1 root root 16K 5月 31 08:59 hoge

3.スクリプト起動は...

$ sudo hoge

で行う。うまく起動できるならば、"chmod go-r hoge"を実行してパーミッションを"-rwx------"とする(安全性が向上すると思われる。)。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!