TechInfoDepot:DD-WRT/Configure Samba in Linux

In this HOWTO we're going to prepare a Samba Filesystem Samba share specific for JFFS. This will work in several GNU/Linux distributions.

Install Samba
Open a terminal and write this:

On Ubuntu: sudo aptitude install samba

On Debian (as root): aptitude install samba

On Fedora (as root): yum install samba

On Suse (as root): smart install samba

Configuring Samba
First do a backup of the default configuration: mv /etc/samba/smb.conf /etc/samba/smb.conf.backup

Then open the configuration file with your favorite text editor (vim, nano, emacs, gedit, kate)

vim /etc/samba/smb.conf

And write this:

[global] workgroup = CHANGETHIS server string = %h server log file = /var/log/samba/log.%m security = user invalid users = root load printers = no [jffs] comment = JFFS for DD-WRT path = /mnt/jffs browseable = no  valid users = jffsuser read only = no

Now you have to restart samba service

In Debian (as root): /etc/init.d/samba restart

In Ubuntu: sudo /etc/init.d/samba restart

In RPM based distributions like RedHat, Suse, CentOS, Fedora (as root): service samba restart or maybe service smb restart

Extra commands
With the configuration file we've done before, you've to create the directory for the mount:

mkdir /mnt/jffs

Then create the user in the system, assign it a password and answer several questions. We're also saying that his home directory is /mnt/jffs (same location that we put in the configuration file) and that he doesn't have a valid shell:

adduser jffsuser --home /mnt/jffs --shell /bin/false

As the output should tell you, home directory doesn't have the right permissions, let's change it (as root, of course):

chown jffsuser:jffsuser /mnt/jffs

At the end you should create the password for Samba access. It can (and should) be different from the user system password. As this is the first time we've assign the user a Samba password, you must use -a:

smbpasswd -a jffsuser

Test it
You can test it by entering this in direction bar in Konqueror or Nautilus:

smb://jffsuser@localhost/jffs/ or smb://localhost/jffs/

Then you can create a file (eg: lala.txt) and check it:

$ls -l /mnt/jffs total 4 -rwxr--r-- 1 jffsuser jffsuser 2 2009-03-04 06:39 lala.txt*

Troubleshooting
Check if user is created in the system:

$ grep jffs /etc/passwd jffsuser:x:1001:1001:,,,:/mnt/jffs:/bin/false

Check if the directory is created and have right permissions:

$ ls -ld /mnt/jffs drwxr-xr-x 2 jffsuser jffsuser 4096 2009-03-13 21:55 /mnt/jffs/

Change Samba password to the user: smbpasswd jffsuser

Check smb.conf syntax: testparm