Я пытаюсь сделать SSH-логин для кого-то на моем компьютере. Но когда они входят в систему, я хочу, чтобы он автоматически загружал скрипт Perl, и чтобы они ТОЛЬКО громко могли видеть / использовать этот скрипт perl.
Я знаю только, как использовать команду useradd, я не знаю, как установить perms ect.
Я не знаю, как это объяснить более подробно. Но любая помощь будет приятной !!!
Создайте нового пользователя для этого «кого-то» и укажите свой perl
скрипт в своем домашнем каталоге, а затем сделайте запись в его .bash_profile
для вызова perl
сценарий.
К вашему сведению: ~ / .bash_profile запускается во время каждой оболочки входа в систему (например: ssh, переключение пользователя и т. Д.)
Пример:
suku@ubuntu-vm:~$ cat hello.pl
#!/usr/bin/perl
print "Hello World\n";
suku@ubuntu-vm:~$ cat .bash_profile
perl ~/hello.pl
suku@ubuntu-vm:~$ su - suku
Password:
Hello World
[РЕДАКТИРОВАТЬ] useradd -m username
создаст пользователя с его домашним каталогом как /home/username
Если вы действительно хотите ограничить область действия этого пользователя только для чтения и выполнения вашего сценария perl, вам необходимо установить неизменяемый атрибут для его домашнего каталога
Установка неизменяемого атрибута:
sudo chattr +i /home/username
Удаление неизменяемого атрибута:
sudo chattr -i /home/username
Если вы это сделаете, этот пользователь не сможет ничего нового в своем домашнем каталоге. Но он может выполнить / прочитать ваш Perl-скрипт
Лучший способ сделать это - использовать файл authorized_keys. Вы можете ограничить пользователя запуском только одной команды с одним ключом. Итак, если пользователь войдет в систему с одним указанным ключом, он сможет выполнить только одну команду.
Настройка заключается в использовании директивы command = "", указанной в файле authorized_keys. Синтаксис для этого выглядит так:
command ="command", KEY
Это говорит SSH запустить команду, а затем выйти. Это эффективно ограничивает вашу возможность запускать команды на удаленном сервере.
Для безопасного выполнения нескольких команд у вас есть несколько вариантов. Во-первых, рассмотрите возможность вызова сценария вместо команды. Например, запустите top, df -k и имя хоста из сценария оболочки с именем myscript.sh
и установить command="/path/to/myscript.sh"
. Во-вторых, если вам нужно запускать несколько команд в разное время в течение дня на одном и том же хосте, вы можете создать другой ключ для своего пользователя.
Для функции автоматической загрузки вы можете просто поместить его в .bash_profile, находящийся в их домашнем каталоге, как описано Суку.