Linuxでは、通常のユーザーとして「ps」を呼び出します。

Linuxでは、通常のユーザーとして「ps」を呼び出します。

私の問題の簡単な紹介:このコマンドはpsシステムプロセスに関する情報を印刷します。

ところで、ログインしてみます。xそして権限の変更ps

chmod -x /bin/ps
chmod u+x /bin/ps
ls -l /bin/ps 
-rwxr--r-- 1 root root ...... ps

次に、新しいシェルスクリプトファイルを作成します。call_ps_via_root.sh

#!/bin/bash
ps

そしてx権限の設定

chmod +x /bin/call_ps_via_root.sh
ls -l /bin/call_ps_via_root.sh
-rwxr-xr-x 1 root root ...... call_ps_via_root.sh

その後、一般ユーザーとしてログインしました。男の名前、その後、入力するとps印刷されます。

Permission denied

私は入る/bin/call_ps_via_root.sh

まだ拒否されました。どのように機能させることができますかcall_ps_via_root.sh

ベストアンサー1

あなたはできません:/bin/psrootとしてのみ実行可能にすると、rootでのみ実行できます。権限検証をバイパスするためにスクリプトをラップすることはできません。

ユーザーIDの設定

一般ユーザーにrootとして呼び出すには、psset-uid権限を確認する必要があります。 ~からsetuid 記事ウィキペディアから:

setuidとsetgid(それぞれ「実行時のユーザーID設定」および「実行時のグループID設定」の略)1ユーザーが実行可能ファイルの所有者またはグループの権限で実行可能ファイルを実行できるようにするUnixアクセス権フラグ。これは、コンピュータシステムのユーザーが一時的に昇格した権限でプログラムを実行して特定のタスクを実行できるようにするためによく使用されます。指定された仮定されたユーザーIDまたはグループID権限が常に昇格されるわけではありませんが、少なくとも具体的です。

chmod のマニュアルページも参照してください。

Sudo

一般ユーザーに root でのみ実行可能ファイルを実行させるにはsudo。これにより、どのユーザーがどのタスクを実行できるかを構成できます。

おすすめ記事