Ben sadece bir şey yapabilen bir kullanıcı oluşturmak istiyorum: ssh aracılığıyla belirli bir klasörde (bu sorunun amaçları için bizi arayalım /local/remote_only_scripts/foo
) bulunan bir komut dosyası (ve komut dosyasına komut satırı bağımsız değişkenleri) belirtin ve bu komut dosyasını yürütmek ve çıktısını döndür.
Bazı örnekler verebilmek için kullanıcının yapmasını istemiyorum:
- Hesaba yerel olarak giriş yapın. Giriş uygulaması
/bin/login
./local/remote_only_scripts/foo
Klasördeki bir komut dosyası değildir , bu nedenle kullanıcı tarafından çağrılmamalıdır. - Hesaba uzaktan giriş yapın. Tekrar giriş yapın (ssh tarafından ne denir?) İlgili klasörde bir betik değildir.
- Dizinin içeriğini listeleyin. İçinde
/bin/ls
. Uygun dizinde bir komut dosyası değil. - Bu dizindeki bir dosyayı düzenleyin. emacs, vi, gedit diğer editörlerin çoğu bu dizinde senaryo değildir.
- Bu dizindeki bir dosyanın içeriğini görüntüleyin.
- Bu dizinde yürütme iznine sahip olmadığı bir dosyayı yürütün.
Bu olduklarını Not örnekleri ben kullanıcı yapabilmek istemiyorum diğer birçok işlem vardır. Bir eylemi düşünürken, "bu bir komut dosyası tarafından yapılıyor /local/remote_only_scripts/foo
mu?" cevap hayır ise kullanıcı bunu yapamaz. Cevabınız evet ise, kullanıcı bunu yapabilmelidir.
Not: "Kullanıcı ekleyerek" ne demek istediğimi açıklığa kavuşturalım. Bazı ssh alt sistemlerine kullanıcı eklemek demek istemiyorum. Aksine, bilgisayar sistemine bir kullanıcı eklemek demek. Yani, örneğin, debian kararlı çalışan bir sistemim var, adresi, www.hg.bar.com. Bir kullanıcı eklemek istiyorum (kuser, users-admin veya useradd veya benzeri bir şekilde) onu hg_guest olarak adlandırın. hg_guest yerel olarak giriş yapamaz veya yukarıdaki listedeki herhangi bir işlemi yapamaz. Tüm hg_guest yapabileceğiniz komut dosyaları "uzaktan" yürütmektir. Bunu ssh ile yapabilmesi gerektiğini söyledim, ancak şimdi düşünüyor olabilir, belki de ssh kullanmasına izin vermek yerel olarak oturum açmasına izin verebilir, bu yüzden başka bir mekanizma gerekli olabilir.