Điểm:0

Tập lệnh Linux: Cách KHÔNG thực thi hoàn toàn các lệnh cụ thể từ .bash_profile của người dùng khi bạn sudo cho người dùng thông qua tập lệnh

lá cờ pw

Đây là vấn đề tôi đang gặp phải: Tôi có một tập lệnh sẽ kiểm tra kích thước db của Oracle và thực thi SQL cụ thể dựa trên phiên bản tiên tri đang chạy trên hộp. Tập lệnh sẽ được chạy thông qua ansible để thực thi trên tất cả các máy chủ Oracle ( 400).

Vấn đề là Oracle .bash profile KHÔNG phải là tiêu chuẩn và trên thực tế, có hai phiên bản (hiện tại không thể sửa được vì nhiều lý do). Một bộ máy chủ có RMAN lệnh trong .bash_profile của người dùng Oracle.

Vì vậy, đối với những bộ máy chủ đó (~ 100 trong tổng số 400), tập lệnh trả về thông tin sao lưu khi được thực thi thông qua Ansible và đầu ra (chuyển sang định dạng excel) sẽ bị hỏng. Ai đó có thể đề xuất một cách để chúng tôi có thể hạn chế RMAN hoặc bất kỳ lệnh cụ thể nào khác từ việc thực thi khi chúng ta chuyển sang lệnh sudo?

paladin avatar
lá cờ kr
Làm cho nó không thể thực thi được? `chmod -x TÊN TỆP`
SBhardwaj avatar
lá cờ pw
oracle .bash_profile không thể thay đổi về quyền. Toàn bộ bối cảnh của nó mà tập lệnh này cần thực thi thông qua người dùng Ansible và ansible sẽ sudo thành oracle.
paladin avatar
lá cờ kr
Không, ý tôi là xóa quyền thực thi khỏi các tệp nhị phân cụ thể. Ví dụ: người dùng ansible của bạn sử dụng chương trình `/bin/myprogram`, bạn có thể từ chối điều đó bằng cách sử dụng `chmod -x /bin/myprogram`. Nhưng tôi thấy rằng đây có thể không phải là một giải pháp tốt cho vấn đề của bạn.
paladin avatar
lá cờ kr
Sẽ rất tốt nếu bạn biết lý do tại sao bạn không thể thay đổi `.bash_profile`, nếu điều này do hệ thống tệp chỉ đọc gây ra, bạn có thể thử gắn bất kỳ thư mục nào vào thư mục chính của người dùng đó, tức là: `mount --options liên kết /tmp/ /home/ansible/`, trước khi thử đăng nhập.
SBhardwaj avatar
lá cờ pw
Cảm ơn ý kiến ​​​​của bạn. Vài điều tôi không thể thay đổi quyền nhị phân vì nó sẽ cần phải được thực hiện cho toàn bộ cảnh quan của khoảng 400 máy chủ.Và nó sẽ có những hậu quả sâu rộng nếu tôi lấy đi quyền thực thi nhị phân cụ thể đó. Ngay cả khi tôi lấy đi và cấp lại nó ở cuối tập lệnh - tôi cũng không muốn làm điều đó vì bất kỳ việc thực thi tập lệnh không thành công nào cũng sẽ dẫn đến một vấn đề lớn hơn vì có một phần máy chủ sản xuất trong danh sách nơi tập lệnh sẽ được thực thi .
SBhardwaj avatar
lá cờ pw
Ý tưởng là thực hiện việc tự động hóa nhỏ này mà KHÔNG thay đổi môi trường bao gồm các máy chủ Oracle sản xuất. Có cách nào mà trong chính Tập lệnh của tôi, tôi có thể thực hiện một số việc thông qua mã không cho phép thực thi một lệnh/nhị phân cụ thể.
paladin avatar
lá cờ kr
Bạn có thể điều chỉnh tập lệnh của mình: `test -f /var/lock/LOCKFILE && echo true || echo false`, khi LOCKFILE tồn tại (tức là thông qua `touch /var/lock/LOCKFILE`), hãy thực hiện các lệnh của bạn, nếu không thì hãy thực hiện điều gì đó khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.