Tham số SSH để bỏ qua tập lệnh .bashrc


8

Tôi có một máy chủ mà khi nó khởi động, một dòng trong .bashrclệnh thực thi lệnh sau /bin/watch ~/checker.bashnhư đồng hồ dự kiến ​​sẽ ra lệnh khi máy chủ khởi động.

Tôi cũng có một máy khách đăng nhập vào máy đó, nhưng tôi không muốn các phiên của máy khách thực hiện cùng một lệnh từ .bashrc.

Tôi đã xem xét AcceptEnvđể vượt qua env vars, mặc dù nó yêu cầu cấu hình của máy chủ, điều mà tôi muốn tránh.

Tôi cũng không muốn có 2 tài khoản người dùng khác nhau cho các tài khoản khác nhau .bashrc.

Có một góc độ khác để tiếp cận điều này từ?


Tại sao bạn không muốn hai tài khoản khác nhau? tất cả "khách hàng" (dường như là một bên thứ 3 không liên quan) nên được cách ly (cũng từ chính bạn)
umläute

Câu trả lời:


5

bạn chỉ có thể kích hoạt các phần của mình .bashrcnếu nó không được gọi qua ssh.

ví dụ như một cái gì đó như:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi

làm việc như một cơ duyên và tất cả các câu trả lời ở đây đã dạy tôi rất nhiều. Nhiều đánh giá cao!
ljs.dev

13

Hai lối:

Không sử dụng bash cho phiên này, hãy thử dash (hoặc / bin / sh):

ssh 127.0.0.1 /bin/dash

Sử dụng bash với các tùy chọn lệnh để vô hiệu hóa xử lý tệp khởi động:

ssh 127.0.0.1 "bash --noprofile --norc"

bạn đã thử cách của bạn? (đặc biệt # 2)?
umläute

1
Phương pháp thứ 2 chỉ treo cho tôi.
slm

5
Phương pháp thứ hai hoạt động hoàn hảo cho tôi. Bạn không thấy lời nhắc vì PS1 không được đặt, đây là tác dụng phụ của việc thực hiện theo yêu cầu.
Dan Garthwaite

cả hai chỉ treo cho tôi
Aditya Mittal

@AdityaMittal Cả hai sẽ xuất hiện treo nếu bạn đang gọi một phiên tương tác vì không có dấu nhắc PS1. Hãy thử gõ 'ls /'
Dan Garthwaite

2

Bạn có thể thay thế dòng / bin / đồng hồ .... bằng

 if ps ax | grep /bin/watch | grep -v grep  > /dev/null 2>&1
 then
    echo "Nothing to do"
 else
    /bin/watch ~/checker.bash
 fi

hoặc một số điều như vậy.


Tuyệt. Trong trường hợp này, tôi có thể có nhiều shell chạy watchlệnh, nhưng tôi thích giải pháp.
ljs.dev
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.