Thay đổi đường dẫn mặc định khi tôi SSH vào máy chủ CentOS?


12

Tôi có máy chủ web CentOS 5.7 và tôi muốn thay đổi địa điểm mặc định mà tôi đến khi kết nối bằng SSH.

Hiện tại tôi hạ cánh /home/username/homethay vào đó tôi muốn hạ cánh .

Tôi đã truy cập với quyền root và được thêm PermitUserEnvironment yesvào /etc/.ssh/sshd_config- và theo tôi hiểu thì điều này sau đó quét sshthư mục riêng của người dùng để tìm environmenttệp. Điều tôi không chắc chắn chính xác là những gì tôi đang thêm vào tệp môi trường này, vì export path=$PATH:$HOMEdường như không hoạt động, ở đây hoặc trong các tệp .bashrc hoặc .bash_profile của tôi (mà theo tôi hiểu thì nó sẽ không tạo ra sự khác biệt dù sao như một kết nối SSH là một vỏ không tương tác?).

Cảm ơn trước.

Câu trả lời:


14

Nếu bạn đang sử dụng PAM để xác thực, đó có thể là khả năng nhất. Như gốc vào /etc/passwd.

Ở đó bạn sẽ thấy tên người dùng và đường dẫn của bạn! Thay đổi nó ở đó và bạn đang ở nhà miễn phí!

EDIT - Xin lỗi, điều đó xảy ra với tôi rằng bạn có thể không muốn thay đổi thư mục nhà của mình. Trong trường hợp đó, chỉ cần thêm:

cd /home

Đến cuối .bashrctập tin của bạn !


4
Tốt hơn hết là sử dụng usermodkhi thay đổi bất cứ điều gì liên quan đến người dùng ghi vào /etc/passwd, để ngăn ngừa lỗi : usermod -d /home user.
laebshade

1
Nhận xét bên đó .bashrclàm cho tôi facepalm. Thật đơn giản và rõ ràng, ước gì tôi đã nghĩ về nó! Làm tốt lắm. Thanh danh!
cwallenpoole

4

Điều cần nhớ là ~/.ssh/environmentđược đọc trước khi shell hoặc sshlệnh được sinh ra, vì vậy (ví dụ) không xuất cũng không phải $ PATH. Bạn chỉ có thể đặt các biến môi trường (không chạy các lệnh shell chung) tại đây.

Nếu bạn lấy môi trường cho một vỏ ssh không tương tác, sau đó sửa đổi nó, bạn sẽ nhận được những gì bạn muốn cho các lệnh không tương tác. Ví dụ:

$ ssh mylogin@myserver env

sẽ cung cấp cho bạn những gì ssh bắt đầu với trên máy chủ của bạn. Nếu bạn viết ~/.ssh/environmenttập tin của bạn dưới dạng:

PATH=/usr/local/bin

và chạy lại phần trên, bạn sẽ nhận được "bash: env: lệnh không tìm thấy". Tốt

Bây giờ, hãy xây dựng đường dẫn của bạn một cách rõ ràng, dựa trên cơ sở của nó từ cơ sở của bạn sshd(ví dụ như cuộc gọi "ssh .... env" đầu tiên), ví dụ (thêm /usr/local/binvào đầu):

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

Cũng lưu ý rằng không hữu ích khi thử đặt CWD ~/.ssh/rc(được chạy sau khi ~/.ssh/environmentđọc, nhưng trước sshshell hoặc lệnh của bạn) vì shell của bạn sẽ bắt đầu (theo mặc định) trong đường dẫn nhà của bạn.


gấp đôi +1, tôi đã tìm kiếm thông tin này ở mọi nơi
spinup
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.