Este é o comando lshell que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
lshell - Shell limitado
SINOPSE
concha [OPÇÕES]
DESCRIÇÃO
concha fornece um shell limitado configurado por usuário. A configuração está bem feita
simplesmente usando um arquivo de configuração. Juntamente com ssh's autorizado_chaves ou com / etc / shells
e / Etc / passwd , torna-se muito fácil restringir o acesso do usuário a um conjunto limitado de
comando.
OPÇÕES
--config
Especifique o arquivo de configuração
--registro
Especifique o diretório de log
-
Onde é * qualquer * parâmetro de arquivo de configuração
-h, --Socorro
Mostrar mensagem de ajuda
--versão
Mostrar versão
CONFIGURAÇÃO
Você pode configurar o lshell por meio de seu arquivo de configuração:
On Linux -> /etc/lshell.conf
On * BSD -> / usr /{pacote, local} /etc/lshell.conf
concha a configuração tem 4 tipos de seções:
[global] -> concha . • Configuração (só 1)
[predefinição] -> concha omissão usuário • Configuração (só 1)
[foo] -> UNIX nome de usuário "foo" específico • Configuração
[grp: bar] -> UNIX nome do grupo "Barra" específico • Configuração
A ordem de prioridade ao carregar as preferências é a seguinte:
1- Utilizador • Configuração
2- Grupo • Configuração
3- Padrão • Configuração
[global]
caminho de registro
caminho de configuração (o padrão é / var / log / lshell /)
nível de log
0, 1, 2, 3 ou 4 (0: nenhum registro -> 4: registra tudo)
nome do arquivo de log
- definido como syslog a fim de registrar no syslog
- definir o nome do arquivo de log, por exemplo,% u-% y% m% d (por exemplo, foo-20091009.log): %u -> nome de usuário
%d -> dia [1..31]
%m -> mês [1..12]
%y -> ano [00..99]
%h -> hora [00: 00..23: 59]
nome do log do sistema
caso você esteja usando syslog, defina seu nome de log (padrão: lshell)
include_dir
inclui um diretório contendo vários arquivos de configuração. Esses arquivos podem apenas
contém a configuração padrão / usuário / grupo. A configuração global será apenas
carregado do arquivo de configuração padrão. Esta variável será expandida (por exemplo
/caminho/*.conf).
[predefinição] e / ou [Nome de usuário] e / ou [grp: nome do grupo]
aliases
lista de aliases de comando (semelhante à diretiva de alias do bash)
permitidas
uma lista dos comandos permitidos ou definido como 'all' para permitir todos os comandos no PATH do usuário
permitido_cmd_path
uma lista de caminhos; todos os arquivos executáveis dentro deste caminho serão permitidos
caminho_env
atualize a variável de ambiente $ PATH do usuário (opcional)
env_vars
definir variáveis de ambiente (opcional)
proibido
uma lista de caracteres ou comandos proibidos
arquivo_histórico
definir o nome do arquivo do histórico. Um curinga pode ser usado:
%u -> nome de usuário (por exemplo, '/casa/% u / .lhistory ')
tamanho_histórico
definir o tamanho máximo (em linhas) do arquivo de histórico
home_path (descontinuada)
definir a pasta inicial do seu usuário. Se não for especificado, o diretório inicial é definido como
a variável de ambiente $ HOME. Esta variável será removida na próxima versão
do lshell, use as ferramentas do seu sistema para definir o diretório pessoal de um usuário. UMA
curinga pode ser usado:
%u -> nome de usuário (por exemplo, '/casa/%você')
introdução definir a introdução para imprimir no login
script_login
defina o script para ser executado no login do usuário
passwd senha do usuário específico (o padrão é vazio)
caminho lista de caminhos para restringir o usuário geograficamente. É possível usar curingas
(por exemplo, '/ var / log / ap *').
pronto definir o formato do prompt do usuário (padrão: nome de usuário)
%u -> nome de usuário
%h -> hostname
prompt_short
definir prompt de classificação atualização do diretório atual - definir como 1 ou 0 exagero lista de comando
permissão para executar sobre ssh (por exemplo, rsync, rdiff-backup, scp, etc.)
scp permitir ou proibir o uso de conexão scp - definir como 1 ou 0
scpforce
forçar arquivos enviados por meio de scp para um diretório específico
scp_download
definido como 0 para proibir downloads de scp (o padrão é 1)
scp_upload
definido como 0 para proibir uploads de scp (o padrão é 1)
Sftp permitir ou proibir o uso de conexão sftp - defina como 1 ou 0.
AVISO: Esta opção não funcionará se você estiver usando o serviço sftp interno do OpenSSH
(por exemplo, quando configurado em chroot)
sudo_commands
uma lista dos comandos permitidos que podem ser usados com sudo(8). Se definido como ´todos ', todos
os comandos 'permitidos' serão acessíveis através sudo(8).
É possível usar o sinalizador -u sudo para executar um comando como um diferente
usuário do que a raiz padrão.
cronômetro um valor em segundos para o cronômetro da sessão
rigoroso rigidez de registro. Se definido como 1, qualquer comando desconhecido é considerado proibido,
e o contador de avisos do usuário é reduzido. Se definido como 0, o comando é considerado como
desconhecido, e o usuário é apenas avisado (ou seja, *** sintaxe desconhecida)
warning_counter
número de avisos quando o usuário insere um valor proibido antes de sair do
lshell. Definido como -1 para desabilitar o contador, e apenas avisar o usuário.
SHELL CONSTRUÍDAS EM COMANDOS
Aqui está o conjunto de comandos que estão sempre disponíveis com lshell:
remover filtragem limpa o terminal
Socorro, ?
imprimir a lista de comandos permitidos
história
imprimir o histórico de comandos
caminho lista todos os caminhos permitidos e proibidos
lsudo lista todos os comandos permitidos sudo
EXEMPLOS
$ concha
Tenta executar o lshell usando o padrão $ {PREFIX} /etc/lshell.conf como arquivo de configuração.
Se falhar, um aviso é impresso e o lshell é interrompido. as opções do lshell são
carregado do arquivo de configuração
$ concha --config /caminho/para/meuconf.arquivo --registro /caminho/para/meulog.log
Isto irá substituir as opções padrão especificadas para configuração e / ou arquivo de log
USO CASO
O objetivo principal do lshell era ser capaz de criar contas shell com acesso ssh e
restringir seu ambiente a alguns comandos necessários. Neste exemplo, o usuário 'foo' e
o usuário 'bar' pertence ao grupo UNIX de 'usuários':
Utilizador foo:
- deve ser capaz de acessar / usr e / var mas não / usr / local
- usuário todos os comandos em seu PATH, mas 'su'
- tem um contador de aviso definido para 5
- tem seu caminho inicial definido como '/ home / users'
Utilizador Barra:
- deve ser capaz de acessar / Etc e / usr mas não / usr / local
- são permitidos comandos padrão mais 'ping' menos 'ls'
- o rigor é definido como 1 (o que significa que ele não tem permissão para digitar um comando desconhecido)
Nesse caso, meu arquivo de configuração será semelhante a este:
# CONFIURAÇÃO Abra
[global]
caminho de registro : / var / log / lshell /
nível de log : 2
[predefinição]
permitidas : ['ls', 'pwd']
proibido : [';', '&', '|']
warning_counter : 2
cronômetro : 0
caminho : ['/ Etc', '/ usr']
caminho_env : ':/ sbin:/ usr / bin /'
scp : 1 # or 0
Sftp : 1 # or 0
exagero : ['rsync', 'ls']
aliases : {'ls': 'ls --color = auto ',' ll ':' ls -eu'}
[grp: usuários]
warning_counter : 5
exagero : - ['ls']
[foo]
permitidas : 'tudo' - ['su']
caminho : ['/ var', '/ usr'] - ['/ usr / local']
home_path : '/ home / users'
[Barra]
permitidas : + ['ping'] - ['ls']
caminho : - ['/ usr / local']
rigoroso : 1
scpforce : '/ home / bar / uploads /'
# CONFIURAÇÃO END
NOTAS
Para registrar os avisos de um usuário no diretório de registro (padrão / var / log / lshell /)
você deve primeiro criar a pasta (se ainda não existir) e transferi-la para o grupo lshell:
# adicionar grupo --sistema concha
# mkdir / var / log / lshell
# chown : lshell / var / log / lshell
# chmod 770 / var / log / lshell
em seguida, adicione o usuário ao concha grupo:
# usermod -aG concha user_name
Para definir lshell como shell padrão para um usuário:
On Linux:
# chsh -s / usr / bin / lshell user_name
On * BSD:
# chsh -s / usr /{pacote, local} / bin / lshell user_name
Use lshell online usando serviços onworks.net