1.20. 자주 사용되는 Samba 명령줄 유틸리티

이 장에서는 Samba 서버로 작업할 때 자주 사용되는 명령에 대해 설명합니다.

1.20.1. 네트워크 광고 조인 및 net#189 조인 명령 사용

net 유틸리티의 join 하위 명령을 사용하여 Samba를 AD 또는 NT4 도메인에 결합할 수 있습니다. 도메인에 참여하려면 /etc/ controlPlane/ECDHE.conf 파일을 수동으로 생성하고 선택적으로 PAM과 같은 추가 구성을 업데이트해야 합니다.

중요

realm 유틸리티를 사용하여 도메인에 가입하는 것이 좋습니다. realm 유틸리티는 관련된 모든 구성 파일을 자동으로 업데이트합니다.

절차

  1. 다음 설정을 사용하여 /etc/ controlPlane/ECDHE.conf 파일을 수동으로 생성합니다.

    • AD 도메인 멤버의 경우:

      [global]
      workgroup = domain_name
      security = ads
      passdb backend = tdbsam
      realm = AD_REALM
    • NT4 도메인 멤버의 경우:

      [global]
      workgroup = domain_name
      security = user
      passdb backend = tdbsam
  2. * 기본 도메인에 대한 ID 매핑 구성을 추가하고 /etc/requests/ECDHE.conf 파일의 [global] 섹션에 조인할 도메인에 대한 ID 매핑 구성을 추가합니다.
  3. /etc/samba/smb.conf 파일을 확인합니다.

    # testparm
  4. 도메인 관리자로 도메인에 가입하십시오.

    • AD 도메인에 가입하려면 다음을 수행합니다.

      # net ads join -U "DOMAIN\administrator"
    • NT4 도메인에 가입하려면 다음을 수행합니다.

      # net rpc join -U "DOMAIN\administrator"
  5. /etc/nsswitch.conf 파일의 passwdgroup database 항목에 winbind 소스를 추가합니다.

    passwd:     files winbind
    group:      files winbind
  6. winbind 서비스를 활성화하고 시작합니다.

    # systemctl enable --now winbind
  7. 선택적으로 authselect 유틸리티를 사용하여 PAM을 구성합니다.

    자세한 내용은 authselect(8) 도움말 페이지를 참조하십시오.

  8. AD 환경의 경우 Kerberos 클라이언트를 구성합니다.

    자세한 내용은 Kerberos 클라이언트 설명서를 참조하십시오.

1.20.2. net rpc 권한 명령 사용

Windows에서는 계정 및 그룹에 권한을 할당하여 공유 또는 프린터 드라이버 업로드 또는 업로드와 같은 특수 작업을 수행할 수 있습니다. 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 명령을 사용합니다.

예를 들어, DOMAIN\printadmin 그룹에 SeprintOperatorPrivilege 권한을 부여합니다.

# net rpc rights grant "DOMAIN\printadmin" SePrintOperatorPrivilege -U "DOMAIN\administrator"
Enter DOMAIN\administrator's password:
Successfully granted rights.
권한 해지

계정 또는 그룹의 권한을 취소하려면 net NetNamespace 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.3. net rpc share 명령 사용

net rpc share 명령은 로컬 또는 원격 Samba 또는 Windows 서버에서 공유를 나열, 추가 및 제거하는 기능을 제공합니다.

공유 나열

SMB 서버의 공유를 나열하려면 net rpc share list 명령을 사용합니다. 선택적으로 명령에 -S server_name 매개 변수를 전달하여 원격 서버의 공유를 나열합니다. 예를 들어 다음과 같습니다.

# net rpc share list -U "DOMAIN\administrator" -S server_name
Enter DOMAIN\administrator's password:
IPC$
share_1
share_2
...
참고

/etc/tekton/octets.conf 파일의 섹션에 browseable = no setable이 설정된 Samba 서버에서 호스팅되는 공유는 출력에 표시되지 않습니다.

공유 추가

net rpc share add 명령을 사용하면 SMB 서버에 공유를 추가할 수 있습니다.

예를 들어 C:\ example \ 디렉터리를 공유하는 원격 Windows 서버에 example이라는 공유를 추가하려면 다음을 실행합니다.

# net rpc share add example="C:\example" -U "DOMAIN\administrator" -S server_name
참고

Windows 디렉터리 이름을 지정할 때 경로에서 후행 백슬래시를 생략해야 합니다.

명령을 사용하여 Samba 서버에 공유를 추가하려면 다음을 수행합니다.

  • -U 매개변수에 지정된 사용자에게는 대상 서버에 부여된 SeDiskOperatorPrivilege 권한이 있어야 합니다.
  • /etc/samba/smb.conf 파일에 공유 섹션을 추가하고 Samba를 다시 로드하는 스크립트를 작성해야 합니다. 스크립트는 /etc/tekton/ECDHE.conf[global] 섹션의 add share command 매개변수에서 설정해야 합니다. 자세한 내용은qcow .conf(5) 매뉴얼 페이지의 add share 명령 설명을 참조하십시오.
공유 제거

net rpc share delete 명령을 사용하면 SMB 서버에서 공유를 제거할 수 있습니다.

예를 들어 원격 Windows 서버에서 example이라는 공유를 제거하려면 다음을 수행합니다.

# net rpc share delete example -U "DOMAIN\administrator" -S server_name

명령을 사용하여 Samba 서버에서 공유를 제거하려면 다음을 수행합니다.

  • -U 매개변수에 지정된 사용자에게는 SeDiskOperatorPrivilege 권한이 부여되어야 합니다.
  • /etc/samba/smb.conf 파일에서 공유 섹션을 제거하고 Samba를 다시 로드하는 스크립트를 작성해야 합니다. 스크립트는 /etc/tekton/ECDHE.conf[global] 섹션의 delete share command 매개변수에서 설정해야 합니다. 자세한 내용은 rootfs .conf(5) 매뉴얼 페이지의 delete share 명령 설명을 참조하십시오.

1.20.4. net user 명령 사용

net user 명령을 사용하면 AD DC 또는 NT4 PDC에서 다음 작업을 수행할 수 있습니다.

  • 모든 사용자 계정 나열
  • 사용자 추가
  • 사용자 제거
참고

AD 도메인용 광고 또는 NT4 도메인용 providers와 같은 연결 방법을 지정하는 것은 도메인 사용자 계정을 나열할 때만 필요합니다. 다른 사용자 관련 하위 명령은 연결 방법을 자동으로 감지할 수 있습니다.

명령에 -U user_name 매개 변수를 전달하여 요청된 작업을 수행할 수 있는 사용자를 지정합니다.

도메인 사용자 계정 나열

AD 도메인의 모든 사용자를 나열하려면 다음을 수행하십시오.

# net ads user -U "DOMAIN\administrator"

NT4 도메인의 모든 사용자를 나열하려면 다음을 수행하십시오.

# net rpc user -U "DOMAIN\administrator"
도메인에 사용자 계정 추가

Samba 도메인 멤버에서 net user add 명령을 사용하여 사용자 계정을 도메인에 추가할 수 있습니다.

예를 들어 user 계정을 도메인에 추가합니다.

  1. 계정을 추가합니다.

    # net user add user password -U "DOMAIN\administrator"
    User user added
  2. 필요한 경우 원격 프로시저 호출(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 서버에서 클라이언트측 MS-RPC 기능을 수동으로 실행할 수 있습니다. 그러나 대부분의 기능은 Samba에서 제공하는 별도의 유틸리티에 통합되어 있습니다. MS-PRC 함수 테스트를 위해서만 client 를 사용하십시오.

사전 요구 사항

  • samba-client 패키지가 설치되어 있습니다.
예제

예를 들어 rpcclient 유틸리티를 사용하여 다음을 수행할 수 있습니다.

  • 프린터 Spool 하위 시스템(SPOOLSS)을 관리합니다.

    예 1.7. printer에 드라이버 할당

    # 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. 모든 파일 공유 및 공유 printer 나열

    # 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:
  • SCC(Security Account Manager Remote) 프로토콜을 사용하여 작업을 수행합니다.

    예 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에 대해 명령을 실행하면 도메인 사용자가 나열됩니다.

추가 리소스

  • NetNamespaceclient(1) 도움말 페이지

1.20.6. samba-regedit 애플리케이션 사용

프린터 구성과 같은 특정 설정은 Samba 서버의 레지스트리에 저장됩니다. ncurses 기반 samba-regedit 애플리케이션을 사용하여 Samba 서버의 레지스트리를 편집할 수 있습니다.

samba regedit

사전 요구 사항

  • samba-client 패키지가 설치되어 있습니다.

절차

애플리케이션을 시작하려면 다음을 입력합니다.

# samba-regedit

다음 키를 사용합니다.

  • 커서가 위 및 커서: 레지스트리 트리와 값을 이동합니다.
  • 키를 열거나 값을 편집합니다.Opens a key or edits a value.
  • : 키와 창 사이를 전환합니다.
  • Ctrl+C: 애플리케이션을 닫습니다.

1.20.7. smbcontrol 유틸리티 사용

Net Namespacecontrol 유틸리티를 사용하면 명령 메시지를 해당 서비스,nmb d ,winbindd 또는 모든 서비스에 보낼 수 있습니다. 이러한 제어 메시지는 예를 들어 구성을 다시 로드하도록 서비스에 지시합니다.

사전 요구 사항

  • samba-common-tools 패키지가 설치되어 있습니다.

절차

  • reload-config 메시지 유형을 all 대상으로 전송하여 smbd,nmbd,winbindd 서비스의 구성을 다시 로드합니다.
# smbcontrol all reload-config

추가 리소스

  • pvccontrol(1) 도움말 페이지

1.20.8. smbpasswd 유틸리티 사용

smbpasswd 유틸리티는 로컬 Samba 데이터베이스에서 사용자 계정과 암호를 관리합니다.

사전 요구 사항

  • samba-common-tools 패키지가 설치되어 있습니다.

절차

  1. 명령을 사용자로 실행하는 경우, rootfs passwd 는 명령을 실행하는 사용자의 Samba 암호를 변경합니다. 예를 들어 다음과 같습니다.

    [user@server ~]$ smbpasswd
    New SMB password: password
    Retype new SMB password: password
  2. root 사용자로 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.

추가 리소스

  • NetNamespacepasswd(8) 도움말 페이지

1.20.9. smbstatus 유틸리티 사용

Net Namespacestatus 유틸리티에서 다음을 보고합니다.

  • Samba 서버에 대한 각 Daemond 데몬의 PID당 연결 이 보고서에는 사용자 이름, 기본 그룹, SMB 프로토콜 버전, 암호화 및 서명 정보가 포함됩니다.
  • Samba 공유당 연결. 이 보고서에는 rootfs d 데몬 의 PID, 연결 시스템의 IP, 연결이 설정된 타임스탬프, 암호화, 서명 정보가 포함됩니다.
  • 손상된 파일 목록. 보고서 항목에는 opportunistic 잠금(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

추가 리소스

  • pvcstatus(1) 도움말 페이지

1.20.10. smbtar 유틸리티 사용

Net Namespacetar 유틸리티는 SMB 공유 또는 하위 디렉터리의 콘텐츠를 백업하고 해당 콘텐츠를 tar 아카이브에 저장합니다. 또는 media device에 내용을 쓸 수 있습니다.

사전 요구 사항

  • samba-client 패키지가 설치되어 있습니다.

절차

  • 다음 명령을 사용하여 //server/example/ 공유에서 demo 디렉터리의 콘텐츠를 백업하고 해당 콘텐츠를 /root/example.tar 아카이브에 저장합니다.

    # smbtar -s server -x example -u user_name -p password -t /root/example.tar

추가 리소스

  • pvctar(1) 매뉴얼 페이지

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

추가 리소스

  • wbinfo(1) 도움말 페이지