あるUbuntuマシン上のフォルダーを、同じホームネットワーク上の別のUbuntuマシンと共有しようとしています。フォルダーを右クリックして[共有オプション]を選択すると、フォルダーを共有するためにWindowsネットワーク共有サービスをインストールする必要があることが通知されます。 Windowsはこれと何の関係がありますか? Windowsマシンと共有しようとはしていません...
Windowsはこれと何の関係がありますか? Windowsマシンと共有しようとはしていません...
あなたは正しい、これは混乱する可能性があります。まず最初に用語を明確にしてみましょう。
Windowsがファイルとプリンターを共有する方法はSMBと呼ばれます。 SAMBAプロジェクトの人々は、MicrosoftのすべてのプロトコルとLinux仕様を実装しています。したがって、Ubuntuは、Sambaと呼ばれるWindowsと同じ種類のファイル共有をサポートしています。
SAMBAを使用して、Linuxマシン間でファイルを共有できます。実際、たとえば、友人と一緒にいる場合は、 Windowsコンピューター。
または、NFS(ネットワークファイルシステム)であるファイルを共有するLinuxの方法を使用できます- 前の質問に対するこの回答 方法を説明しますそれ。 (しかし、かなり技術的です)
そのため、[共有オプション]ダイアログでパッケージをインストールするように求められたとき、実際にはMicrosoftソフトウェアなどはインストールしていません。さあ、それをしてください、それは完全に安全です。
補遺:
Salih Eminの指示に従う前に、共有を有効にしてみてください。動作しない場合は、簡単な警告が表示されます。必要に応じて、Salihが説明する手順を実行できます。新しくインストールした最新のシステムで試してみましたが、実際にこれを行う必要がありました。
現在、Lunchidには、Launchpadにリストされている小さなバグ bug#536766 があります。このバグは、ファイル共有のセットアップを完了するために必要なパッケージをインストールするようユーザーに促しません。それが解決されるまで、ここに簡単な回避策があります。
libapache2-mod-dnssd をインストールして再起動する必要があります。このリンクをクリックしてインストールするか、ソフトウェアセンターでlibapache2-mod-dnssdを見つけます。
インストールしたら、System→Preferences→Personal file Sharingに移動して、 'public public files on network'ボックスをチェックします。
それがすべて完了すると、パブリックフォルダー内でパブリックファイルの共有を許可しているネットワーク上の他のすべてのコンピューターを表示できるようになります。 場所→ネットワークをクリックするだけで、利用可能なすべてのコンピューターとその共有パブリックフォルダーが表示されます。
サーバーアイコンをダブルクリックすると、関連するパブリックフォルダーがデスクトップにマウントされます。
リンクテキスト 経由
LinuxマシンでsimpleHTTPサーバーを実行し、他のマシンで同じHTTPサーバーにアクセスできます。
手順:
python -m SimpleHTTPServer
ifconfig
を使用してIPを確認してください。ダウンロードするフォルダーに必要なファイルを取得します。
「qweborf」をインストールできます。 HTTPを介してディレクトリを共有し、他のホストはブラウザでアクセスできるようになります。
また、webdavを有効にし、ディレクトリをファイルシステムの読み取り/書き込みとしてマウントできるようにすることもできます(davfs2、KDE、Gnome2、OsXでテスト済み)。
私はそれがSAMBAパッケージが下にリストされているか、それが説明の少なくとも一部であると信じています。別の方法として、別のメカニズムを使用すると思われる環境設定->ファイル共有を試すことができます。ただし、Sambaはインストールしておくと便利です。
Ubuntuへのシームレスな統合が必要で、Windowsの互換性に関心がない場合は、SSHが最適です。
LAN経由で2台のLinuxマシン間でファイルを共有するにはどうすればよいですか? を参照してください。
SSHサーバーのインストールが必要になる場合があります。
Sudo apt-get install openssh-server
クライアントのファイルマネージャーアプリから、次の方法でサーバーにアクセスできます。
sftp://servername.local
端末またはプログラムからファイルにアクセスするには、sshfs
を使用して、クライアントのファイルシステムにマウントポイントを作成します。
Linuxのみのネットワークの場合、SSHFSはネイティブで安定しており、非常に高速であることがわかりました。 SSH経由で/ homeフォルダーを共有する2つのXubuntuマシン(18.04)があります。
これをセットアップする方法sshfsとfstabを使用して再起動後に自動的に再接続するパスワードを提供する必要はありません。 serverfault user kubanczyk に感謝します。リモートサスペンド/再開後に再接続する方法について。
接続元のコンピューターには「ローカルマシン-surfbox」を、接続先のコンピューターには「リモートマシン-devbox」を使用します。
以下の「remoteuser」をリモートマシンでログインするユーザー名に置き換え、「localuser」をローカルマシンでログインするユーザー名に置き換えます。ユーザー名を確認するには、リモートマシンとローカルマシンのターミナルにecho $USER
と入力します。
また、userIDとgroupIDを確認してください。両方とも1000でなければなりません。
GroupID:id -g localuser
UserID:id -u localuser
hostname -I
ローカルマシン( 'surfbox')に192.168.1.150を使用し、リモートマシン( 'devbox')に192.168.1.151を使用します
Sudo apt install sshfs Fuse ssh
グループを作成:Sudo groupadd Fuse
Localuserをグループに追加します:Sudo usermod -a -G Fuse $user
Fstabにマウントするときにこのオプションが必要になります
コマンドラインエディタで/etc/Fuse.conf
を編集します。 user_allow_other
の前のハッシュタグを削除して保存します。
プロンプトが出されたときにパスワードを入力しないでください。 Enterキーを押して空白のままにします。
ssh-keygen -t rsa -C [email protected]
キーはローカルマシンのホームディレクトリ/.sshフォルダーに保存されます
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
リモートマシンのリモートユーザーのパスワードの入力を求められます。ローカルマシンの公開鍵が、リモートマシンの〜/ .ssh/authorized_keysファイルに追加されるようになりました。
リモートマシンにとって意味のある名前を選択してください。
Sudo mkdir /mnt/devboxhome
Sshfsの構文は
sshfs [user@]Host:[directory] mountpoint [options]
を使用しております
Sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
例:「steve」がローカルマシンとリモートマシンの両方のユーザー名であると仮定する
Sudo sshfs [email protected]:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
RSA公開鍵をリモートマシンに転送したので、リモートユーザーパスワードの入力を求められません。
マシンが信頼されていないという警告が表示され、追加する必要がある場合はプロンプトが表示されます。リモートマシンを信頼済みとして追加します。
ローカルマシンのターミナルで、/ mnt/devboxhomeの下にリモートマシンの/ homeディレクトリをリストできるようになりました。
cd /mnt/devboxhome ls
または、Nautilusを使用してディレクトリを参照します。すばらしいです。
これを実現するために、/ etc/fstabにエントリを追加します。ローカルマシンのユーザーIDとグループIDが必要です。これを見逃した場合は、イントロをご覧ください。コマンドラインエディタで/ etc/fstabを編集し、/ etc/fstabの最後にこれらの2行を追加します
# Mount devbox at boot [email protected]:/home/[remoteuser]/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
ServerAliveCountMax
連続したpingが失敗した場合、再接続します。ローカルマシンとリモートマシンにスティーブとしてログインするユーザーは次のようになります。
[email protected]:/home/steve/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
重要:リモートディレクトリの後にスラッシュ:[email protected]:/ home/steve /
/ etc/fstabを保存して....
これで、ローカルマシンのリモートマシン/ homeディレクトリにアクセスできるはずです/ mnt/devboxhome Nautilusでは、このフォルダーをプレースバーにドラッグできます
リモートマシンで同じ手順を再度実行して、ローカルマシンの/ homeディレクトリを共有します。
zx81roadkillが正しい場合、「sshfs」を使用します。 Sambaはがらくたで、NFSはごみです。 Sshfsは、ここカリフォルニアの私のコンピューターからアルゼンチンのコンピューターまで完全に使用可能です。それは完全に安全で、他のものと同じくらい高速です(私はギバビットラインを持っています)。
Sshfsは、SambaやNFSと比較して比較的新しいですが、どちらよりもはるかに優れています。以下に実行例を示します(すべてのパッケージがインストールされていると仮定)
# mount "username"'s home directory on "machine"
mkdir -p /tmp/my_mount ; sshfs username@machine: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you. You have "username"'s privs
mkdir -p /tmp/my_mount ; sshfs username@machine:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
mkdir -p /tmp/my_mount ; sshfs username@machine:Videos /tmp/my_mount
パスワードを入力すると、/ tmp/my_mountには「machine」上の「username」のすべてのファイルが含まれます。 SambaやNFSをいじってはいけません。それらは、構成またはセットアップのいずれかを行うのに意味のない痛みです。
アンマウントするには:
fusermount -u /tmp/my_mount
それが失敗した場合(何らかの理由で):
umount -f /tmp/my_mount
マウントポイントを介して送信されるすべてのデータは暗号化されます。なぜこれがリモートマシンへのマウントを行う標準の完全に受け入れられた方法ではないのかは、私には謎です。シンプルさの点で他のどの方法よりもはるかに優れています。
生の速度が必要な場合は、おそらく肥大化したジャンクSambaがそれを実行するか、NFSを実行します。わからない、100 MB/s +で十分だ。
ファイルを共有する私の方法:
Sudo npm install -g http-server
共有したいフォルダーに移動し、ターミナルを開いて次のコマンドを実行します。
http-server -o
そのコマンドの出力で示されたIPアドレスで、同じネットワーク内のすべてのマシンのそのフォルダーにアクセスできます。