Bir Uygulamayı başka bir kullanıcı olarak nasıl çalıştırırım?


17

Dosya yönetimi için krusader kullanıyorum. sorun apache'nin DocumentRootaltında olması gerektiğidir chown www-data:www-data /path/to/www. yani krusader kullanarak (ki bu benim hesabım altında çalıştırılır) /path/to/wwwGerçekten ihtiyacım varken erişim yazma değilim. Diğer geliştiricilerin böyle bir kısıtlamayla işleri yapmaya nasıl devam edebileceklerini bilmiyorum!

Krusader'i çalıştırabilir miyim diye merak ettim, www-datao zaman dosyalar ile kolayca oynayabileceğim. ama kullanarak su - www-databana www-dataşifre sordu !!

Peki, bir uygulamayı (krusader gibi) Gnome'da başka bir kullanıcı olarak (www-data gibi) nasıl çalıştırabilirim?

veya davam için başka bir çözüm var mı? (zor cevabı gerçekten merak ediyorum!)

unutmayın, kök olarak çalıştırabileceğimi biliyorum ! ancak bu, kullanırken bazı izin sorunlarına neden olur cpve mkdirbilirsiniz.

PS: sudo ve gksudoyardımcı olmadı:

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

Son Not: En iyi cevaba göre yaptım chmod u+w /path/to/wwwve sorunum çözüldü. ama yine de başka bir kullanıcı olarak krusader açmayı başaramadım!

Yanıtlar:


4

Bu soruyu yeniden düşünmek (sorununuzu doğru anlayabilmeyi umuyorum, ancak yanlışsam beni düzelt), başka bir çözüm buldum ve uygulamayı www-veri olarak çalıştırmanız veya izinlerle oynamanız gerekmediğini düşünüyorum . Dedin ki:

Apache'nin DocumentRoot'u www-data: www-data / path / to / www şeklinde olmalıdır

ama aslında, bu tam olarak doğru değil: Apache'nin DocumentRootokunabilir olması www-data, ancak mutlaka sahip olması gerekmez. Varsayılan olarak, Ubuntu Masaüstü'nde, oluşturduğunuz tüm dosya ve dizinler herkes tarafından okunabilir, böylece DocumentRoot'unuzu ana klasörünüzdeki bir dizine ayarlayabilirsiniz, örneğin:

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

Teşekkürler! sadece çalıştı. ve bunun neden işe yarayacağına dair açıklamanız çok yardımcı oldu. Bu benim sorunum çözüldü ama yine de başka bir kullanıcı olarak krusader nasıl açabilirim merak ediyorum. diğer çözümler işe yaramadı.
Alexar


5

Bunu menü sisteminden çalıştırıyorsanız alacarte(Sistem> Tercihler> Ana Menü) kullanmak ve krusader için girişi değiştirmek ve önüne eklemek istersiniz: gksudo -u www-datahangisi şöyle olmalıdır:

gksudo -u www-data krusader

Bu, uygun idari görev istemi penceresini başlatacak gksudo manpage bir olduğunu

Su ve sudo için GTK + Frontend

-uAnahtar olmadan sadece gksudo kullanılması komutu root olarak çalıştırır.


teşekkürler, ama döndürür: Hiçbir protokol belirtilmedikrusader: X sunucusuna bağlanılamıyor: 0.0
Alexar

2
gksudo komutunu başlatmadan önce, hesabınızdaki terminalde:xhost +
jet

4

Marco'nun belirttiği gibi, gksudo -u www-data <command>komutları başka bir kullanıcı olarak çalıştırmak için kullanabilirsiniz . Bunu rutin olarak komutları çalıştırmak için kullanıyorum gdmve şimdiye kadar benden asla kendi şifremden başka bir şey istemedi.

Eğer kde kullanıyorsanız, eşdeğerdir. kdesu -u www-data krusaderBence, krusader bir kde uygulaması olduğundan, daha iyi çalışabilir kdesu. Kdesu hakkında daha fazla bilgi burada .

Ben kullandım gksudosistemde öteki "insan" kullanıcıları olarak komutları çalıştırmak için ve ben şifre isteniyor, ben madende yazın.


teşekkürler ama sonuç gksudo gibidir: Protokol specifiedkrusader: X sunucusu bağlanamaz: 0.0
AlexaR

Muhtemelen krusader (kde uygulaması) kdesuiçin daha iyi bir seçimdir. Cevabımı güncelledim. Bunu deneyebilir misin?
koushik

4

Kendi şifrenizle www-veri olmak için şunu kullanın:

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

Ancak, GUI uygulamalarını oradan çalıştırabileceğinizi sanmıyorum ..

Genellikle her şeye sahibim /var/www, ancak herkese okuma erişimine izin veriyorum:

/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 {} \;

Umarım acınızı dindirir :)


tahmin ettiğiniz gibi oradan GUI uygulamaları çalıştıramadım. dediNo protocol specified krusader: cannot connect to X server :0.0
Alexar

İkinci çözüm sizin için bir seçenek değil mi? Veri yok olması bunu tercih sanırım rağmen, www-data ait olması için.
dr Hannibal Lecter

3

Terminalde aşağıdakileri çalıştırmanız gerektiğine inanıyorum:

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

Sonra şunları yapabilirsiniz:

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

Son olarak, uygulamanızı çalıştırın:

krusader

Bunu yapmalı, sadece <user-to-run-as>kullanıcı adınızla değiştirdiğinizden emin olun .


0

Hem 'gksu' hem de 'kdesu', salt metin ortamında olduğunuzda kullanmanız gereken araç olan 'sudo' için grafik ön uçlardır. 'Gksu' ve 'kdesu' araçları, "X sunucusuna bağlanamıyor" hatalarını açıklayan bir grafik modda olmanızı gerektirir.

farklı bir kullanıcı olarak bir konsol komutu çalıştırmak istiyorsanız 'sudo -u username command' komutunu kullanırsınız.


teşekkürler, ben bunu çalıştırın ve böyle bir şey [1] 12100süreç kimliği gibi görünüyor diyor ; ama eylemde gördüğüm hiçbir şey yok.
Alexar

0

Www-data altında grafiksel bir uygulama çalıştırmak size birkaç sorun sağlar. Yapabileceğiniz bir şey, kendinizi www-data grubuna eklemektir, böylece ihtiyacınız olan tüm dosyaları değiştirebilirsiniz:

sudo adduser $USER www-data

Not: muhtemelen, değişikliğin etkili olması için oturumdan çıkış yapmanız gerekir.

Bu komuttan sonra hala bazı dosyaları değiştiremiyorsanız, bunlara yazma izniniz olduğundan emin olun:

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

ancak genel sorun için bir çözüm değil ama benim durumum için çalışıyor gibi görünüyor; denemek ve rapor
Alexar

0

Anton S. Kraievoy'dan esinlenerek benim için çalışan benzer bir çözüm kullandım. Krusader kullanarak xhhost'a yeni bir kullanıcı ekledim:

xhost +SI:localuser:username

Nazikçe giriş yapın:

su - username

Daha sonra krusader yeni bir kullanıcıda yeni bir örnek olarak düzgün bir şekilde başlar:

krusader

~ / .Kde / share / config / krusaderrc dosyasında yeni bir yapılandırma oluşturulacağına dikkat edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.