Я хотів би створити користувача, який може робити лише одне: через ssh вкажіть скрипт (і аргументи командного рядка до сценарію), який знаходиться в одній конкретній папці (для цілей цього питання назвемо це /local/remote_only_scripts/foo
) і виконати цей сценарій і повернути його вихід.
Щоб було зрозуміло кілька прикладів того, що я не хочу, щоб користувач міг робити:
- Локально увійдіть до облікового запису. Додаток для входу є
/bin/login
. Це не скрипт у/local/remote_only_scripts/foo
папці, тому його не слід викликати користувачем. - Віддалене увійдіть в обліковий запис. Знову логін (це те, що викликається ssh?) - це не скрипт у відповідній папці.
- Перерахуйте вміст каталогу. ls в
/bin/ls
. Це не сценарій у відповідному каталозі. - Відредагуйте файл у цьому каталозі. emacs, vi, gedit більшість інших редакторів не є сценаріями в цій дирекції.
- Перегляньте вміст файлу в цьому каталозі.
- Виконайте файл у тому каталозі, який у нього немає дозволу на виконання.
Зауважте, що це приклади , є багато інших дій, які я не хочу, щоб користувач міг зробити. Розглядаючи дію, запитайте: "Це робиться за сценарієм у /local/remote_only_scripts/foo
?" якщо відповідь немає, користувач не повинен це зробити. Якщо відповідь "так", то користувач повинен це зробити.
PS: Дозвольте мені уточнити, що я маю на увазі під "додаванням користувача". Я не маю на увазі додавання користувача до якоїсь підсистеми ssh. Я швидше маю на увазі додавання користувача до комп'ютерної системи. Так, наприклад, у мене система debian стабільна, називайте її за її адресою, www.hg.bar.com. Я хочу додати користувача (через kuser, users-admin або useradd чи якимсь подібним способом) назвати його hg_guest. hg_guest не може ввійти локально або робити щось із наведеного вище списку. Все, що може зробити hg_guest, - це виконувати сценарії "віддалено". Я сказав, що він повинен це зробити через ssh, але, думаючи про це зараз, можливо, дозволити йому використовувати ssh, можливо, він дозволить йому ввійти локально, тому може знадобитися якийсь інший механізм.