| 
 RE: SSHFS - Montando directorios remotos con Bash - tincho -  17-09-2021
 
 
  (17-09-2021, 18:22)Shordi escribió:  ssh_config es para la salida de ssh ¿La salida de donde, en el servidor o el el cliente?
 
  (17-09-2021, 18:22)Shordi escribió:  sshd_config es el puerto para el servidor ssh (la d es de demonio) Si eso lo tengo claro, ese archivo maneja el servidor ssh
 
 Saludos.
 
 
 RE: SSHFS - Montando directorios remotos con Bash - Shordi -  17-09-2021
 
 
 Cita:¿La salida de donde, en el servidor o el el cliente? Si la del d es la del servidor, por eliminacion...
 
 
 RE: SSHFS - Montando directorios remotos con Bash - tincho -  17-09-2021
 
 
  (17-09-2021, 17:46)Shordi escribió:  -En la station3 no entras como admin. Sino como cada uno de los usuarios y entonces-creas una clave con:
 ssh-genkey
 y pulsas enter a todo. Luego:
 ssh-copy-id -p <puerto> admin@ipdelservidor
 Te pide la clave del admin@ipservidor. Se la pones.
 Y ya está. A ese usuario no se le pide más la clave.
 Si eres el administrador del equipo remoto de un cliente, es decir tiene un usuario allí que tiene permisos de administración (sudo) por ejemplo admin ¿Existe una forma de logrearse como usuario2 y hacer eso que dices de las claves? obviamente no sabes (y no deberías saber) la clave del usuario. Solo sabes tu clave de admin del equipo que le vendiste o le instalaste el sistema.
 As que ¿Como se haría eso?
 Saludos.
 
 
 RE: SSHFS - Montando directorios remotos con Bash - Shordi -  17-09-2021
 
 Con
 Sudo su
 Y luego
 su usuario
 
 Siendo root no te pide la clave
 
 Saludos
 
 
 RE: SSHFS - Montando directorios remotos con Bash - tincho -  17-09-2021
 
 
  (17-09-2021, 21:46)Shordi escribió:  Con Sudo su Y luego su usuarioMuy bueno, conocía "su" pero nunca le di importancia.Siendo root no te pide la clave
 Se podrá automatizar para crear el par de claves ?
 Gracias
 
 
 RE: SSHFS - Montando directorios remotos con Bash - Shordi -  18-09-2021
 
 Supongo. Es cosa de hacer un Shell script.
 Ya te digo que yo lo hacía a pelo.
 
 Saludos
 
 
 RE: SSHFS - Montando directorios remotos con Bash - tincho -  18-09-2021
 
 
  (18-09-2021, 01:00)Shordi escribió:  Es cosa de hacer un Shell script. Pero un script bash contempla el cambio de usuario y sigue operando o al cambiar de usuario se detiene el script que se inicio con otro usuario?
 Saludos.
 
 
 RE: SSHFS - Montando directorios remotos con Bash - Shordi -  18-09-2021
 
 No he probado. Prueba.
 Pero... nadie dice que deba ser un sólo shellscript. Le colocas dos en una carpeta temporal y primero ejecutas el que te pone como dios y luego el otro... o te pones como dios usando la función Sudoshell que apunte por algún lado y ejecutas el otro... etc. etc. posibilidades infinitas.
 
 Saludos
 
 
 RE: SSHFS - Montando directorios remotos con Bash - tincho -  19-09-2021
 
 He conseguido montar todos los recursos a través de SSHFS para ello hice un programa en gambas (de terminal) que puede configurarse para que corra cada vez que el usuario inicia la sesión o crear un acceso directo en el escritorio etc.
 Requisitos previos:
 Programa main 
En el servidor tiene que existir el mismo usuario que en la maquina cliente y este tiene que tener los permisos pertinentes de acceso sobre los recursos compartidos. para ello se pueden manejar individualmente, en el caso del directorio desktop que es solo para ese usuario o grupalmente que es para el caso de recursos a los que pueden acceder varios usuarios en igualdad de condiciones como global o production.
Tiene que estar establecida la confianza entre el cliente y el servidor
 
 Luego hay que usar la clase Config de Gaucho teamCódigo: ' Gambas module file
 Public Sub Main()
 
 Config.Load
 
 sshfs(["production"])
 
 Config.Save
 Quit
 
 End
 
 Private Sub sshfs(sGroup As String[])
 
 Dim sPrivate As String
 Dim sSection As String
 Dim sGlobal As String
 Dim sec As String
 Dim sComm As String
 
 sPrivate = User.home &/ "server" &/ "private"
 sGlobal = User.home &/ "server" &/ "global"
 
 '' Private directory
 Shell "mkdir -p " & sPrivate
 sComm = "sshfs -o reconnect -p " & Config.Port & " " & User.Name & "@" & Config.Server & ":" & Config.Dsk &/ User.Name & " " & sPrivate
 Print sComm
 Shell sComm Wait
 
 '' Global directory
 Shell "mkdir -p " & sGlobal
 sComm = "sshfs -o reconnect -p " & Config.Port & " " & User.Name & "@" & Config.Server & ":" & Config.Glo & " " & sGlobal
 Print sComm
 Shell sComm Wait
 
 '' Section directory
 For Each sec In sGroup
 If Config.Sections.Exist(sec) Then
 sSection = User.home &/ "server" &/ sec
 Shell "mkdir -p " & sSection
 sComm = "sshfs -o reconnect -p " & Config.Port & " " & User.Name & "@" & Config.Server & ":" & Config.Sec &/ sec & " " & sSection
 Print sComm
 Shell sComm Wait
 Endif
 Next
 
 End
 
 Código: ' Gambas class file
 Create Static
 Export
 Private Const ConfigFile As String = ".setup/config.json"
 ''Configuration variables to be saved, add as needed below
 Public Sections As String[] = ["admin", "accounting", "commercial", "marketing", "hr", "managment", "control", "logistic", "purchasing", "production"]
 Public Base As String = "server"
 Public Server As String = "server"
 Public Port As String = "22" '' The server port default is 22 but, for increase the safety, is recomended to change to other.
 Public Group As String = "workgroup" '' Is the name of the team is the root name where will be mounted all the shared directories.
 Public Dsk As String = "/var/desktops"
 Public Sec As String = "/var/sections"
 Public Glo As String = "/var/global"
 
 Public Admin As String = "superuser"
 
 '' Here you have to pass all the global variables that are scattered in other classes or modules.
 
 Public Sub Load(Optional sFile As String)
 
 Dim jConfig As Collection
 Dim sSymbol As String
 Dim obj As Object = Me
 Dim MyClass As Class = Object.Class(obj)
 
 If sFile = "" Then
 sFile = User.Home &/ ConfigFile
 Endif
 
 If Exist(sFile) Then
 jConfig = JSON.FromString(File.Load(sFile))
 For Each sSymbol In myClass.Symbols
 If jConfig.Exist(sSymbol) Then
 Object.SetProperty(obj, sSymbol, jConfig[sSymbol])
 Endif
 Next
 Endif
 
 End
 
 Static Public Sub Save(Optional sFile As String)
 
 Dim jConfig As New JSONCollection
 Dim obj As Object = Me
 Dim MyClass As Class = Object.Class(obj)
 Dim Var As String
 Dim Valor As Variant
 
 If sFile = "" Then
 sFile = User.Home &/ ConfigFile
 Endif
 
 For Each Var In myClass.Symbols
 '' Verifying that it is a property or a variable.
 If (MyClass[var].kind = Class.Variable) Or (MyClass[var].kind = Class.Property) Then
 valor = Object.GetProperty(obj, var)
 jConfig.Add(Valor, var)
 End If
 
 Next
 
 If Not Exist(File.Dir(sFile)) Then
 Shell "mkdir -p " & File.Dir(sFile) Wait
 Endif
 File.Save(sFile, JSON.Encode2(jConfig))
 
 End
Bien, este programa solo monta los directorios especificado en el directorio home del usuario que lo ejecute (ver requisitos previos) pero los invito a proponer ampliaciones, sobretodo referido a la toma de datos del estado de la computadora para enviar al programa de gestión.
 Saludos.
 
 
 RE: SSHFS - Montando directorios remotos con Bash - Shordi -  19-09-2021
 
 Yo en el Intriga lo hago desde gambas y apoyado en la base de datos.
 
 Tienes una tabla con esta estructura:
 
 
 Código: CREATE TABLE `unidades` (`rowid` int NOT NULL AUTO_INCREMENT,
 `permiso` varchar(10) COLLATE utf8_spanish_ci NOT NULL,
 `pathservidor` varchar(1024) COLLATE utf8_spanish_ci NOT NULL,
 `pathlocal` varchar(1024) COLLATE utf8_spanish_ci NOT NULL,
 `comentarios` text COLLATE utf8_spanish_ci NOT NULL,
 `usr` varchar(50) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL,
 `fmod` datetime NOT NULL,
 PRIMARY KEY (`rowid`),
 UNIQUE KEY `permiso` (`permiso`)
 )
y otra llamada permisos, donde tienes, por ejemplo el permiso UD (de acceso a las unidades) y el UD_RO de acceso de sólo lectura. el RO contiene la cadena necesaria para que sshfs lo haga de solo lectura " -o ro " y el UD tiene el campo permiso vacío.
 en pathremoto tienes cosas como /var/copias/unidades/<sede>/<sector> y en el pathlocal cosas como ~/RED/<sede>/<sector>
 
 Luego tienes las funciones:
 
 
 Código: Public Sub unidades()
 Dim r As Result
 Dim aperm As String[]
 Dim sLocal, sremoto, scomando As String
 Dim npuerto As String
 
 npuerto = 55555 'número establecido estándar de la aplicación
 aperm = Split(m.entorno["permisos"], "|")
 r = m.hcon.Exec("select * from ad_unidades where substr(`codigo`,2)='UD' order by `codigo` DESC") 'se ordena inverso para que los _RO se evalúen primero
 scomando = "sshfs -o reconnect -p " & nPuerto & " administrador@10.8.0.1:" & sremoto & " " & sLocal Wait
 While r.Available
 If aperm.Exist(r!codigo) Then
 sLocal = normaliza(r!pathLocal)
 sremoto = normaliza(r!pathservidor)
 If Not Exist(sLocal) Then
 Mkdir slocal
 Endif
 Shell scomando Wait
 Endif
 Wend
 
 End
 
 Private Sub normaliza(cpath As String) As String
 
 cpath = Subst(cpath, "<nick>", m.entorno["nick"])
 cpath = Subst(cpath, "<sede>", m.entorno["sede"])
 cpath = Subst(cpath, "<sector>", m.entorno["sector"])
 Return cpath
 
 End
No la he probado aún, que no tengo todavía las bases de datos en condiciones... pero te puedes hacer una idea.
 
 Saludos
 
 
 
 |