Ubah jalur default ketika saya SSH masuk ke server CentOS?

12

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 /homesebagai gantinya.

Saya telah masuk sebagai root dan ditambahkan PermitUserEnvironment yeske /etc/.ssh/sshd_config- dan seperti yang saya mengerti ini kemudian menyapu sshfolder pengguna sendiri untuk sebuah environmentfile. Apa yang saya tidak yakin tentang persis apa yang saya tambahkan ke file lingkungan ini, karena export path=$PATH:$HOMEsepertinya 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.

Ben
sumber

Jawaban:

14

Jika Anda menggunakan PAM untuk otentikasi, yang mungkin paling mungkin. Sebagai root menuju /etc/passwd.

Di sana Anda harus melihat nama pengguna dan jalur Anda! Ubah di sana dan Anda di rumah gratis!

EDIT - Maaf hanya terpikir oleh saya bahwa Anda mungkin tidak ingin mengubah folder rumah Anda. Dalam hal ini, cukup tambahkan:

cd /home

Ke bagian bawah .bashrcfile Anda !

stevie I
sumber
4
Lebih baik menggunakan usermodketika mengubah apa-apa tentang pengguna yang menulis untuk /etc/passwd, untuk mencegah kesalahan: usermod -d /home user.
laebshade
1
Komentar samping itu tentang .bashrcmembuat saya facepalm. Ini sangat sederhana dan jelas, seandainya aku memikirkannya! Kerja bagus. Pujian!
cwallenpoole
4

Yang perlu diingat adalah yang ~/.ssh/environmentdibaca sebelum shell atau sshperintah 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/environmentfile 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/bindi 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/environmentdibaca, tetapi sebelum sshshell atau perintah Anda) karena shell Anda akan mulai (secara default) di jalur home Anda.

Yarko
sumber
ganda +1, saya mencari informasi ini di mana-mana
spinup