{"id":4841,"date":"2020-04-19T03:11:54","date_gmt":"2020-04-19T06:11:54","guid":{"rendered":"https:\/\/blog.clusterweb.com.br\/?p=4841"},"modified":"2020-04-19T03:11:54","modified_gmt":"2020-04-19T06:11:54","slug":"lshell-limitando-ambiente-e-comandos-a-usuarios-grupos","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4841","title":{"rendered":"LSHELL &#8211; LIMITANDO AMBIENTE E COMANDOS A USU\u00c1RIOS\/GRUPOS"},"content":{"rendered":"<p>Esta dica ir\u00e1 mostrar um exemplo de configura\u00e7\u00e3o do\u00a0<em>lshell<\/em>, em um sistema\u00a0<em>Debian Squeeze<\/em>, para limitar a execu\u00e7\u00e3o de comandos previamente liberados para um determinado usu\u00e1rio ou grupo, bem como os diret\u00f3rios aos quais o usu\u00e1rio poder\u00e1 ter acesso, dentre outras op\u00e7\u00f5es relacionadas ao seu ambiente shell.<\/p>\n<p>Instala\u00e7\u00e3o do lshell:<\/p>\n<p><strong># aptitude install lshell<\/strong><\/p>\n<p>Configura\u00e7\u00e3o do lshell &#8211;\u00a0<em>\/etc\/lshell.conf<\/em>:<\/p>\n<p><strong># gedit \/etc\/lshell.conf<\/strong><\/p>\n<div class=\"codigo\">[global]<\/p>\n<p><span class=\"comentario\">## Diret\u00f3rio de logs.<br \/>\n## Usu\u00e1rio deve ser membro do grupo lshell.<\/span><br \/>\nlogpath\u00a0\u00a0\u00a0\u00a0\u00a0: \/var\/log\/lshell\/<\/p>\n<p><span class=\"comentario\">## N\u00edvel de log: 0, 1, 2 ou 3.<\/span><br \/>\nloglevel\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 3<\/p>\n<p><span class=\"comentario\">## Nome do arquivo de log. (Padr\u00e3o %u.log. Ex: usuario.log)<\/span><br \/>\nlogfilename\u00a0\u00a0\u00a0: %y%m%d-%u<\/p>\n<p><span class=\"comentario\">## Configura\u00e7\u00e3o padr\u00e3o. Poder\u00e3o ser criadas configura\u00e7\u00f5es<br \/>\n## separadas para cada usu\u00e1rio ou grupo.<br \/>\n## Ex: [usuariox], [grp:users]<\/span><br \/>\n[default]<\/p>\n<p><span class=\"comentario\">## Lista de comandos permitidos ao usu\u00e1rio. Use &#8216;all&#8217; para permitir<br \/>\n## todos os comandos na vari\u00e1vel PATH do usu\u00e1rio.<\/span><br \/>\nallowed\u00a0\u00a0\u00a0\u00a0\u00a0: [&#8216;ls&#8217;,&#8217;echo&#8217;,&#8217;cd&#8217;,&#8217;ll&#8217;,&#8217;date&#8217;,&#8217;hora&#8217;,&#8217;vim&#8217;,&#8217;vi&#8217;,&#8217;cat&#8217;]<\/p>\n<p><span class=\"comentario\">## Lista de comandos ou caracteres proibidos.<\/span><br \/>\nforbidden\u00a0\u00a0\u00a0\u00a0\u00a0: [&#8216;;&#8217;, &#8216;&amp;&#8217;, &#8216;|&#8217;,&#8217;`&#8217;,&#8217;&gt;&#8217;,'&lt;&#8216;, &#8216;$(&#8216;, &#8216;${&#8216;, &#8216;cat&#8217;]<\/p>\n<p><span class=\"comentario\">## Lista de comandos permitidos quando usados com sudo.<br \/>\n## Devem estar previamente configurados em \/etc\/sudoers.<\/span><br \/>\nsudo_commands\u00a0\u00a0\u00a0\u00a0: [&#8216;modprobe&#8217;, &#8216;iptables&#8217;]<\/div>\n<div class=\"codigo\">\n<span class=\"comentario\">## N\u00famero de avisos que o usu\u00e1rio ter\u00e1 antes de ser desconectado<br \/>\n## ap\u00f3s tentar entrar em um diret\u00f3rio n\u00e3o permitido ou executar<br \/>\n## um comando da lista &#8216;forbidden&#8217;.<\/span><br \/>\nwarning_counter : 5<\/p>\n<p><span class=\"comentario\">## Aliases para comandos. (alias e comando devem estar na lista &#8216;allowed&#8217;)<\/span><br \/>\naliases\u00a0\u00a0\u00a0\u00a0\u00a0: {&#8216;ll&#8217;:&#8217;ls -l&#8217;, &#8216;vi&#8217;:&#8217;vim&#8217;, &#8216;hora&#8217;:&#8217;date +%H:%M&#8217;}<\/p>\n<p><span class=\"comentario\">## Texto a ser exibido ao iniciar o lshell.<\/span><br \/>\nintro\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: &#8220;== Ambiente restrito ==\\nDigite &#8216;?&#8217; ou &#8216;help&#8217; para ver a lista de comandos permitidos.&#8221;<\/p>\n<p><span class=\"comentario\">## Tempo m\u00e1ximo de inatividade em segundos antes<br \/>\n## do usu\u00e1rio ser automaticamente desconectado.<\/span><br \/>\ntimer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 300<\/p>\n<p><span class=\"comentario\">## Lista de pastas as quais poder\u00e3o ser acessadas pelo usu\u00e1rio.<\/span><br \/>\npath\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: [&#8216;\/tmp\/&#8217;,&#8217;\/var&#8217;]<\/p>\n<p><span class=\"comentario\">## Define o diret\u00f3rio home do usu\u00e1rio. Se n\u00e3o especificado,<br \/>\n## sera utilizado o valor da vari\u00e1vel de ambiente $HOME.<br \/>\n#home_path\u00a0\u00a0\u00a0\u00a0: &#8216;\/home\/usuario\/&#8217;<\/p>\n<p>## Altera a vari\u00e1vel de ambiente PATH do usu\u00e1rio.<br \/>\n#env_path\u00a0\u00a0\u00a0\u00a0: &#8216;:\/usr\/local\/bin:\/usr\/sbin&#8217;<\/p>\n<p>## Permite ou pro\u00edbe o uso de SCP pelo usu\u00e1rio. ( 1 permitir &#8211; 0 negar)<\/span><br \/>\nscp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 1<\/p>\n<p><span class=\"comentario\">## Permite ou pro\u00edbe uploads com SCP ( 1 permitir &#8211; 0 negar).<br \/>\n## Par\u00e2metro &#8216;scp&#8217; deve possuir valor 1.<\/span><br \/>\nscp_upload\u00a0\u00a0\u00a0\u00a0: 1<\/p>\n<p><span class=\"comentario\">## Permite ou pro\u00edbe downloads com SCP ( 1 permitir &#8211; 0 negar).<br \/>\n## Par\u00e2metro &#8216;scp&#8217; deve possuir valor 1.<\/span><br \/>\nscp_download\u00a0\u00a0\u00a0\u00a0: 0<\/p>\n<p><span class=\"comentario\">## Permite ou pro\u00edbe o uso de SFTP ( 1 permitir &#8211; 0 negar).<\/span><br \/>\nsftp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 1<\/p>\n<p><span class=\"comentario\">## Lista de comandos permitidos atrav\u00e9s de SSH.<br \/>\n## Ex: ssh usario@host &#8216;ls ~&#8217;<\/span><br \/>\noverssh\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: [&#8216;ls&#8217;,&#8217;rsync&#8217;]<\/p>\n<p><span class=\"comentario\">## Considerar ou n\u00e3o comandos inv\u00e1lidos como a\u00e7\u00e3o proibida, se 1,<br \/>\n## comandos inv\u00e1lidos ir\u00e3o gerar avisos que poder\u00e3o desconectar<br \/>\n## o usu\u00e1rio, conforme par\u00e2metro &#8216;warning_counter&#8217;.<\/span><br \/>\nstrict\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: 0<\/p>\n<p><span class=\"comentario\">## For\u00e7ar pasta de destino para arquivos enviados por SCP.<\/span><br \/>\nscpforce\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: &#8220;\/tmp&#8221;<\/p>\n<p><span class=\"comentario\">## tamanho m\u00e1ximo do arquivo history.<\/span><br \/>\nhistory_size\u00a0\u00a0\u00a0\u00a0: 100<\/p>\n<p><span class=\"comentario\">## Nome do arquivo contendo o hip\u00f3trico de comandos.<\/span><br \/>\nhistory_file\u00a0\u00a0\u00a0\u00a0: &#8220;\/home\/%u\/.lshell_history&#8221;<\/div>\n<p><!--more--><\/p>\n<h1>EXECU\u00c7\u00c3O DO LSHELL<\/h1>\n<p>Para carregar o lshell a partir de uma sess\u00e3o j\u00e1 existente, execute-o passando como par\u00e2metro o caminho do arquivo de configura\u00e7\u00e3o &#8220;lshell.conf&#8221;:<\/p>\n<p><strong># lshell &#8211;config \/etc\/lshell.conf<\/strong><\/p>\n<p>Para definir o lshell como shell padr\u00e3o para um determinado usu\u00e1rio, use o comando\u00a0<em>usermod<\/em>\u00a0ou\u00a0<em>chsh<\/em>:<\/p>\n<p><strong># usermod -s \/usr\/bin\/lshell usuario<\/strong><br \/>\nOu:<br \/>\n<strong># chsh -s \/usr\/bin\/lshell usuario<\/strong><\/p>\n<p>Caso queira habilitar os logs para um determinado usu\u00e1rio, insira-o no grupo &#8220;lshell&#8221;, o qual possui permiss\u00e3o de escrita na pasta\u00a0<em>\/var\/log\/lshell<\/em>:<\/p>\n<p><strong># usermod -aG lshell usuario<\/strong><\/p>\n<p>Se tiver definido o lshell como shell padr\u00e3o para um determinado usu\u00e1rio, basta efetuar login com ele e o lshell dever\u00e1 ser iniciado.<\/p>\n<p>Para mais informa\u00e7\u00f5es de configura\u00e7\u00e3o, verifique o arquivo:\u00a0<em>\/usr\/share\/doc\/lshell\/README.gz<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta dica ir\u00e1 mostrar um exemplo de configura\u00e7\u00e3o do\u00a0lshell, em um sistema\u00a0Debian Squeeze, para limitar a execu\u00e7\u00e3o de comandos previamente liberados para um determinado usu\u00e1rio ou grupo, bem como os diret\u00f3rios aos quais o usu\u00e1rio poder\u00e1 ter acesso, dentre outras op\u00e7\u00f5es relacionadas ao seu ambiente shell. Instala\u00e7\u00e3o do lshell: # aptitude install lshell Configura\u00e7\u00e3o do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1082,730,1,830,79,42,51,495,271,501,548],"tags":[773,1027,60,351,1464,1463,1462,115],"class_list":["post-4841","post","type-post","status-publish","format-standard","hentry","category-centos-7-rhel-7","category-clusterweb","category-viazap","category-debian","category-firewall","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-seguranca-2","category-shell-script","category-ubuntu-2","tag-a","tag-ambiente","tag-comandos","tag-e","tag-grupos","tag-limitando","tag-lshell","tag-usuarios"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4841","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4841"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4841\/revisions"}],"predecessor-version":[{"id":4842,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4841\/revisions\/4842"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}