Flesh out the Samba HOWTO a bit (#135)
* Initial commit of skeleton Samba help-center documentation (#118). * Basic examples added. * Update lastmod. * Kill TOML aliases statement. * Include changes requested in review. * Fix capitalized Samba -> samba man page name. * Fix a few typos, add notes on caja-share for MATE * Small fixes. * Update header * Explain how the default Solus configuration works + small fixes. * Fix Budgie typo. * Update lastmod. * Update per PR review. * Remember to update lastupdate field in header.
This commit is contained in:
parent
cb79b6860b
commit
0eaec03f03
|
@ -1,6 +1,6 @@
|
||||||
+++
|
+++
|
||||||
title = "Samba File Sharing"
|
title = "Samba File Sharing"
|
||||||
lastmod = "2018-04-20T15:34:16+03:00"
|
lastmod = "2018-04-24T18:58:00+02:00"
|
||||||
+++
|
+++
|
||||||
# Samba file sharing
|
# Samba file sharing
|
||||||
|
|
||||||
|
@ -14,18 +14,20 @@ To enable convenient file-sharing on Solus, we maintain a Solus-specific Samba c
|
||||||
|
|
||||||
In order to support user-managed (as opposed to system-managed) shares, Samba provides the so-called *usershare* functionality, where users can define network shares without touching the traditional Samba configuration file.
|
In order to support user-managed (as opposed to system-managed) shares, Samba provides the so-called *usershare* functionality, where users can define network shares without touching the traditional Samba configuration file.
|
||||||
|
|
||||||
### GUI - configuring shares via nautilus-share
|
### GUI - configuring shares via file manager plugins
|
||||||
|
|
||||||
The default Solus configuration was written with the `nautilus-share` file manager plugin in mind. This plugin allows the user to share folders in an easy and convenient way.
|
The default Solus configuration was written with the `nautilus-share` (Budgie/GNOME) and `caja-share` (MATE) file manager plugins in mind. These plugins allows the user to share folders in an easy and convenient way.
|
||||||
|
|
||||||
All the user needs to do is to install the `nautilus-share` package from the Software Center and enable the relevant Samba services.
|
All the user needs to do is to install either the `caja-extensions` package (which includes the `caja-share` plugin) or the `nautilus-share` package from the Software Center and enable the relevant Samba services.
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
sudo eopkg install nautilus-share
|
sudo eopkg install nautilus-share
|
||||||
sudo systemctl enable --now smb
|
sudo systemctl enable --now smb
|
||||||
```
|
```
|
||||||
|
|
||||||
In order for the nautilus-share plugin to be loaded, the user will need to log out of the current desktop session and log back in to a new desktop session, at which point the nautilus-share plugin will be loaded and ready for use.
|
In order to load the newly installed file manager plugin, the user will need to log out of the current desktop session and log back in to a new desktop session, at which point the plugin in question will be ready for use.
|
||||||
|
|
||||||
|
Simply right-clicking a folder will now show an option to share it.
|
||||||
|
|
||||||
### CLI - using the net usershare command
|
### CLI - using the net usershare command
|
||||||
|
|
||||||
|
@ -45,30 +47,36 @@ net usershare info wildcard-sharename
|
||||||
To print information about user defined shares.
|
To print information about user defined shares.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Adding system shares via /etc/samba/smb.conf
|
## Adding custom configuration parameters via `/etc/samba/smb.conf`
|
||||||
|
|
||||||
The default Solus-managed configuration is written such that it will attempt to include any configuration directives present in `/etc/samba/smb.conf`.
|
**CAUTION:** *From this point on, it is assumed that the user is familiar with the Samba documentation, including `man smb.conf`, and that the user has a basic understanding of Linux filesystem permissions.*
|
||||||
|
|
||||||
By default, the Solus-managed configuration enables $HOME shares and is configured to participate in the WORKGROUP windows workgroup.
|
The default Solus-managed configuration (which lives in `/usr/share/defaults/samba/smb.conf` and will be overwritten on each samba package update) is written such that it will attempt to include any configuration parameters present in `/etc/samba/smb.conf`.
|
||||||
|
|
||||||
**CAUTION:** *From this point on, it is assumed that the user is familiar with the Samba documentation, including `man smb.conf` and that the user has a basic understanding of Linux filesystem permissions.*
|
Hence, any persistent user-managed parameters should be added to `/etc/samba/smb.conf` which will *never* be overwritten by the system package manager.
|
||||||
|
|
||||||
### Example -- anonymous, read-write share outside of $HOME
|
In addition, the Solus-controlled Samba configuration is written such that it is possible to override its default parameters simply by assigning a new value to the parameter in question in `/etc/samba/smb.conf`. From a technical perspective, any parameters added without a `[shared resource]` header will considered part of the `[global]` configuration section.
|
||||||
|
|
||||||
|
This way, it becomes possible to reset Samba to Solus working defaults simply by deleting or renaming `/etc/samba/smb.conf`.
|
||||||
|
|
||||||
|
By default, the Solus-managed configuration enables *$HOME* shares (`[homes]` section) and is configured to participate in the WORKGROUP Windows workgroup.
|
||||||
|
|
||||||
|
### Example -- anonymous, read-write share outside of *$HOME*
|
||||||
|
|
||||||
``` ini
|
``` ini
|
||||||
# Contents of /etc/samba/smb.conf
|
# Contents of /etc/samba/smb.conf
|
||||||
# if ^^ exists, it is automatically loaded by the Solus-controlled default config
|
# if ^^ exists, it is automatically loaded by the Solus-controlled default config
|
||||||
# residing in /usr/share/defaults/smb.conf
|
# residing in /usr/share/defaults/samba/smb.conf
|
||||||
#
|
#
|
||||||
# Create a "//servername/someshare" share where anonymous users have read and write access
|
# Create a "//servername/someshare" share where anonymous users have read and write access
|
||||||
#
|
#
|
||||||
# ';' denotes a comment, which is typically used for config statements
|
# ';' also denotes a comment (typically used for configuration parameters)
|
||||||
[other]
|
[someshare]
|
||||||
path = /mnt/someshare
|
path = /mnt/someshare
|
||||||
# allow anonymous access
|
# allow anonymous access
|
||||||
guest ok = Yes
|
guest ok = Yes
|
||||||
# ONLY allow anonymous access (don't allow both guest and system user access)
|
# ONLY allow anonymous access (don't allow both guest and system user access)
|
||||||
;guest only = Yes
|
guest only = Yes
|
||||||
# allow write access
|
# allow write access
|
||||||
read only = No
|
read only = No
|
||||||
# This is an example of how to limit access to the share to known IPs
|
# This is an example of how to limit access to the share to known IPs
|
||||||
|
@ -77,13 +85,13 @@ read only = No
|
||||||
# share config end
|
# share config end
|
||||||
```
|
```
|
||||||
|
|
||||||
After adding a system-managed share like in the above example, run `sudo testparm` to check that the newly included share does not contain syntax errors. Check out `man testparm` for more information about the `testparm` utility.
|
After adding a `[someshare]` section like in the above example, run `sudo testparm` to check that the newly included share does not contain syntax errors. Check out `man testparm` for more information about the `testparm` utility.
|
||||||
|
|
||||||
In the above case, it is assumed that the user has chosen a suitable method for making `/mnt/someshare` writeable by guest users.
|
In the above case, it is assumed that the user has chosen a suitable method for making `/mnt/someshare` writeable by guest users.
|
||||||
|
|
||||||
## Full manual control of Samba (recommended only for experienced Samba admins)
|
## Full manual control of Samba (recommended only for experienced Samba admins)
|
||||||
|
|
||||||
Full manual control of Samba can be achieved by bypassing the default Solus Samba configuration.
|
Full manual control of Samba can be achieved by completely bypassing the default Solus Samba configuration.
|
||||||
|
|
||||||
In the Samba manual page (`man 8 samba`), it is shown how the compiled-in default config file can be overridden by specifying the `--configfile=<somepath>` flag during invocation of Samba.
|
In the Samba manual page (`man 8 samba`), it is shown how the compiled-in default config file can be overridden by specifying the `--configfile=<somepath>` flag during invocation of Samba.
|
||||||
|
|
||||||
|
|
Reference in New Issue