/home/usr1/App1
と/home/Usr2/App1
の両方で実行されているApp1?/home/usr1/App1
と/home/usr2/App2
、つまり、同じUIDを持つUsr1とUsr2 ??はいの場合、それを行う方法は?/home/usr1
で実行されているapp1は/home/usr2
に切り替えることができます。個別の質問を個別に投稿することをお勧めします。ただし、これらはすべてすばやく回答できるため(そして関連しているため)、そうしました。
同じアプリケーションが、異なるユーザーによって、異なる時間に、または同時に実行される場合があります。アプリケーションは同じ場所から(両方のユーザーがそれを実行するためのアクセス権を持っている限り)を実行するか、別のコピーを(例のように)異なる場所から実行できます。
2人の異なるユーザーできません UIDを共有します。 UIDは、実際にはユーザー名よりもユーザーID(したがって名前)の中心にあります。 ファイルまたはフォルダを所有 の場合、ファイルシステムには、ユーザー名ではなく、ファイルに関連付けられたUIDが含まれます。同じUIDを持つ2人のユーザーがいることは、複数の名前を持つ1人のユーザーがいることを意味します(これもサポートされていません)。
はい、ユーザーIDを切り替えることができます。 Sudo -u other-user command...
または(現在root
の場合、またはターゲットユーザーがログインを有効にしていてパスワードを知っている場合)su other-user -c 'command...'
を使用できます。これらのコマンドは自分で呼び出すことができますが、スクリプトやアプリケーションでも使用できます。
これがどのように機能し、どのように使用するかの詳細については、 コミュニティのドキュメント 、 man Sudo
、および man su
を参照してください。 。作成しているプログラムでは、setuid
関数を使用することもできます。 man 2 setuid
および man 3 setuid
を参照してください。グラフィカルアプリケーションを実行するには、gksu
およびgksudo
を直接呼び出す代わりに、kdesudo
/su
または(Kubuntuの場合)Sudo
を使用する必要があります(ただし、Ubuntuではデフォルトでgksu
はSudo
ではなくsu
を呼び出すことに注意してください。 コミュニティドキュメントのこのセクション 、 man gksu
(gksudo
もカバー)、および man kdesudo
を参照してください。 =。
ユーザーを変更するプログラムやスクリプトを作成する前に、UnixライクなシステムでユーザーIDがどのように機能するかをよく読んでおくことをお勧めします。