Linuxルートコンソールからbashスクリプトを実行します。したがって、このスクリプトはroot権限でアプリケーションを実行します。
しかし、ユーザーとして呼び出されるアプリケーションが必要です。
このシナリオは期待どおりに機能しますか?
Linuxルートコンソールからbashスクリプトを実行します。したがって、このスクリプトはroot権限でアプリケーションを実行します。
しかし、ユーザーとして呼び出されるアプリケーションが必要です。
このシナリオは期待どおりに機能しますか?
特権を使用sudo -u username
してプログラムを実行できます。username
このような:
sudo -u youruser yourscript.sh
を使用できない場合はsudo
、@Torrius が提案したように、次のコマンドを試すことができます。
su - youruser -c "yourscript.sh"
後者のソリューションを使用することさえできない場合は、 parametrized の権限で実行可能ファイルを実行する小さな C プログラムを作成できますuser and group id
。
このコンセプト コードを見てください。
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if (argc < 3)
{
printf("Usage: ./this [uid] [gid]\n");
return 1;
}
setuid(atol(argv[1]));
setgid(atol(argv[2]));
execl("/usr/bin/whoami", "whoami", 0, 0);
return 0;
}
テストするには:
myshell:~ root$ ./a.out 501 501
davide
myshell:~ root$ ./a.out -2 -2
nobody
myshell:~ root$ ./a.out 1 1
daemon