Duvida sobre ssh - GNU/Linux, BSD, Unix-like e software livre - Clube do Hardware
Duvida sobre ssh
Por ghs.gabriel, 17 de junho de 2015 em GNU/Linux, BSD, Unix-like e software livre
Tem um maluco que tem que mexer apenas em 1 pasta via ftp e ssh, criei o usuário dele com o comando "useradd -d /home/olas -m -c "Olas Skripter" -s /home/srv-001 olas" para ele mexer apenas na pasta srv-001 mas não estou conseguindo logar com o usuário dele no ssh nem no ftp da acesso negado. Tem que configurar alguma permissão ou algo do tipo?
Como é uma VPS, o ssh e o ftp já vieram configurados 100% para mim acessar com o root, mas com esse que criei não deu.
Porta do ftp e ssh é 22
O parâmetro '-s' não seria o caminho do shell do usuário ?
Eu acho que o teu caso seria melhor adicionar o usuário olas no grupo do srv-001, não achas ? Estando no grupo, tu podes aumentar as permissões desta para para 755. Qual é a tua intenção nesse caso ? Compartilhar o que ?
Minha intenção é que um usuário possa editar os arquivos de uma pasta "srv-001". Dentro da pasta srv-001, além dos arquivos tem uma aplicação java que roda (em uma screen). Minha ideia é que ele possa acessar o ftp para fazer upload de arquivos e acessar o ssh para iniciar, parar e dar comandos na aplicação.
Sou bem novo no linux (meu primeiro contato) e não entendo ainda de permissões e de grupos, só o básico mesmo como gerenciar pastas arquivos e poucas coisas sobre screen.
Editado 17 de junho de 2015 por ghs.gabriel
Bom, o comando que tu utilizaste para criar um usuário parece errado. Acredito que este usuário não irá logar via ssh. O parâmetro '-s' é para determinar qual é o caminho do interpretador de comandos shell, bash, korn, etc. Terás que remover esse usuário e criá-lo novamente.
Agora, tu estás falando do SFTP ou FTP ? Teu servidor possui autenticação em algum openldap ?
Desculpe minha ignorância, é sftp mesmo.
Achava que o comando -s iria determinar a pasta em que o usuário pode mexer!
Ok, supondo que eu recrie o usuário sem o -s, a principio ele deve conseguir conectar via ssh e sftp! porém tem como eu restringir o acesso dele a apenas uma pasta e suas respectivas subpastas? E tem como fazer ele poder executar e parar aplicações dentro dessa pasta? É possível ele ter acesso apenas a uma screen pré-determinada pelo root? Pois essa screen que estou falando é um console.
Não sei ainda o que é openldap, irei pesquisar quando sair do trabalho!
Editado 18 de junho de 2015 por ghs.gabriel
Essa pasta é de algum usuário ?!
Através do sudo, tu podes determinar a permissão dele.
E uma pasta criada pelo root mas tanto o root quanto o Olas vão poder mexer nela... Pelo sudo posso bloquear o acesso dele as outras pastas? Interessante! Daqui a pouco vou tentar obrigado
Se for uma pasta criada para share, eu recomendo que essa pasta seja owner do usuário Olas. O root sempre terá acesso a qualquer pasta do ambiente.
Via sudo, tu podes determinar que um usuário tenha poderes administradores temporariamente para determinados comandos ( ou para todos os comandos).
Entendi, só uma coisa não ficou claro, criando um uruario ele ter acesso a quais pastas via SSH? Só as que eu der owner para ele? Se eu der owner ele cai poder ver apenas essa pasta quando ligar SSH e sftp?
Então, sobre permissões. O linux está organizado da seguinte forma:
1) Usuários;
2) Grupos;
3) Administradores.
O único administrador do ambiente é o root. É com ele que tu define permissões para outros usuários ou, até mesmo, configurar o uso do sudo para ganhar permissões de root.
Quando tu crias um usuário, tu define a sua pasta home e a qual grupo ele pertence. O grupo é um conjunto de usuários do sistema, a qual possuem uma características em comum.
Assim, quando tu crias uma pasta, tu precisas definir quem poderá enxergar ( permissão read ), escrever ( write ) e executar arquivos dentro ( execute ). Logo, ao definir essa pasta, defina a permissão:
drwxr--r-- 7 root root 4096 Jun 18 04:02 .
drwxr-xr-x 25 root root 4096 Jun 5 07:53 ..
drwxr-x--- 2 dsa etrdir 4096 Dec 3 2014 hsperfdata_dsa
drwxr-xr-x 2 root root 4096 Feb 4 13:10 hsperfdata_root
drwxrwxrwt 2 root root 4096 Dec 3 2014 .ICE-unix
drwx------ 2 root root 4096 Jun 16 08:37 vmware-root
drwxrwxrwt 2 root root 4096 Dec 3 2014 .X11-unix
-rwxrwxrwt 2 ednei TI 4096 Dec 3 2014 X11-unix.txt
Em negrito e preto, mostra quem é o owner do diretório share. Assim, de acordo com a permissão 744 ( r-read; w-write; x-execute; d-directory), eu só posso listar esse diretório. Por quê ?
Significado do 744:
7 - É o primeiro octeto, define as permissões do dono do diretório ou arquivo. Este número significa a soma das permissões: Read ( que tem peso 2²) + Write ( peso 2¹) + Execute ( peso 2º).
4 - É o segundo octeto, define as permissões do grupo owner deste arquivo diretório/arquivo. Qualquer usuário que estiver no grupo do root, poderá somente ler, Read, peso 2² = 4;
4 - É o último octeto, defini a permissão para outros usuários do sistema (others). Para quem não é owner do diretório ou arquivo ou não faz parte do grupo owner, está definido a permissão de leitura.
Logo, para teu caso, tu precisas definir que o diretório tenha como owner o usuário olas.
Tanto via ssh ou sftp. ele só terá acesso aquilo que for lhe dado permissão e é por isso que usuário precisa ter uma conta no servidor em questão.
Obrigado mesmo! Agora não resto dúvidas nenhuma.
Vou testar isso assim que der tempo aqui no trabalho, ou depois que voltar da aula. Assim que testar, se ocorrer tudo certo eu já marco como resolvido.