アプリを定期的に使用しますmint install
が、一般ユーザーにアプリに対するフルアクセスを許可すると安全ではないと思います。ルートパスワードを入力するまで、このアプリケーションにアクセスする方法があるかどうかを知りたいです。デフォルトでは、ターミナルに新しいアプリケーションをインストールするときに、Windowsの管理者パスワードプロンプトに似たものを使用できます。私はsuを使ってrootとしてログインできることを知っていますが、これは確かに安全ではないことを知っています。どんなアイデアがありますか?
編集:やはり、一般ユーザーに権限を与えるためにsudoやchmodなどを使用したくありません。
答え1
ルートアクセスが必要なタスクを実行する必要がある場合は、ルートアクセスを取得するためのいくつかの方法を使用する必要があります。これは、ほとんどの最新システムで意味するか、またはsu
それらsudo
のいずれかに対するラッパーを意味します。 rootでコマンドを実行すると(または使用するかsu
どうかにかかわらずsudo
)、システムを損傷する可能性がある方法が増える可能性があります。したがって、コマンドが実際に必要な場合にのみrootとしてコマンドを実行する必要があります。
su
の一般的な構成との主な違いは、ログイン時と同じパスワードを入力するのに対し、別のパスワード(ユーザーパスワード)を入力する必要があることsudo
です。一般的なシングルユーザーコンピュータでは、両者のセキュリティに大きな違いはありません。パスワードを要求しないように設定することもできます。sudo
su
root
sudo
端末で作業していてrootとしてコマンドを実行するには、次のようにしますsu
。
su -c 'somecommand an_argument another_argument'
そしてsudo
:
sudo somecommand an_argument another_argument
どちらにしてもパスワード(ルートパスワードsu
、自分のパスワードsudo
)を入力するように求められます。 Sudoはあなたのパスワードを覚えており、今後数分間パスワードを再入力するよう求められません。su
毎回パスワードを再入力する必要があります。
パスワードの入力を求めるグラフィックプロンプトを表示することもできますが、(gksu
、、kdesu
...を使用)すでに端末で作業している場合はあまり便利ではありません。
答え2
世界に無料の食事はありませんが、リスクを最小限に抑えることはできます。
rootでスクリプトを実行し、パスワードプロンプトやコマンドexit
なしですぐに終了するには、いくつかの妥協が必要です。
次の解決策を使用すると、root
現在のユーザーの権限を持つ任意の場所に暗号化された2回(またはそれ以上)パスワードを保存できます。
高レベル:
root
パスワードを2回暗号化base64
し、ファイルを任意の場所に配置します(例:1234.txt可能)。expect
引数(上記でデコードされた文字列)を使用してスクリプトを呼び出すExpect
必要なスクリプトを実行して終了します。きれいなファイルとして
/root
呼び出し(通常のユーザーの場合)、expect
パスワードで暗号化されたファイルと。トレースを削除するには(一般ユーザーの観点から)スクリプトを呼び出します。このスクリプトはユーザーだけがアクセスできます。bash_history
root
base64
root
全体として、一般ユーザーの観点から見ると、このスクリプトは一度も実行されたことはなく、機密パスワードが含まれていないようです。
また、二重base64
暗号化は私にとって非常にランダムであるか無害であるように見えます(私はセキュリティの専門家ではなく2xで識別しませんがbase64
)。たとえば、
V1c5MVFYSmxWMlZzWTI5dFpRbz0K decrypted to YouAreWelcome
パスワードを2回エンコードbase64
一度:
$ cat pass.txt | base64 | base64 > innocent_name.txt
$ rm pass.txt
それから:
スクリプトを実行します。
$ ./root_wrap.exp "$(cat innocent_name.txt | base64 -d | base64 -d)"
期待されるスクリプト:
#!/usr/bin/expect -f
set root_user root;
set root_pass [ lindex $argv 0 ];
spawn bash
expect "*$ "
send -- "whoami\r"
expect "*$ "
send -- "su $root_user\r"
expect "*?assword:*"
send -- "$root_pass\r"
expect "*# "
send -- "./whoam.sh\r"
expect "*# "
send -- "/root/rm_trace.sh\r"
expect "*# "
send -- "exit\r"
send -- "whoami\r"
expect "*$ "
expect eof
きれいな記録スクリプト/root/rm_trace.sh
:
#!/bin/bash
sed -i '/base64/d' /home/<user>/.bash_history
sed -i '/root_wrapp/d' /home/<user>/.bash_history
sed -i '/innocent_name/d' /home/<user>/.bash_history
rootとして実行するためのサンプルbashスクリプト:
#!/bin/bash
echo "now running as root"
whoami