別のユーザーとしてアプリケーションを実行する方法は?


17

ファイル管理にkrusaderを使用しています。問題は、Apache DocumentRootがの下にある必要があることchown www-data:www-data /path/to/wwwです。私のアカウントで実行されているkrusaderを使用して/path/to/www、本当に必要な間は書き込みアクセス権を持っていません。他の開発者がそのような制限で物事を続けることができる方法がわかりません!

www-dataファイルを簡単に再生できるようになると、krusaderを実行できるかどうか疑問に思いました。を使用しsu - www-dataて、www-dataパスワードを要求されました!!

Gnomeで別のユーザー(www-dataなど)としてアプリケーション(krusaderなど)を実行するにはどうすればよいですか?

または私のケースの他の解決策はありますか?(私は本当に答えを知りたいのですが!)

ルートとして実行できることを知っていることに注意してください!ただし、とを使用するcpmkdir、これにより許可に関する問題が発生します。

PS: sudoそしてgksudo助けにはならなかった:

$ gksudo -u -www-data krusader
No protocol specified
krusader: cannot connect to X server :0.0

最後のメモ: ベストアンサーによるchmod u+w /path/to/wwwと、私は問題を解決しました。しかし、私はまだ別のユーザーとしてkrusaderを開くことに成功していません!

回答:


4

この質問について再考します(あなたの問題を正しく理解したいと思いますが、間違っている場合は私を修正してください) 。あなたが言った:

ApacheのDocumentRootは、chown www-data:www-data / path / to / wwwの下にある必要があります

しかし、実際には、これは完全に真実ではありません。Apache DocumentRootwww-dataが、必ずしも所有されている必要はありません。デフォルトでは、Ubuntuデスクトップでは、作成したすべてのファイルとディレクトリは誰でも読み取り可能なため、DocumentRootをホームフォルダー内のディレクトリに設定できます。次に例を示します。

DocumentRoot /home/user/my-project/my-document-root

ありがとう!うまくいきました。そして、これがなぜ機能するかについてのあなたの説明は非常に役に立ちました。これで私の問題は解決しましたが、別のユーザーとしてkrusaderを開く方法を知りたいと思っています。他のソリューションは機能しませんでした。
アレクサー


5

これをメニューシステムから実行している場合alacarte(システム>設定>メインメニュー)を使用し、krusaderのエントリを変更して、その前に追加しgksudo -u www-dataます。

gksudo -u www-data krusader

これは、に応じて管理タスクプロンプトウィンドウが起動しますGKSudoマンページ、aはあるが

suおよびsudoのGTK +フロントエンド

-uスイッチなしでgksudoのみを使用すると、コマンドがルートとして実行されます。


おかげで、返されます:プロトコルが指定されていません
krusader

2
gksudoコマンドを起動する前に、端末でアカウントを実行します。xhost +
jet

4

Marcoが述べたようにgksudo -u www-data <command>、別のユーザーとしてコマンドを実行するために使用できます。私はこれを定期的に使用してコマンドを実行していますがgdm、これまでのところ、自分のパスワード以外のものを要求することはありません。

kdeを使用している場合、同等のものはkdesu -u www-data krusader.Iだと思います。krusaderはkdeアプリケーションであるため、でより適切に動作する可能性がありkdesuます。kdesuの詳細はこちら

私はgksudoシステム上で他の「人間」ユーザーとしてコマンドを実行していましたが、パスワードの入力を求められたら、私と入力します。


おかげで、結果はgksudoとして:プロトコルが指定されていませんkrusader:Xサーバーに接続できません:0.0
Alexar

おそらくkrusader(kdeアプリ)にkdesuは、より良い選択です。回答を更新しました。試せますか?
koushik

4

自分のパスワードでwww-dataにするには、これを使用します:

$ sudo su www-data
[sudo] password for <your username>: [enter your password]
$ whoami
(you should see www-data here)

しかし、そこからGUIアプリを実行できるとは思いません。

私は通常/var/www、すべてを所有していますが、すべてのユーザーに読み取りアクセスを許可します。

/var/www$ sudo chown -R [your-username]\:[your-group] *
/var/www$ find . -type d -exec chmod a+rx {} \;
/var/www$ find . -type f -exec chmod a+r {} \;

それがあなたの痛みを和らげることを願っています:)


ご想像のとおり、そこからGUIアプリを実行できませんでした。それは言ったNo protocol specified krusader: cannot connect to X server :0.0
アレクサー

2番目の解決策は選択肢ではありませんか?あなたのデータはwww-dataが所有している必要はありません、私はそれが好ましいと思います。
ハンニバルレクター博士

3

ターミナルで次を実行する必要があると思います。

xhost +SI:localuser:<user-to-run-as>

その後、次のことができます。

sudo su - <user-to-run-as>

最後に、アプリを実行します。

krusader

<user-to-run-as>もちろん、ユーザー名に置き換えてください。


0

「gksu」と「kdesu」はどちらも「sudo」のグラフィカルなフロントエンドです。これは、テキストのみの環境で使用する必要があるツールです。「gksu」および「kdesu」ツールを使用するには、グラフィカルモードにする必要があります。これは、「Xサーバーに接続できません」というエラーを説明しています。

別のユーザーとしてコンソールコマンドを実行する場合は、コマンド「sudo -u username command」を使用します。


おかげで、私はそれを実行し、[1] 12100そのような何かがプロセスIDのようだと言っています。しかし、実際には何も見えません。
アレクサー

0

www-dataでグラフィカルアプリケーションを実行すると、いくつかの問題が発生します。できることは、www-dataグループに自分自身を追加することです。そのため、必要なすべてのファイルを変更できます。

sudo adduser $USER www-data

注:おそらく、変更を有効にするにはセッションからログアウトする必要があります。

このコマンドを実行しても、一部のファイルを変更できない場合は、ファイルへの書き込み権限があることを確認してください。

sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file

しかし、それは一般的な問題の解決策ではありませんが、私の場合はうまくいくようです。私はそれを試して報告します
Alexar

0

Anton S. Kraievoyに触発され、私は同様のソリューションを使用しました。Krusaderを使用して、xhhostに新しいユーザーを追加したユーザー:

xhost +SI:localuser:username

親切にログインするより:

su - username

krusaderが新しいユーザーの新しいインスタンスとして適切に起動するより:

krusader

〜/ .kde / share / config / krusaderrcに新しい構成が作成されることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.