Saya memiliki server web CentOS 5.7, dan saya ingin mengubah tempat default saya ketika menghubungkan menggunakan SSH.
Saat ini saya mendarat /home/username
, dan saya ingin mendarat /home
sebagai gantinya.
Saya telah masuk sebagai root dan ditambahkan PermitUserEnvironment yes
ke /etc/.ssh/sshd_config
- dan seperti yang saya mengerti ini kemudian menyapu ssh
folder pengguna sendiri untuk sebuah environment
file. Apa yang saya tidak yakin tentang persis apa yang saya tambahkan ke file lingkungan ini, karena export path=$PATH:$HOME
sepertinya tidak berfungsi, baik di sini atau di file .bashrc atau .bash_profile saya (yang saya mengerti tidak akan membuat perbedaan tetap sebagai koneksi SSH adalah shell non-interaktif?).
Terima kasih sebelumnya.
usermod
ketika mengubah apa-apa tentang pengguna yang menulis untuk/etc/passwd
, untuk mencegah kesalahan:usermod -d /home user
..bashrc
membuat saya facepalm. Ini sangat sederhana dan jelas, seandainya aku memikirkannya! Kerja bagus. Pujian!Yang perlu diingat adalah yang
~/.ssh/environment
dibaca sebelum shell ataussh
perintah muncul, jadi (misalnya) baik ekspor maupun $ PATH tidak masuk akal. Anda hanya dapat mengatur variabel lingkungan (tidak menjalankan perintah shell umum) di sini.Jika Anda mengambil lingkungan untuk shell ssh non-interaktif, maka modifikasi itu, Anda harus mendapatkan apa yang Anda inginkan untuk perintah non-interaktif. Sebagai contoh:
$ ssh mylogin@myserver env
akan memberi Anda apa yang dimulai dengan ssh di server Anda. Jika Anda menulis
~/.ssh/environment
file Anda sebagai:PATH=/usr/local/bin
dan jalankan kembali di atas, Anda harus mendapatkan "bash: env: command not found". Baik!
Sekarang, buat jalur Anda secara eksplisit, berdasarkan apa yang ada di pangkalannya dari sistem Anda
sshd
(misalnya panggilan "ssh .... env" pertama), misalnya (menambahkan/usr/local/bin
di kepala):PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Perhatikan juga bahwa tidak berguna untuk mencoba mengatur CWD di
~/.ssh/rc
(yang dijalankan setelah~/.ssh/environment
dibaca, tetapi sebelumssh
shell atau perintah Anda) karena shell Anda akan mulai (secara default) di jalur home Anda.sumber