SSOS'u CentOS sunucusuna aldığımda varsayılan yol değiştirilsin mi?


12

Bir CentOS 5.7 web sunucum var ve SSH kullanarak bağlanırken geldiğim varsayılan yeri değiştirmek istiyorum.

Şu anda /home/usernameiniyorum ve /homeonun yerine inmek istiyorum .

Ben kök olarak gitti ve ekledim PermitUserEnvironment yesiçin /etc/.ssh/sshd_config- ve anladığım kadarıyla bu daha sonra kullanıcının kendi süpürür sshbir klasörü environmentdosyası. Ne olduğundan emin değilim export path=$PATH:$HOME, burada veya .bashrc veya .bash_profile dosyalarımda işe yaramadığı için bu ortam dosyasına tam olarak eklediğim şey (ki anladığım kadarıyla bir fark yaratmaz) Yine de bir SSH bağlantısı etkileşimli olmayan bir kabuktur?).

Şimdiden teşekkürler.

Yanıtlar:


14

Kimlik doğrulama için PAM kullanıyorsanız, muhtemelen en olası olanıdır. Kök başı olarak /etc/passwd.

Orada kullanıcı adınızı ve yolunuzu görmelisiniz! Orada değiştirin ve evde özgürsünüz!

DÜZENLEME - Üzgünüm, sadece ana klasörünüzü değiştirmek istemediğiniz için başıma geldi. Bu durumda şunları ekleyin:

cd /home

.bashrcDosyanızın altına !


4
Kullanımı daha iyidir usermodiçin yazma bir kullanıcı ilgili bir şey değiştirirken /etc/passwd, hataları önlemek için: usermod -d /home user.
laebshade

1
Bu yan yorum .bashrcbeni facepalm yaptı. Çok basit ve açık, bunu düşünmüş olsaydım! Aferin. Kudos!
cwallenpoole

4

Hatırlanması gereken şey, ~/.ssh/environmentbir kabuk veya sshkomutun ortaya çıkmasından önce okunmasıdır , bu nedenle (örneğin) ne ihracat ne de $ PATH anlamlıdır. Burada yalnızca ortam değişkenlerini ayarlayabilirsiniz (genel kabuk komutlarını çalıştırmazsınız).

Etkileşimli olmayan bir ssh kabuğu için ortam yakalarsanız, bunu değiştirin, etkileşimli olmayan komutlar için istediğinizi almalısınız. Örneğin:

$ ssh mylogin@myserver env

ssh sunucunuzda neyle başladığını gösterir. ~/.ssh/environmentDosyanızı şu şekilde yazarsanız :

PATH=/usr/local/bin

ve yukarıdaki işlemleri yeniden çalıştırdığınızda "bash: env: komut bulunamadı" iletisini almalısınız. İyi!

Şimdi, sisteminizin sshd(yani ilk "ssh .... env" çağrısından) temelde ne olduğuna bağlı olarak yolunuzu açıkça oluşturun, örneğin ( /usr/local/binbaşa ekleme ):

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Ayrıca, CWD'yi ana yolunuzda (varsayılan olarak) kabuğunuzun başlayacağı şekilde (varsayılan olarak) kabuk olarak başlayacağına (varsayılan olarak okunduktan ~/.ssh/rcsonra çalıştırılır) ayarlamaya çalışmanın yararlı olmadığını unutmayın .~/.ssh/environmentssh


çift ​​+1, bu bilgiyi her yerde arıyordum
toparlanma
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.