Bagaimana cara menjalankan Aplikasi sebagai pengguna lain?

17

Saya menggunakan krusader untuk hal-hal manajemen file. masalahnya adalah apache DocumentRootharus di bawah chown www-data:www-data /path/to/www. jadi menggunakan krusader (yang dijalankan di bawah akun saya) saya belum menulis akses /path/to/wwwsementara saya benar-benar membutuhkan. Saya tidak tahu bagaimana pengembang lain dapat terus melakukan hal-hal dengan batasan seperti itu!

Saya bertanya-tanya apakah saya bisa menjalankan krusader saat www-dataitu saya akan dapat dengan mudah bermain dengan file. tetapi menggunakan su - www-datameminta saya untuk www-datakata sandi !!

Jadi, bagaimana saya bisa menjalankan aplikasi (seperti krusader) sebagai pengguna lain (seperti www-data) di Gnome?

atau adakah solusi lain untuk kasus saya? (Sulit aku benar-benar ingin tahu jawabannya!)

perlu diingat bahwa saya tahu saya bisa menjalankannya sebagai root ! tetapi ini akan menyebabkan beberapa masalah izin saat menggunakan cpdan mkdir, Anda tahu.

PS: sudo dan gksudotidak membantu:

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

Catatan Akhir: menurut jawaban terbaik, saya lakukan chmod u+w /path/to/wwwdan masalah saya terpecahkan. tetapi saya masih belum berhasil membuka krusader sebagai pengguna lain!

Alexar
sumber

Jawaban:

4

Memikirkan kembali tentang pertanyaan ini (saya berharap telah memahami masalah Anda dengan benar, tetapi perbaiki jika saya salah), saya menemukan solusi lain dan saya pikir Anda tidak perlu menjalankan aplikasi sebagai www-data atau bermain dengan izin . Anda mengatakan itu:

DocumentRoot Apache harus di bawah chown www-data: www-data / path / ke / www

tetapi sebenarnya, ini tidak sepenuhnya benar: Apache DocumentRootharus dapat dibaca oleh www-data, tetapi tidak harus dimiliki olehnya. Secara default, di Ubuntu Desktop, semua file dan direktori yang Anda buat dapat dibaca oleh semua orang, sehingga Anda dapat mengatur DocumentRoot Anda ke direktori di dalam folder rumah Anda, misalnya:

DocumentRoot /home/user/my-project/my-document-root
Andrea Corbellini
sumber
Terima kasih! hanya berhasil. dan penjelasan Anda tentang mengapa ini bisa berhasil, sangat membantu. karena ini menyelesaikan masalah saya tapi saya masih penasaran ingin tahu bagaimana saya bisa membuka krusader sebagai pengguna lain. solusi lain tidak berhasil.
Alexar
8
xhost +SI:localuser:uname
gksudo -u uname -l "firefox"
xhost -SI:localuser:uname

Where uname = nama pengguna yang ditiru. Terlihat di sana: http://ubuntuforums.org/showthread.php?p=10399617

Bekerja pada kotak maverick saya, tidak ada suara di skype bercabang dan ~ / .profile.d tidak dieksekusi karena mungkin.

Anton S. Kraievoy
sumber
5

Jika Anda menjalankan ini dari sistem menu Anda ingin menggunakan alacarte(Sistem> Preferensi> Menu Utama) dan mengubah entri untuk krusader dan menambahkan di depannya: gksudo -u www-datayang akan menghasilkan sesuatu seperti:

gksudo -u www-data krusader

Ini akan meluncurkan jendela prompt tugas administratif yang, menurut GKSudo Manpage , adalah a

GTK + Frontend untuk su dan sudo

Hanya menggunakan gksudo tanpa -usaklar akan menjalankan perintah sebagai root.

Marco Ceppi
sumber
terima kasih, tetapi kembali: Tidak ada protokol yang ditentukankrusader: tidak dapat terhubung ke server X: 0,0
Alexar
2
sebelum meluncurkan perintah gksudo, di terminal di bawah menjalankan akun Anda:xhost +
jet
4

Seperti yang disebutkan Marco, Anda dapat menggunakan gksudo -u www-data <command>untuk menjalankan perintah sebagai pengguna lain. Saya secara rutin menggunakan ini untuk menjalankan perintah gdmdan sejauh ini tidak pernah meminta saya untuk apa pun selain kata sandi saya sendiri.

Jika Anda menggunakan kde, padanannya adalah. kdesu -u www-data krusaderSaya pikir, karena krusader adalah aplikasi kde, ini mungkin berfungsi lebih baik kdesu. Lebih detail tentang kdesu di sini .

Saya telah terbiasa gksudomenjalankan perintah sebagai pengguna "manusia" lainnya di sistem dan ketika saya dimintai kata sandi, saya mengetikkan milik saya.

koushik
sumber
terima kasih, tetapi hasilnya adalah sebagai gksudo: Tidak ada protokol yang ditentukankrusader: tidak dapat terhubung ke server X: 0.0
Alexar
Mungkin untuk krusader (aplikasi Kde), kdesuadalah pilihan yang lebih baik. Saya telah memperbarui jawaban saya. Bisakah kamu mencobanya?
koushik
4

Untuk menjadi www-data dengan kata sandi Anda sendiri, gunakan ini:

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

Tapi, saya tidak berpikir Anda akan dapat menjalankan aplikasi GUI dari sana ..

Saya biasanya hanya memiliki semuanya /var/www, tetapi mengizinkan akses baca ke semua orang:

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

Saya harap itu akan meringankan rasa sakit Anda :)

dr Hannibal Lecter
sumber
seperti yang Anda duga saya tidak bisa menjalankan aplikasi GUI dari sana. katanyaNo protocol specified krusader: cannot connect to X server :0.0
Alexar
Apakah solusi kedua bukan pilihan untuk Anda? Data Anda tidak harus dimiliki oleh www-data, meskipun saya kira itu lebih disukai.
dr Hannibal Lecter
3

Saya yakin Anda perlu menjalankan yang berikut di terminal:

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

Maka Anda dapat melakukan:

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

Dan terakhir, jalankan aplikasi Anda:

krusader

Yang seharusnya melakukannya, pastikan untuk mengganti <user-to-run-as>dengan nama pengguna Anda tentu saja.

nicholas.alipaz
sumber
0

Baik 'gksu' dan 'kdesu' adalah tampilan grafis untuk 'sudo', yang merupakan alat yang harus Anda gunakan ketika Anda berada di lingkungan hanya teks. Alat 'gksu' dan 'kdesu' mengharuskan Anda berada dalam mode grafis, yang menjelaskan kesalahan "tidak dapat terhubung ke server X".

jika Anda ingin menjalankan perintah konsol sebagai pengguna lain, Anda menggunakan perintah 'sudo -u username username'.

Sense Hofstede
sumber
terima kasih, saya menjalankan itu dan mengatakan sesuatu seperti [1] 12100itu tampaknya menjadi id proses; tapi tidak ada yang saya lihat dalam aksi.
Alexar
0

Menjalankan aplikasi grafis di bawah www-data memberi Anda beberapa masalah. Yang dapat Anda lakukan adalah menambahkan diri Anda ke grup data-www, sehingga Anda dapat mengubah semua file yang Anda butuhkan:

sudo adduser $USER www-data

Catatan: mungkin, Anda harus keluar dari sesi agar perubahan diterapkan.

Jika, setelah perintah ini, Anda masih tidak dapat mengubah beberapa file, pastikan Anda memiliki izin tertulis untuknya:

sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file
Andrea Corbellini
sumber
Namun itu bukan solusi untuk masalah umum tetapi tampaknya berfungsi untuk kasus saya; saya akan mencobanya dan melaporkan
Alexar
0

Terinspirasi oleh Anton S. Kraievoy, saya menggunakan solusi serupa, yang bekerja untuk saya. Di pengguna, yang menggunakan Krusader saya menambahkan pengguna baru ke xhhost:

xhost +SI:localuser:username

Daripada silakan login:

su - username

Daripada krusader dimulai dengan benar sebagai instance baru di pengguna baru:

krusader

Perhatikan, bahwa konfigurasi baru akan dibuat di ~ / .kde / share / config / krusaderrc.

hariprasad
sumber