回答:
Windowsはこれと何の関係がありますか?Windowsマシンと共有しようとはしていません...
あなたは正しい、これは混乱する可能性があります。それでは、まず用語を明確にしてみましょう。
Windowsがファイルとプリンターを共有する方法はSMBと呼ばれます。SAMBAプロジェクトの人々は、MicrosoftのすべてのプロトコルとLinux仕様を実装しています。したがって、Ubuntuは、Sambaと呼ばれるWindowsと同じ種類のファイル共有をサポートしています。
SAMBAを使用して、Linuxマシン間でファイルを共有できます。実際、たとえば、Windowsコンピューターを持っている友人がいる場合に、それを好むかもしれません。
別の方法として、ファイルを共有するLinuxの方法(NFS(Network File System))を使用することもできます- 前の質問に対するこの回答は、その方法を説明しています。(しかし、かなり技術的です)
そのため、[共有オプション]ダイアログでパッケージのインストールを求められたとき、実際にはMicrosoftソフトウェアなどはインストールしていません。さあ、それをしてください、それは完全に安全です。
補遺:
Salih Eminの指示に従う前に、共有を有効にしてみてください。動作しない場合は、簡単な警告が表示されます。必要に応じて、Salihが説明する手順を実行できます。新しくインストールした最新のシステムで試してみましたが、実際にこれを行う必要がありました。
現時点では、ランチパッドにリストされているLucidに小さなバグがあります:バグ#536766。このバグは、ファイル共有のセットアップを完了するために必要なパッケージをインストールするようユーザーに促しません。それが解決されるまで、ここに簡単な回避策があります。
libapache2-mod-dnssdをインストールして再起動する必要があります。このリンクをクリックしてインストールするか、ソフトウェアセンターでlibapache2-mod-dnssdを見つけます。
インストールしたら、[ システム]→[設定]→[個人ファイルの共有]に移動し、[ネットワーク上のパブリックファイルを共有する]ボックスをオンにします。
すべて完了したら、パブリックフォルダ内でパブリックファイルの共有を許可しているネットワーク上の他のすべてのコンピュータを表示できるようになります。[ 場所 ] → [ ネットワーク ]をクリックすると、使用可能なすべてのコンピューターとその共有パブリックフォルダーが表示されます。
サーバーアイコンをダブルクリックすると、デスクトップに関連するパブリックフォルダーがマウントされます。
リンクテキスト経由
LinuxマシンでsimpleHTTPサーバーを実行し、他のマシンで同じHTTPサーバーにアクセスできます。
手順:
python -m SimpleHTTPServer
ifconfig
。ダウンロードするフォルダーに必要なファイルを取得します。
python3 -m http.server
私はそれがSAMBAパッケージが下にリストされているか、それが説明の少なくとも一部であると信じています。別の方法として、別のメカニズムを使用すると思われる環境設定->ファイル共有を試すことができます。ただし、Sambaはインストールしておくと便利です。
Ubuntuへのシームレスな統合が必要で、Windowsの互換性に関心がない場合は、SSHが最適です。
LAN経由で2台のLinuxマシン間でファイルを共有するにはどうすればよいですか?を参照してください。
SSHサーバーのインストールが必要になる場合があります。
sudo apt-get install openssh-server
クライアントのファイルマネージャーアプリから、次の方法でサーバーにアクセスできます。
sftp://servername.local
端末から、またはプログラムでファイルにアクセスするには、を使用sshfs
してクライアントのファイルシステムにマウントポイントを作成します。
scp
、および(さらに良い)がありrsync
ます。
Linuxのみのネットワークの場合、SSHFSはネイティブで安定しており、非常に高速であることがわかりました。2つのXubuntuマシン(18.04)がSSH経由で/ homeフォルダーを共有しています。
パスワードを入力せずにfstabを使用して、このsshfsをセットアップし、再起動後に自動的に再接続する方法を次に示します。リモートのサスペンド/再開後に再接続する方法については、serverfaultユーザー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 youremail@example.com
キーはローカルマシンのホームディレクトリ/.sshフォルダーに保存されます
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
リモートマシンのリモートユーザーのパスワードの入力を求められます。ローカルマシンの公開キーが、リモートマシンの〜/ .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 steve@192.168.1.151:/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
remoteuser@192.168.1.151:/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が失敗し、再接続します。ローカルマシンとリモートマシンにスティーブとしてログインするユーザーは次のようになります。
steve@192.168.1.151:/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
重要:リモートディレクトリの後ろのスラッシュ:steve@192.168.1.151:/ home / steve /
/ etc / fstabを保存して....
これで、ローカルマシンのリモートマシン/ homeディレクトリにアクセスできるはずです。/ mnt / devboxhome Nautilusでは、このフォルダーをプレースバーにドラッグできます。
リモートマシンで同じ手順を再度実行して、ローカルマシンの/ homeディレクトリを共有します。
ファイルを共有する私の方法:
sudo npm install -g http-server
共有したいフォルダーに移動し、ターミナルを開いて次のコマンドを実行します:
http-server -o
そのコマンドの出力で示されたIPアドレスで、同じネットワーク内のすべてのマシンのそのフォルダーにアクセスできます。
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 +で十分です。