xref: /haiku/docs/add-ons/NetFS.html (revision 83b1a68c52ba3e0e8796282759f694b7fdddf06d)
1*83b1a68cSAdrien Destugues<!--
2*83b1a68cSAdrien DestuguesIf you move this file, you must update the package rules file at
3*83b1a68cSAdrien Destuguesbuild/jam/packages/NetFS to reflect the new location. Otherwise the package will
4*83b1a68cSAdrien Destuguesnot build.
5*83b1a68cSAdrien Destugues-->
6*83b1a68cSAdrien Destugues<html>
7*83b1a68cSAdrien Destugues<head>
8*83b1a68cSAdrien Destugues<title>NetFS</title>
9*83b1a68cSAdrien Destugues<style>
10*83b1a68cSAdrien Destugues.code {
11*83b1a68cSAdrien Destugues	font-family: monospace;
12*83b1a68cSAdrien Destugues	background: #eee;
13*83b1a68cSAdrien Destugues	border: 1px solid black;
14*83b1a68cSAdrien Destugues	whitespace: pre;
15*83b1a68cSAdrien Destugues	padding: 1em;
16*83b1a68cSAdrien Destugues}
17*83b1a68cSAdrien Destuguesspan.code {
18*83b1a68cSAdrien Destugues	padding: 0;
19*83b1a68cSAdrien Destugues	border: 0;
20*83b1a68cSAdrien Destugues}
21*83b1a68cSAdrien Destugues</style>
22*83b1a68cSAdrien Destugues</head>
23*83b1a68cSAdrien Destugues<body>
24*83b1a68cSAdrien Destugues
25*83b1a68cSAdrien Destugues<h1 align="center">NetFS</h1>
26*83b1a68cSAdrien Destugues
27*83b1a68cSAdrien Destugues<hr />
28*83b1a68cSAdrien Destugues
29*83b1a68cSAdrien Destugues<h2 align="center">Client</h2>
30*83b1a68cSAdrien Destugues
31*83b1a68cSAdrien Destugues<p>To run the client, execute the following at the command line:</p>
32*83b1a68cSAdrien Destugues
33*83b1a68cSAdrien Destugues<pre class="code">
34*83b1a68cSAdrien Destugues$ netfs_mount
35*83b1a68cSAdrien Destugues</pre>
36*83b1a68cSAdrien Destugues
37*83b1a68cSAdrien Destugues<p>A "Network" icon will appear on your desktop, containing remote servers
38*83b1a68cSAdrien Destuguesidentified by host name. Inside the folder for each server are the shares on
39*83b1a68cSAdrien Destuguesthat server.</p>
40*83b1a68cSAdrien Destugues
41*83b1a68cSAdrien Destugues<p>You can also run the steps individually:</p>
42*83b1a68cSAdrien Destugues
43*83b1a68cSAdrien Destugues<pre class="code">
44*83b1a68cSAdrien Destugues$ /system/servers/authentication_server &amp;
45*83b1a68cSAdrien Destugues$ mkdir /network
46*83b1a68cSAdrien Destugues$ mount -t userlandfs -p "netfs" /network
47*83b1a68cSAdrien Destugues</pre>
48*83b1a68cSAdrien Destugues
49*83b1a68cSAdrien Destugues<hr />
50*83b1a68cSAdrien Destugues
51*83b1a68cSAdrien Destugues<h2 align="center">Server</h2>
52*83b1a68cSAdrien Destugues
53*83b1a68cSAdrien Destugues<p>To run the server:</p>
54*83b1a68cSAdrien Destugues
55*83b1a68cSAdrien Destugues<pre class="code">
56*83b1a68cSAdrien Destugues$ netfs_server_prefs launch
57*83b1a68cSAdrien Destugues</pre>
58*83b1a68cSAdrien Destugues
59*83b1a68cSAdrien Destugues<p>You can also start the server directly if you prefer.</p>
60*83b1a68cSAdrien Destugues
61*83b1a68cSAdrien Destugues<pre class="code">
62*83b1a68cSAdrien Destugues$ /system/servers/netfs_server &amp;
63*83b1a68cSAdrien Destugues</pre>
64*83b1a68cSAdrien Destugues
65*83b1a68cSAdrien Destugues<p>The server will then run until you shut down your computer, but it is also
66*83b1a68cSAdrien Destuguespossible to stop it manually.</p>
67*83b1a68cSAdrien Destugues
68*83b1a68cSAdrien Destugues<pre class="code">
69*83b1a68cSAdrien Destugues$ netfs_server_prefs terminate
70*83b1a68cSAdrien Destugues</pre>
71*83b1a68cSAdrien Destugues
72*83b1a68cSAdrien Destugues<p>Once the server is running, you can define shared folders. The first step is
73*83b1a68cSAdrien Destuguesto create a user who can access those folders, optionally with a password.</p>
74*83b1a68cSAdrien Destugues
75*83b1a68cSAdrien Destugues<pre class="code">
76*83b1a68cSAdrien Destugues$ netfs_server_prefs add user &lt;name&gt; [&lt;password&gt;]
77*83b1a68cSAdrien Destugues</pre>
78*83b1a68cSAdrien Destugues
79*83b1a68cSAdrien Destugues<p>Next create a shared folder and assign a user some permissions on it.</p>
80*83b1a68cSAdrien Destugues
81*83b1a68cSAdrien Destugues<pre class="code">
82*83b1a68cSAdrien Destugues$ netfs_server_prefs add share &lt;name&gt; &lt;path&gt;
83*83b1a68cSAdrien Destugues$ netfs_server_prefs permissions &lt;user&gt; &lt;share&gt; <flags>
84*83b1a68cSAdrien Destugues</pre>
85*83b1a68cSAdrien Destugues
86*83b1a68cSAdrien Destugues<p><span class="code">name</span> is the name that will appear to clients when
87*83b1a68cSAdrien Destuguesthey connect to your server.  <span class="code">flags</span> is one or more of:
88*83b1a68cSAdrien Destugues<span class="code">m</span> = mount, <span class="code">r</span> = read, <span
89*83b1a68cSAdrien Destuguesclass="code">w</span> = write, <span class="code">q</span> = query.</p>
90*83b1a68cSAdrien Destugues
91*83b1a68cSAdrien Destugues<p>Don't forget to save your settings.</p>
92*83b1a68cSAdrien Destugues
93*83b1a68cSAdrien Destugues<pre class="code">
94*83b1a68cSAdrien Destugues$ netfs_server_prefs save
95*83b1a68cSAdrien Destugues</pre>
96*83b1a68cSAdrien Destugues
97*83b1a68cSAdrien Destugues<p>The <span class="code">netfs_server_prefs</span> tool can also list and
98*83b1a68cSAdrien Destuguesremove users and shares. See the help for details.</p>
99*83b1a68cSAdrien Destugues
100*83b1a68cSAdrien Destugues<pre class="code">
101*83b1a68cSAdrien Destugues$ netfs_server_prefs --help
102*83b1a68cSAdrien Destugues</pre>
103*83b1a68cSAdrien Destugues
104*83b1a68cSAdrien Destugues<hr />
105*83b1a68cSAdrien Destugues
106*83b1a68cSAdrien Destugues<h2 align="center">Fallback Settings File</h2>
107*83b1a68cSAdrien Destugues
108*83b1a68cSAdrien Destugues<p>The settings file is stored in a binary format, but if it is missing or
109*83b1a68cSAdrien Destuguesdamaged, the server will use a fallback settings file, which has a text-based
110*83b1a68cSAdrien Destuguesformat. This file must be located at <span
111*83b1a68cSAdrien Destuguesclass="code">/boot/home/config/settings/netfs/netfs_server_fallback</span>. (If
112*83b1a68cSAdrien Destuguesneither the main settings file nor the fallback settings file can be loaded, the
113*83b1a68cSAdrien Destuguesserver will have no users or shares defined.)
114*83b1a68cSAdrien Destugues
115*83b1a68cSAdrien Destugues<p>Here is an example of a fallback settings file.</p>
116*83b1a68cSAdrien Destugues
117*83b1a68cSAdrien Destugues<pre class="code">
118*83b1a68cSAdrien Destugues# users
119*83b1a68cSAdrien Destuguesuser bonefish {
120*83b1a68cSAdrien Destugues	password	password
121*83b1a68cSAdrien Destugues}
122*83b1a68cSAdrien Destugues
123*83b1a68cSAdrien Destugues# user without a password
124*83b1a68cSAdrien Destuguesuser anonymous
125*83b1a68cSAdrien Destugues
126*83b1a68cSAdrien Destugues# shares
127*83b1a68cSAdrien Destuguesshare ttttt {
128*83b1a68cSAdrien Destugues	path /boot/home/Desktop/ttttt
129*83b1a68cSAdrien Destugues	user bonefish {
130*83b1a68cSAdrien Destugues		permissions	mount query read write
131*83b1a68cSAdrien Destugues	}
132*83b1a68cSAdrien Destugues}
133*83b1a68cSAdrien Destugues
134*83b1a68cSAdrien Destuguesshare sub-ttttt {
135*83b1a68cSAdrien Destugues	path /boot/home/Desktop/ttttt/rmessage
136*83b1a68cSAdrien Destugues	user bonefish {
137*83b1a68cSAdrien Destugues		permissions	mount query read write
138*83b1a68cSAdrien Destugues	}
139*83b1a68cSAdrien Destugues	user anonymous {
140*83b1a68cSAdrien Destugues		permissions	mount query read
141*83b1a68cSAdrien Destugues	}
142*83b1a68cSAdrien Destugues}
143*83b1a68cSAdrien Destugues</pre>
144*83b1a68cSAdrien Destugues
145*83b1a68cSAdrien Destugues</body>
146*83b1a68cSAdrien Destugues
147