Apakah ada cara saya bisa melihat variabel lingkungan pengguna lain? Saya ingin melakukan itu sebagai root, jadi izin tidak akan menjadi masalah saya kira.
Untuk pengguna itu sendiri, saya menggunakan echo $PATH
atau set | grep PATH
(atau set
ketika saya tidak ingat nama variabelnya). Apa yang akan menjadi instruksi serupa untuk pengguna lain?
Untuk apa nilainya, saya di Ubuntu Server 13.04.
echo $MAIL
, tapi saya pikir mungkin ada jalan pintas..forward
)? Pengguna sering menetapkan beberapa variabel dalam.profile
file konfigurasi mereka atau lainnya, dan tidak ada cara untuk menghitungnya secara andal. Sekali lagi, masalah apa yang Anda coba selesaikan?Jawaban:
Pilihan lain adalah menggunakan
env
. Jalankan ini sebagairoot
:Sebagai contoh
sumber
HOME=/root
. Itu direktori home dari root, tapi itu bukan direktori home standar saya. Jika Anda ingin mengetahui lingkungan yang akan diperoleh pengguna tertentu saat dia masuk, Anda harus menjalankan skrip startup dari shell login pengguna khusus ini (dan ingat bahwa shell loginnya mungkin berbeda dari shell login Anda).root
dari manajer login? Ini berfungsi dengan baik jika saya drop ke tty dan masuk sebagairoot
.env | grep HOME
dan dapatkanHOME=/home/uwe
; Saya mengeksekusisu
dan kemudian sekali lagienv | grep HOME
dan dapatkanHOME=/root
, kemudian saya berlarisudo -u uwe env | grep HOME
dan masih mendapatkanHOME=/root
.xterm
sebagai pengganti terminal saya yang biasa) dan mendapatkan hasil yang diharapkan.sudo
setel variabel HOME hanya jika-H
opsi ada atau jika entri yang sesuai/etc/sudoers
diatur. Tampaknya file sudoers kami berbeda. Bagaimanapun, itu mungkin ide yang bagus untuk digunakan di-H
sini, dan mungkin juga-i
.Untuk satu pengguna, Anda dapat melakukan ini:
Daftar $ PATH dari semua pengguna:
@Camil Staps
. ~/.profile
Demikianlah tipuan yang saya pelajari dari orang favorit saya, Peteris Krumins. Dia menjelaskan triknya di sini . Mungkin nanti versi bash dibuat dengan opsiNON_INTERACTIVE_LOGIN_SHELLS
.sumber
$PATH
itu juga berfungsi tanpa. ~/.profile;
bagian - untuk apa ini?$PATH
bahkan tanpa sumber~/.profile
, tapi hampir pasti bukan yang Anda inginkan (= nilai yang akan dilihat pengguna ini saat dia masuk). Bahkan sumber~/.profile
tidak sepenuhnya dapat diandalkan, karena pengguna mungkin menggunakan shell yang file startupnya berbeda~/.profile
.~/.profile
sama sekali. Tetapi bagaimanapun, perilakusudo
dapat dikonfigurasi cukup banyak/etc/sudoers
(lihat diskusi saya dengan terdon), jadi ketika sistem kami berperilaku berbeda, itu mungkin disebabkan oleh perbedaan dalam file konfigurasi.dari root Anda dapat
su -
ke pengguna dan kemudian grep variabel lingkungan yang ingin Anda lihat:su - <username> -c 'echo $PATH'
sumber
runuser -l <username> -c "env | grep <var>" | cut -d '=' -f 2
berfungsi dengan baik untuk saya. Jika Anda tidak root, perlu awalan dengan perintahsudo
.