tôi sử dụng này:
su -l $MUSER -c "myCommand args..."
Cập nhật: Vì không quan tâm đến câu trả lời này, tôi giải thích cách tôi sử dụng nó ở đây.
Chúng tôi chạy máy chủ như người dùng Linux bình thường, không phải root. Tên người dùng chứa ba phần:
dịch vụ, khách hàng, sân khấu
Bằng cách này chúng ta có thể chạy một số dịch vụ cho một số khách hàng trong một hệ điều hành Linux.
Ví dụ: Dịch vụ foo_bar_p "foo" của khách hàng "thanh" và "p" có nghĩa là sản xuất
Đây là một phần của init script. Init script có thể được thực hiện như là người chủ hoặc là người dùng foo_bar_p:
# /etc/init.d/foo_bar_p-celeryd
# scriptname contains linux username
SCRIPT_NAME=`basename "$0"`
SYSTEM=${SCRIPT_NAME%*-celeryd}
U=`id -nu`
if [ ! $U == $SYSTEM ]; then
if [ $U == "root" ]; then
# use "-l (login)" to delete the environment variables of the calling shell.
exec su -l $SYSTEM -c "$0 [email protected]"
fi
echo "Script must be run from $SYSTEM or root. You are '$U'"
rc_exit 1
fi
# OK, now I am foo_bar_p
cd
. $HOME/.bashrc
....
sử dụng loại lệnh "su -c" lệnh của bạn 'different_user " – vikky
Như @Henrick đã chỉ ra trong câu trả lời của họ bên dưới, các tập lệnh mới nổi có thể sử dụng [stuza cấu hình setuid'] (http://upstart.ubuntu.com)/cookbook/# setuid) để đặt người dùng. – clayzermk1