Durum. Özel bir kabuğa yeniden yönlendirilen kısıtlı bir kullanıcının ortamını ayıkladım. Bunu yapabilmek için, aşağıdaki gibi su kullanarak o kullanıcı olarak komutlarını tam bağlamında çalıştırmam gerekiyor:
su - $user -c "echo hello world" --shell /bin/custom_shell
Komutu ve / bin / custom_shell komutunun çalıştıracağı komut parametrelerini açıkça değiştirebilirim, ancak custom_shell'in çalışacağı parametreyi nasıl eklerim? Bir "--debug" parametresi eklemeye örnek eşdeğer:
root->su - $user
$user->/bin/custom_shell --debug --command "echo hello world"
Not: sudo, pek çok profil değişkeni olduğu ve giriş yaparken yer alan çalışma dizini değişiklikleri olduğu için çalışmaz. Bu nedenle su kullanmamın nedeni budur. Ayrıca, bu komut dosyası çalıştırabilir ve aksi halde çalıştırabilmem gereken tuhaf bir sorun, su - $ kullanıcısı ve komutu el ile çalıştırmak işe yarayabilir .. Ancak, bu lüks yok.
-l
/ --login
su seçeneği, ancak sudo. (Ve ne yaparsa --login zaten, ne yapar? Kabuğu kendisi -l seçeneğiyle çalıştırır. Çok fazla değil.)