Tôi có tập lệnh shell cần tài khoản người dùng không phải root để chạy các lệnh nhất định và sau đó thay đổi người dùng thành root để chạy phần còn lại của tập lệnh. Tôi đang sử dụng SUSE11. Tôi đã sử dụng kỳ vọng tự động hóa lời nhắc mật khẩu. Nhưng khi tôi sử dụng spawn su - và lệnh được thực hiện, dấu nhắc quay trở lại với thư mục gốc và phần còn lại của tập lệnh không thực thi.Thay đổi thành người dùng root bên trong tập lệnh shell
Ví dụ:
< non-root commands>
spawn su -
<root commands>
Nhưng sau su - lời nhắc trả về với người dùng là người chủ. Cách thực thi phần còn lại của tập lệnh.
Tùy chọn sudo -S không hỗ trợ vì nó không chạy lệnh sudo -S ifconfig mà tôi cần tìm địa chỉ IP của máy.
Tôi đã trải qua những liên kết này nhưng không thể tìm ra một giải pháp: Change script directory to user's homedir in a shell script
Changing unix user in a shell script
Cảm ơn trước
Điều gì xảy ra nếu, thay vì root, hãy gọi nó là $ USERNAME2? Cảm ơn trước. – raja777m