Samba, también conocido como "Bloque de mensajes del servidor", es un protocolo de sistema de archivos de Internet común que se utiliza para compartir archivos, directorios y servicios de impresión a través de una red en Linux. Le permite otorgar permisos de lectura, escritura y acceso anónimo en un directorio compartido. Es extremadamente útil para aquellos que usan sistemas Windows y Linux en su red.
En esta publicación, explicaremos cómo instalar y usar Samba para compartir archivos y directorios en Ubuntu 20.04.
Requisitos
- Un nuevo servidor Ubuntu 20.04 en Atlantic.Net Cloud Platform
- Una contraseña de root configurada en su servidor
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 20.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 20.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:instalar el servidor Samba
apt-get install samba samba-common-bin acl -y
Una vez instalado, inicie los servicios de Samba y habilítelos para que se inicien al reiniciar el sistema:
systemctl start smbd nmbd systemctl enable smbd nmbd
Puede verificar la versión instalada de Samba con el siguiente comando:
smbd --version
Salida:
Version 4.11.6-Ubuntu
Paso 3:crea un recurso compartido privado con Samba
En esta sección, le mostraremos cómo crear un recurso compartido privado usando Samba para que solo los usuarios autenticados puedan acceder al recurso compartido.
Para hacerlo, edite el archivo de configuración principal de Samba:
nano /etc/samba/smb.conf
A continuación, agregue las siguientes líneas al final del archivo:
[Private] comment = private share path = /data/private/ browseable = yes guest ok = no writable = yes valid users = @samba
Guarde y cierre el archivo, luego cree un nuevo usuario con el siguiente comando:
adduser user1
Debería ver el siguiente resultado:
Adding user `user1' ... Adding new group `user1' (1000) ... Adding new user `user1' (1000) with group `user1' ... Creating home directory `/home/user1' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for user1 Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y
A continuación, establezca una contraseña de Samba con el siguiente comando:
smbpasswd -a user1
Debería ver el siguiente resultado:
New SMB password: Retype new SMB password: Added user user1.
A continuación, cree un grupo de Samba con el siguiente comando:
groupadd samba
A continuación, agregue usuario1 al grupo de samba:
gpasswd -a user1 samba
A continuación, cree una carpeta compartida que haya especificado en el archivo smb.conf:
mkdir -p /data/private touch /data/private/file1
A continuación, proporcione permisos de lectura y escritura al recurso compartido de Samba:
setfacl -R -m "g:samba:rwx" /data/private
A continuación, compruebe el archivo de configuración de Samba en busca de errores con el siguiente comando:
testparm
A continuación, reinicie el servicio Samba para aplicar los cambios:
systemctl restart smbd nmbd
Paso 4:crea un recurso compartido público con Samba
En esta sección, le mostraremos cómo crear un recurso compartido público con Samba para que todos puedan acceder al recurso compartido público sin proporcionar un nombre de usuario y contraseña.
Para crear un recurso compartido público, edite el archivo de configuración principal de Samba:
nano /etc/samba/smb.conf
Agregue las siguientes líneas al final del archivo:
[Public] comment = public share path = /data/public/ browseable = yes writable = yes guest ok = yes
Guarde y cierre el archivo, luego cree un directorio público:
mkdir -p /data/public/ touch /data/public/file2
A continuación, establezca los permisos adecuados en el directorio público:
setfacl -R -m "u:nobody:rwx" /data/public
A continuación, reinicie el servicio Samba para aplicar los cambios:
systemctl restart smbd nmbd
Paso 5:acceda a Samba Share desde Linux
Para acceder al recurso compartido de Samba, deberá instalar el cliente Samba en el sistema Linux. Puedes instalarlo usando el siguiente comando:
apt-get install smbclient cifs-utils -y
A continuación, ejecute el siguiente comando para acceder al recurso compartido privado desde el servidor Samba:
smbclient //samba-ip-address/private -U user1
Se le pedirá que proporcione una contraseña para el usuario 1:
Enter WORKGROUP\user1's password: Try "help" to get a list of possible commands.
Una vez que esté conectado, ejecute el siguiente comando para enumerar el recurso compartido de Samba:
smb: \> list 0: server=69.87.221.84, share=private
A continuación, enumere todos los archivos en el directorio compartido privado:
smb: \> ls
Debería ver el siguiente resultado:
. D 0 Sun Jun 27 08:17:58 2021 .. D 0 Sun Jun 27 08:18:13 2021 file1 N 0 Sun Jun 27 08:17:58 2021 51538400 blocks of size 1024. 47348972 blocks available
A continuación, salga del shell de Samba con el siguiente comando:
smb: \> exit
Si desea conectarse al recurso público, ejecute el siguiente comando:
smbclient //samba-ip-address/public
Simplemente presione Entrar sin proporcionar ninguna contraseña:
Enter WORKGROUP\root's password: Try "help" to get a list of possible commands. smb: \>
A continuación, ejecute el siguiente comando para enumerar todos los archivos en el recurso compartido público:
smb: \> ls
Salida:
. D 0 Sun Jun 27 08:18:17 2021 .. D 0 Sun Jun 27 08:18:13 2021 file2 N 0 Sun Jun 27 08:18:17 2021 51538400 blocks of size 1024. 47348972 blocks available
Paso 6:Monte Samba Share en Linux
Samba también le permite montar un directorio compartido en el sistema cliente para que pueda acceder a él y usarlo.
Primero, cree un directorio en el sistema cliente donde desea montar el recurso compartido de Samba:
mkdir /mount
A continuación, ejecute el siguiente comando para montar el directorio de recursos compartidos privados en el sistema cliente:
mount -t cifs -o username=user1 //samba-ip-address/private /mount
Se le pedirá que proporcione una contraseña de usuario1 para montar el directorio:
Password for [email protected]//69.87.221.84/private: *********
A continuación, verifique el directorio montado con el siguiente comando:
df -h
Debería ver su directorio privado compartido montado en el directorio /mount:
Filesystem Size Used Avail Use% Mounted on udev 981M 0 981M 0% /dev tmpfs 199M 2.2M 197M 2% /run /dev/sda1 50G 1.9G 46G 4% / tmpfs 994M 0 994M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 994M 0 994M 0% /sys/fs/cgroup tmpfs 199M 0 199M 0% /run/user/0 //69.87.221.84/private 50G 4.0G 46G 9% /mount
Ahora, acceda al recurso compartido de Samba localmente usando el siguiente comando:
ls /mount/
Debería ver el siguiente resultado:
file1
Conclusión
En la guía anterior, aprendió cómo instalar Samba y usarlo para compartir archivos y directorios entre sistemas Linux. ¡Pruébelo con alojamiento VPS de Atlantic.Net!