Kişi su ile komut çalıştırırken nasıl kabuk parametreleri ekler?


0

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.


Ancak, tüm bu özel profil değişkenleri yüklü değil tarafından kullanıcının kabuğu? Su's kabuğuyla çağrılıp çağrılmayacağı gerçekten önemli mi?
grawity

Evet .. önemli. sudo -u $ user echo 1, güvenlik ve çalışma dizini bağlamından su - $ user --command "echo 1" den çok farklı.
Rusty Weber

Galiba bunun nedeni çoğunlukla -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.)
grawity
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.