ユーザーシェルを変更するために呼び出されるスクリプトを作成しています。デフォルトの要件は、ユーザーが認証されると(たとえば、一部のWebアプリケーションを介して)、デフォルトのシェルを設定するためにスクリプトが呼び出されることです。彼は利用可能な様々な貝の中から選択することができます。解決策がわからないいくつかの問題があります。最初は - シェルを変更する方法です。 - わかりました。chsh
しかし、コマンドを実行するにはユーザーがパスワードを入力する必要がありますが、私はそれを望んでいません。ユーザーが認証されたら、ユーザーが有効であることを確認してスクリプトを実行したいと思います。ルートアクセスを使用する必要がありますか?それでは、これがセキュリティにどのような影響を与えますか?また、このようなスクリプトを実装するときにどのようなセキュリティ対策を検討する必要がありますか?私は以下のスクリプトで始まり、それを拡張したいと思います。コメント/回答をいただきありがとうございます。
PS:この質問が投稿されました。ここそれから、このフォーラムが正しい場所かもしれないことに気づきました。
1 #!/bin/bash
2
3 #### Constants ########
4 TOSHELL=
5 NUMARGS=$#
6 USER=$(whoami)
7 #### Functions ########
8
9 checkArgument(){
10
11 if [ "$NUMARGS" != "1" ]
12 then
13 return 1
14 else
15 TOSHELL=$1
16 return 0
17 fi
18
19 }
20
21
22 changeShell(){
23
24 `chsh -s $TOSHELL $USER`
25
26 }
27
28 main(){
29
30
31 if checkArgument
32 then
33 changeShell #Also check if changeShell was successful
34 return 0
35 else
36 return 1
37 fi
38
39 }
40 main