1.20. 頻繁に使用される Samba コマンドラインユーティリティー
この章では、Samba サーバーで作業する場合によく使用されるコマンドを説明します。
1.20.1. net ads join コマンドおよび net rpc join コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
net ユーティリティーの join サブコマンドを使用すると、Samba を AD ドメインまたは NT4 ドメインに参加させることができます。ドメインに参加するには、/etc/samba/smb.conf ファイルを手動で作成し、必要に応じて PAM などの追加設定を更新する必要があります。
Red Hat は、realm ユーティリティーを使用してドメインに参加させることを推奨します。realm ユーティリティーは、関連するすべての設定ファイルを自動的に更新します。
手順
以下の設定で
/etc/samba/smb.confファイルを手動で作成します。AD ドメインメンバーの場合:
[global] workgroup = domain_name security = ads passdb backend = tdbsam realm = AD_REALMNT4 ドメインメンバーの場合:
[global] workgroup = domain_name security = user passdb backend = tdbsam
-
/etc/samba/smb.confファイルの[global]セクションに、*デフォルトドメインおよび参加するドメイン用の ID マッピング設定を追加します。 /etc/samba/smb.confファイルを検証します。# testparmドメイン管理者としてドメインに参加します。
AD ドメインに参加するには、以下のコマンドを実行します。
# net ads join -U "DOMAIN\administrator"NT4 ドメインに参加するには、以下のコマンドを実行します。
# net rpc join -U "DOMAIN\administrator"
/etc/nsswitch.confファイルのデータベースエントリーpasswdおよびgroupにwinbindソースを追加します。passwd: files winbind group: files winbindwinbindサービスを有効にして起動します。# systemctl enable --now winbindオプション:
authselectユーティリティーを使用して PAM を設定します。詳細は、システム上の
authselect(8)man ページを参照してください。オプション: AD 環境では、必要に応じて Kerberos クライアントを設定します。
詳細は、Kerberos クライアントのドキュメントを参照してください。
1.20.2. net rpc rights コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
Windows では、アカウントおよびグループに特権を割り当て、共有での ACL の設定やプリンタードライバーのアップロードなどの特別な操作を実行できます。Samba サーバーでは、net rpc rights コマンドを使用して権限を管理できます。
設定可能な権限のリスト表示
利用可能な特権とその所有者をすべて表示するには、net rpc rights list コマンドを使用します。以下に例を示します。
# net rpc rights list -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
SeMachineAccountPrivilege Add machines to domain
SeTakeOwnershipPrivilege Take ownership of files or other objects
SeBackupPrivilege Back up files and directories
SeRestorePrivilege Restore files and directories
SeRemoteShutdownPrivilege Force shutdown from a remote system
SePrintOperatorPrivilege Manage printers
SeAddUsersPrivilege Add users and groups to the domain
SeDiskOperatorPrivilege Manage disk shares
SeSecurityPrivilege System security
特権の付与
アカウントまたはグループへの特権を付与するには、net rpc rights grant コマンドを使用します。
たとえば、SePrintOperatorPrivilege 権限を、DOMAIN\printadmin グループに付与します。
# net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully granted rights.
特権の取り消し
アカウントまたはグループから特権を取り消すには、net rpc rights revoke コマンドを使用します。
たとえば、DOMAIN\printadmin グループから SePrintOperatorPrivilege 権限を取り消すには、以下のコマンドを実行します。
# net rpc rights remoke "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully revoked rights.
1.20.4. net user コマンドの使用 リンクのコピーリンクがクリップボードにコピーされました!
net user コマンドを使用すると、AD DC または NT4 PDC で以下の操作を実行できます。
- すべてのユーザーアカウントのリストを表示
- ユーザーの追加
- ユーザーの削除
AD ドメイン用の ads、NT4 ドメイン用の rpc などの接続方法の指定は、ドメインユーザーアカウントをリスト表示する場合にのみ必要です。その他のユーザー関連のサブコマンドは、接続メソッドを自動検出できます。
-U user_name パラメーターをコマンドに渡して、要求されたアクションを実行できるユーザーを指定します。
ドメインユーザーアカウントのリスト表示
AD ドメイン内のユーザーをリスト表示するには、以下を実行します。
# net ads user -U "DOMAIN\administrator"
NT4 ドメインのユーザーをリスト表示するには、以下を実行します。
# net rpc user -U "DOMAIN\administrator"
ユーザーアカウントのドメインへの追加
Samba ドメインメンバーの場合は、net user add コマンドを使用して、ユーザーアカウントをドメインに追加できます。
たとえば、user アカウントをドメインに追加します。
以下のアカウントを追加します。
# net user add user password -U "DOMAIN\administrator" User user addedオプション: リモートプロシージャコール (RPC) シェルを使用して、AD DC または NT4 PDC でアカウントを有効にします。以下に例を示します。
# net rpc shell -U DOMAIN\administrator -S DC_or_PDC_name Talking to domain DOMAIN (S-1-5-21-1424831554-512457234-5642315751) net rpc> user edit disabled user: no Set user's disabled flag from [yes] to [no] net rpc> exit
ドメインからのユーザーアカウントの削除
Samba ドメインメンバーの場合は、net user delete コマンドを使用して、ドメインからユーザーアカウントを削除できます。
たとえば、ドメインから user アカウントを削除するには、以下のコマンドを実行します。
# net user delete user -U "DOMAIN\administrator"
User user deleted
1.20.5. rpcclient ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
rpcclient ユーティリティーを使用すると、ローカルまたはリモートの SMB サーバーでクライアント側の Microsoft Remote Procedure Call (MS-RPC) 機能を手動で実行できます。ただし、ほとんどの機能は、Samba が提供する個別のユーティリティーに統合されています。rpcclient は、MS-PRC 関数のテストにのみ使用します。
前提条件
-
samba-clientパッケージがインストールされている。
例
たとえば、rpcclient ユーティリティーを使用して以下を行うことができます。
プリンターのスプールサブシステム (SPOOLSS) を管理します。
例1.7 プリンターへのドライバーの割り当て
# rpcclient server_name -U "DOMAIN\administrator" -c 'setdriver "printer_name" "driver_name"' Enter DOMAIN\administrators password: Successfully set printer_name to driver driver_name.SMB サーバーに関する情報を取得します。
例1.8 すべてのファイル共有および共有プリンターのリスト表示
# rpcclient server_name -U "DOMAIN\administrator" -c 'netshareenum' Enter DOMAIN\administrators password: netname: Example_Share remark: path: C:\srv\samba\example_share\ password: netname: Example_Printer remark: path: C:\var\spool\samba\ password:Security Account Manager Remote (SAMR) プロトコルを使用して操作を実行します。
例1.9 SMB サーバー上のユーザーのリスト表示
# rpcclient server_name -U "DOMAIN\administrator" -c 'enumdomusers' Enter DOMAIN\administrators password: user:[user1] rid:[0x3e8] user:[user2] rid:[0x3e9]スタンドアロンサーバーまたはドメインメンバーに対してコマンドを実行すると、ローカルデータベースのユーザーのリストが表示されます。AD DC または NT4 PDC に対してコマンドを実行すると、ドメインユーザーのリストが表示されます。
1.20.6. samba-regedit アプリケーションの使用 リンクのコピーリンクがクリップボードにコピーされました!
プリンター設定などの特定の設定は、Samba サーバーのレジストリーに保存されます。ncurses ベースの samba-regedit アプリケーションを使用して、Samba サーバーのレジストリーを編集できます。
前提条件
-
samba-clientパッケージがインストールされている。
手順
アプリケーションを起動するには、次のコマンドを入力します。
# samba-regedit
次のキーを使用します。
- カーソルを上下に動かして、レジストリーツリーと値の間を移動します。
- Enter - キーを開くか、値を編集します。
-
Tab -
KeyペインとValueペインを切り替えます。 - Ctrl+C - アプリケーションを閉じます。
1.20.7. smbcontrol ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbcontrol ユーティリティーを使用すると、smbd、nmbd、winbindd、またはこのすべてのサービスにコマンドメッセージを送信できます。この制御メッセージは、設定の再読み込みなどのサービスを指示します。
前提条件
-
samba-common-toolsパッケージがインストールされている。
手順
-
reload-configメッセージタイプをall宛に送信して、smbd、nmbd、winbinddサービスの設定をリロードします。
# smbcontrol all reload-config
1.20.8. smbpasswd ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbpasswd ユーティリティーは、ローカルの Samba データベースでユーザーアカウントおよびパスワードを管理します。
前提条件
-
samba-common-toolsパッケージがインストールされている。
手順
ユーザーとしてコマンドを実行すると、
smbpasswdはコマンドを実行するユーザーの Samba パスワードを変更します。以下に例を示します。[user@server ~]$ smbpasswd New SMB password: password Retype new SMB password: passwordrootでsmbpasswdを実行すると、たとえば以下のようにユーティリティーを使用できます。新しいユーザーを作成します。
[root@server ~]# smbpasswd -a user_name New SMB password: password Retype new SMB password: password Added user user_name.注記Samba データベースにユーザーを追加する前に、ローカルのオペレーティングシステムにアカウントを作成する必要があります。基本的なシステム設定の設定の コマンドラインでの新規ユーザーの追加 セクションを参照してください。
Samba ユーザーを有効にします。
[root@server ~]# smbpasswd -e user_name Enabled user user_name.Samba ユーザーを無効にします。
[root@server ~]# smbpasswd -x user_name Disabled user user_nameユーザーを削除します。
[root@server ~]# smbpasswd -x user_name Deleted user user_name.
1.20.9. smbstatus ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbstatus ユーティリティーは以下を報告します。
-
各
smbdデーモンの PID ごとの接続を Samba サーバーに接続します。このレポートには、ユーザー名、プライマリーグループ、SMB プロトコルのバージョン、暗号、および署名の情報が含まれます。 -
Samba 共有ごとの接続このレポートには、
smbdデーモンの PID、接続しているマシンの IP、接続が確立された時点のタイムスタンプ、暗号、および署名情報が含まれます。 - ロックされたファイルのリスト。レポートエントリーには、日和見ロック (oplock) タイプなどの詳細が含まれます。
前提条件
-
sambaパッケージがインストールされている。 -
smbdサービスが実行している。
手順
# smbstatus
Samba version 4.15.2
PID Username Group Machine Protocol Version Encryption Signing
....-------------------------------------------------------------------------------------------------------------------------
963 DOMAIN\administrator DOMAIN\domain users client-pc (ipv4:192.0.2.1:57786) SMB3_02 - AES-128-CMAC
Service pid Machine Connected at Encryption Signing:
....---------------------------------------------------------------------------
example 969 192.0.2.1 Thu Nov 1 10:00:00 2018 CEST - AES-128-CMAC
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
....--------------------------------------------------------------------------------------------------------
969 10000 DENY_WRITE 0x120089 RDONLY LEASE(RWH) /srv/samba/example file.txt Thu Nov 1 10:00:00 2018
1.20.10. smbtar ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
smbtar ユーティリティーは、SMB 共有またはそのサブディレクトリーのコンテンツのバックアップを作成し、そのコンテンツを tar アーカイブに保存します。または、コンテンツをテープデバイスに書き込むこともできます。
前提条件
-
samba-clientパッケージがインストールされている。
手順
以下のコマンドを使用して、
//server/example/共有上のdemoディレクトリーのコンテンツをバックアップして、/root/example.tarアーカイブにコンテンツを保存するには、以下を実行します。# smbtar -s server -x example -u user_name -p password -t /root/example.tar
1.20.11. wbinfo ユーティリティーの使用 リンクのコピーリンクがクリップボードにコピーされました!
wbinfo ユーティリティーは、winbindd サービスが作成および使用する情報をクエリーし、返します。
前提条件
-
samba-winbind-clientsパッケージがインストールされている。
手順
たとえば、以下のように、wbinfo を使用できます。
ドメインユーザーのリストを表示します。
# wbinfo -u AD\administrator AD\guest ...ドメイングループのリストを表示します。
# wbinfo -g AD\domain computers AD\domain admins AD\domain users ...ユーザーの SID を表示します。
# wbinfo --name-to-sid="AD\administrator" S-1-5-21-1762709870-351891212-3141221786-500 SID_USER (1)ドメインおよび信頼に関する情報を表示します。
# wbinfo --trusted-domains --verbose Domain Name DNS Domain Trust Type Transitive In Out BUILTIN None Yes Yes Yes server None Yes Yes Yes DOMAIN1 domain1.example.com None Yes Yes Yes DOMAIN2 domain2.example.com External No Yes Yes