Це команда lshell, яку можна запустити в безкоштовному хостинг-провайдері OnWorks за допомогою однієї з наших безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS
ПРОГРАМА:
ІМ'Я
lshell - Limited Shell
СИНТАКСИС
lshell [ВАРІАНТИ]
ОПИС
lshell надає обмежену оболонку, налаштовану для кожного користувача. Конфігурація зроблена цілком
просто за допомогою файлу конфігурації. У поєднанні з ssh санкціоновані_ ключі або / etc / shell
та / etc / passwd , стає дуже легко обмежити доступ користувача до обмеженого набору
команда
ВАРІАНТИ
--config
Вкажіть конфігураційний файл
-- журнал
Вкажіть каталог журналу
--
де є *будь-яким* параметром файлу конфігурації
-h, --допомога
Показати довідкове повідомлення
-- версія
Показати версію
КОНФІГУРАЦІЯ
Ви можете налаштувати lshell за допомогою його конфігураційного файлу:
On Linux -> /etc/lshell.conf
On * BSD -> /usr/{pkg,локальний}/etc/lshell.conf
lshell Конфігурація має 4 типи розділів:
[глобальний] -> lshell система конфігурація (тільки 1)
[за замовчуванням] -> lshell дефолт користувач конфігурація (тільки 1)
[фу] -> UNIX ім'я користувача "foo" конкретний конфігурація
[grp:бар] -> UNIX назва групи "бар" конкретний конфігурація
Порядок пріоритету під час завантаження параметрів такий:
1- користувач конфігурація
2- Group конфігурація
3- дефолт конфігурація
[глобальний]
logpath
конфігураційний шлях (за замовчуванням /var/log/lshell/)
LogLevel
0, 1, 2, 3 або 4 (0: без журналів -> 4: журналює все)
ім'я файлу журналу
- встановлений в системний журнал щоб увійти до syslog
- встановити назву файлу журналу, наприклад, %u-%y%m%d (тобто foo-20091009.log): %u -> ім'я користувача
%d -> день [1..31]
%m -> місяць [1..12]
%y -> рік [00..99]
%h -> час [00:00..23:59]
syslogname
якщо ви використовуєте syslog, встановіть своє ім’я журналу (за замовчуванням: lshell)
include_dir
включити каталог, що містить декілька конфігураційних файлів. Ці файли можуть лише
містить конфігурацію за замовчуванням/користувачем/групою. Глобальна конфігурація буде тільки
завантажується з файлу конфігурації за замовчуванням. Цю змінну буде розширено (наприклад,
/шлях/*.conf).
[за замовчуванням] та / або [Ім'я користувача] та / або [grp:назва групи]
псевдоніми
список псевдонімів команд (подібно до директиви псевдонімів bash)
дозволено
список дозволених команд або встановіть «усі», щоб дозволити всі команди в PATH користувача
дозволений_шлях_cmd
список шляхів; усі виконувані файли всередині цього шляху будуть дозволені
env_path
оновити змінну середовища $PATH користувача (необов’язково)
env_vars
встановити змінні середовища (необов'язково)
заборонений
список заборонених символів або команд
файл_історії
встановити назву файлу історії. Можна використовувати символ підстановки:
%u -> ім'я користувача (наприклад, '/ home /%u/.lhistory')
history_size
встановити максимальний розмір (у рядках) файлу історії
домашній_шлях (застаріло)
встановити домашню папку вашого користувача. Якщо не вказано, для домашнього каталогу встановлено значення
змінна середовища $HOME. Цю змінну буде видалено в наступній версії
lshell, використовуйте інструменти вашої системи, щоб установити домашній каталог користувача. А
можна використовувати символ підстановки:
%u -> ім'я користувача (наприклад, '/ home /%u')
Введення налаштуйте друк вступу під час входу
login_script
визначте сценарій для запуску під час входу користувача
passwd пароль конкретного користувача (за замовчуванням порожній)
шлях список шляхів для географічного обмеження користувача. Можна використовувати символи підстановки
(наприклад, '/var/log/ap*').
підказка встановити формат підказки користувача (за замовчуванням: ім'я користувача)
%u -> ім'я користувача
%h -> ім'я хоста
prompt_short
встановити запит на сортування поточне оновлення каталогу - встановити значення 1 або 0 overssh список команд
дозволено виконувати через ssh (наприклад, rsync, rdiff-backup, scp тощо)
СКП дозволити або заборонити використання з'єднання scp - встановити 1 або 0
scpforce
примусово відправляти файли через scp у певний каталог
scp_download
встановіть 0, щоб заборонити завантаження scp (за замовчуванням 1)
scp_upload
встановіть 0, щоб заборонити завантаження scp (за замовчуванням 1)
sftp дозволити або заборонити використання з'єднання sftp - встановити 1 або 0.
ПОПЕРЕДЖЕННЯ: цей параметр не працюватиме, якщо ви використовуєте внутрішню службу OpenSSH sftp
(наприклад, якщо налаштовано в chroot)
sudo_commands
список дозволених команд, які можна використовувати з Суду(8). Якщо встановлено «всі», всі
"дозволені" команди будуть доступні через Суду(8).
Можна використовувати прапорець -u sudo, щоб запустити команду як іншу
користувач, ніж root за замовчуванням.
таймер значення в секундах для таймера сеансу
строгий суворість ведення журналів. Якщо встановлено значення 1, будь-яка невідома команда вважається забороненою,
і лічильник попереджень користувача зменшується. Якщо встановлено значення 0, команда вважається
невідомо, і користувач отримує лише попередження (тобто *** невідомий синтаксис)
лічильник_попереджень
кількість попереджень, коли користувач вводить заборонене значення перед виходом
lshell. Встановлений в -1 вимкнути лічильник і просто попередити користувача.
SHELL Вбудований КОМАНДИ
Ось набір команд, які завжди доступні з lshell:
ясно очищає термінал
допомогти, ?
надрукувати список дозволених команд
історія
роздрукувати історію команд
lpath містить список усіх дозволених і заборонених шляхів
lsudo містить список усіх дозволених команд sudo
ПРИКЛАДИ
$ lshell
Намагається запустити lshell, використовуючи стандартний ${PREFIX}/etc/lshell.conf як файл конфігурації.
Якщо це не вдається, друкується попередження і lshell переривається. Параметри lshell є
завантажується з файлу конфігурації
$ lshell --config /шлях/до/myconf.file -- журнал /шлях/до/mylog.log
Це замінить параметри за замовчуванням, указані для конфігурації та/або файлу журналу
ВИКОРИСТАННЯ СПРАВА
Основною метою lshell була можливість створювати облікові записи оболонки з доступом по ssh і
обмежити їх середовище парою необхідних команд. У цьому прикладі користувач 'foo' і
user 'bar' обидва належать до групи 'users' UNIX:
користувач foo:
- повинен мати доступ / usr та / var але не / usr / local
- команда користувача all у своєму PATH, але 'su'
- має лічильник попереджень, встановлений на 5
- його домашній шлях встановлено на '/home/users'
користувач бар:
- повинен мати доступ / Etc та / usr але не / usr / local
- дозволені команди за замовчуванням плюс 'ping' мінус 'ls'
- строгість встановлена на 1 (це означає, що йому заборонено вводити невідому команду)
У цьому випадку мій файл конфігурації виглядатиме приблизно так:
# КОНФІУРАЦІЯ Почати гру
[глобальний]
logpath : /var/log/lshell/
LogLevel : 2
[за замовчуванням]
дозволено : ['ls','pwd']
заборонений : [';', '&', '|']
лічильник_попереджень : 2
таймер : 0
шлях : ['/ Etc', '/ usr']
env_path : ':/ sbin:/ usr / bin /'
СКП : 1 # or 0
sftp : 1 # or 0
overssh : ['rsync','ls']
псевдоніми : {'ls':'ls --color=auto','ll':'ls -l'}
[grp:користувачі]
лічильник_попереджень : 5
overssh : - ['ls']
[фу]
дозволено : 'все' - ['su']
шлях : ['/ var', '/ usr'] - ['/ usr / local']
домашній_шлях : '/home/users'
[бар]
дозволено : + ['ping'] - ['ls']
шлях : - ['/ usr / local']
строгий : 1
scpforce : '/home/bar/uploads/'
# КОНФІУРАЦІЯ END
ПРИМІТКИ
Щоб записати попередження користувача в каталог журналювання (за замовчуванням /var/log/lshell/)
спочатку потрібно створити папку (якщо вона ще не існує) і додати її до групи lshell:
# додати групу --система lshell
# mkdir /var/log/lshell
# Чаун :lshell /var/log/lshell
# CHMOD 770 /var/log/lshell
потім додайте користувача до lshell група:
# usermod -aG lshell user_name
Щоб встановити lshell як оболонку за замовчуванням для користувача:
On Linux:
# чш -s /usr/bin/lshell user_name
On *BSD:
# чш -s /usr/{pkg,локальний}/bin/lshell user_name
Використовуйте lshell онлайн за допомогою сервісів onworks.net