Câu trả lời:
su
không phải là người dùng , chương trình sẽ chạy các lệnh / chương trình tiếp theo dưới danh tính thay thế của người dùng khác thay vì người thực hiện lệnh. Nó rất giống với sudo
vấn đề đó.
Trừ khi người dùng khác được chỉ định, cả hai lệnh sẽ mặc định chạy lệnh dưới danh tính thay thế của root
người dùng, siêu người dùng / quản trị viên.
Sự khác biệt chính giữa su
và sudo
là:
su
yêu cầu bạn biết mật khẩu của người dùng thay thế đó, ở đâusudo
sẽ nhắc nhập mật khẩu của người dùng đang chạy sudo
lệnh và yêu cầu thiết lập để người dùng được phép chạy các lệnh / chương trình được yêu cầu.(Khi root
chạy su
hoặc sudo
không yêu cầu mật khẩu.)
Giống như bất kỳ tập lệnh init nào, /etc/rc.local
tập lệnh được root
người dùng thực thi và bạn không cần phải thêm trước su
hoặc sudo
vào các lệnh / chương trình cần chạy dưới quyền root.
Bạn vẫn có thể cần phải sử dụng su
hoặc sudo
trong các tập lệnh init của mình nếu các lệnh đó cần được thực thi không phải nhưroot
một tài khoản người dùng / dịch vụ khác ...
su -
oracle
/do/something/as/oracle/user
Có, tất cả các tập lệnh và chương trình được gọi trực tiếp bằng root.
Các /etc/rc.local
tập tin được gọi trực tiếp bởi quá trình init.
sudo
trước khi các lệnh trong /etc/rc.local
?