Linux に Samba サーバーと設定をインストールし (Windows と iOS の両方が相互に接続してファイルを転送できます)、複数のデバイス間でのファイル共有の問題を解決します。
序文
組み込みシステム開発アプリケーション プラットフォームでは、tftp、nfs、および samba サーバーが最も一般的に使用されるファイル転送ツールです。tftp と nfs は組み込み Linux 開発環境で一般的に使用される転送ツールであり、samba は Linux と Windows 間のファイル転送ツールです。転送ツール。
Samba は、Windows Network Neighborhood の SMB 通信プロトコルを模倣した通信プロトコルで、Linux オペレーティング システムを Windows オペレーティング システムとして「偽装」し、Network Neighborhood を通じてファイルを転送します。
Linux オペレーティング システムのバージョン: centos7
Sambaサーバーの紹介
Samba は、Linux システム上で SMB (Session MessageBlock) プロトコルを実装し、ファイル共有とプリンター サービス共有を実現するフリー ソフトウェアです。
Samba サーバー コンポーネント
samba には、2 つの主要プロセス smbd および nmbdがあります。smbd プロセスはファイル サービスと印刷サービスを提供し、nmbd は NetBIOS ネーム サービスとブラウジング サポートを提供し、SMB クライアントによるサーバーの検索を支援し、すべての UDP ベースのプロトコルを処理します。
Sambaサーバーのインストール
すでに存在するかどうかを確認する
rpm -qa | grep samba
[root@localhost temp]# rpm -qa | grep samba
samba-common-libs-4.10.16-5.el7.x86_64
samba-common-tools-4.10.16-5.el7.x86_64
samba-4.10.16-5.el7.x86_64
samba-client-libs-4.10.16-5.el7.x86_64
samba-libs-4.10.16-5.el7.x86_64
samba-client-4.10.16-5.el7.x86_64
samba-common-4.10.16-5.el7.noarch
Sambaをインストールする
yum install -y samba
インストールが成功したかどうかを確認する
rpm -qa | grep samba
[root@192 ~]# rpm -qa | grep samba
samba-common-libs-4.10.4-11.el7_8.x86_64
samba-common-tools-4.10.4-11.el7_8.x86_64
samba-common-4.10.4-11.el7_8.noarch
samba-client-libs-4.10.4-11.el7_8.x86_64
samba-libs-4.10.4-11.el7_8.x86_64
samba-4.10.4-11.el7_8.x86_64
このうち、samba、samba-common、samba-client の 3 つのプログラムが必要です。
Sambaの構成
設定ファイルの変更
実際には、Samba サーバーのメイン設定ファイルは /etc/samba/samba.conf だけです。この設定ファイルは 2 つの部分に分割できます。1 つの部分はグローバル パラメータで、もう 1 つの部分は共有リソースに関連するパラメータ。
1. 全局部分参数设置:
[global]
#与主机名相关的设置
workgroup = zkhouse <==工作组名称
netbios name = zkserver <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
serverstring = this is a test samba server <==说明性文字,内容无关紧要
#与登录文件有关的设置
log file = /var/log/samba/log.%m <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
max log size = 50 <==日志文件最大的大小为50Kb
#与密码相关的设置
security = share <==表示不需要密码,可设置的值为share、user和server
passdb backend = tdbsam
#打印机加载方式
load printer = no <==不加载打印机
-----------------------------------------------------------
2.共享资源设置方面:将旧的注释掉,加入新的
先取消[homes]、[printers]的项目,添加[temp]项目如下
[temp] <==共享资源名称
comment = Temporary file space <==简单的解释,内容无关紧要
path = /tmp <==实际的共享目录
writable = yes <==设置为可写入
browseable = yes <==可以被所有用户浏览到资源名称,
guest ok = yes <==可以让用户随意登录
まず構成ファイルをバックアップします。
cp smb.conf smb.conf1
設定ファイルを変更する
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775
[temp]
comment = test Samba
path = /tmp
writable = yes
browseable = yes
guest ok = yes
Samba ログイン ユーザーとパスワードを追加する
useradd jenrey # jenrey为设置的Samba登录用户名
smbpasswd -a jenrey # jenrey为上面设置的Samba登录用户名,本句含义为给谁设置登录密码
Sambaを再起動する
systemctl restart smb.service
Windows コンピュータを使用して Linux Samba に接続する
Windowsシステムで「ファイル名を指定して実行」を開きます
win+rショートカットキー
Sambaアドレスを入力してください
\192.168.1.198
注: 上記のアドレスは、Samba をインストールした Linux のアドレスです。不明な場合は、ifconfig コマンドを使用して確認できます。
パスワードを入力する必要がある場合は、以前に宣言したアカウント番号と対応するパスワードを入力します。
起動時に Samba が自動的に起動するように設定する
systemctl enable smb.service
cd /etc/systemd/system/multi-user.target.wants/
ll
Sambaを手動で起動する
systemctl start smb.service
Linux 共有にアクセスする権限がなく、Samba サービスにもアクセスする権限がありません。
解決策 1:
SELIUNX をオフにする
getenforce ;查看当前状态
Enforcing
setenforce 0;
SELINUX のいくつかの状態は以下を示します。
enforcing: enforcing モード。これは、SELinux が実行中であり、ドメイン/タイプを正しく制限し始めたことを意味します。
permissive: 許容モード: SELinux が実行されていることを意味しますが、警告メッセージが表示されるだけで、実際にはドメイン/タイプのアクセスは制限されません。このモードは SELinux のデバッグに使用できます。
無効: 無効。SELinux は実際には実行されていません。
このメソッドを直接使用するだけで、シンプルで理解しやすいです。