Tôi đang gặp một số rắc rối với một tập lệnh mới bắt đầu của chúng tôi làm thay đổi người dùng và bắt đầu một vài quy trình trình tự ruby.
Trước đây tôi chỉ đơn giản là bash -c "do the business" -l someuser
đảm bảo sử dụng -l
cờ để giả lập thông tin đăng nhập.
Điều này đã làm việc rất tốt cho đến bây giờ, quá trình ruby của chúng tôi đã gặp phải lỗi require: no such file to load -- rubygems (LoadError)
sau : sau một số điều tra tôi thấy lỗi này chỉ xảy ra khi tôi chạy tập lệnh với tư cách là người dùng root, tức là (khi tôi sudo su
hoặc khi được chạy bởi mới bắt đầu).
Tôi nghĩ rằng đây là một vấn đề PATH vì khi tôi tự đặt đường dẫn trước, nó sẽ giải quyết vấn đề.
Có cách nào để thay đổi người dùng và tải toàn bộ môi trường không?
Tôi cũng đã thử su user -c
và sudo
.
Để làm cho nó dễ dàng hơn để kiểm tra tôi đang "root" ( sudo su
) và chạy which bundle
(bó là một thứ ruby).
Đây là những gì tôi nhận được:
sudo -i -u webuser which bundle
# => không có đầu rasu -l webuser -c which bundle
# => không có đầu rasudo su - webuser -c which bundle
# => không có đầu ra
Nhưng ssh'd trong như là webuser
which bundle
# => / opt / ruby / bin / bó
/etc/profile
~/.bash_profile
~/.bash_login
và ~/.profile
. Đối với shell đăng nhập, bash đánh giá chúng theo thứ tự nhất định.
su - user -c
chưa