cifs 설치 폴더에서 파일 메타데이터를 얻는 방법은 무엇입니까?

cifs 설치 폴더에서 파일 메타데이터를 얻는 방법은 무엇입니까?

우리 회사에는 Windows 공유 폴더가 있습니다. Windows에서 액세스하면 파일의 속성 메뉴가 나타나서 찾을 수 있습니다.메타데이터: 만든 사람, 마지막 접속 시간 등

Linux에서는 이 폴더를 마운트했습니다 mount -t cifs. 폴더 사용에 대한 통계를 얻기 위한 스크립트를 작성하고 싶습니다.

Linux에서 이 메타데이터에 액세스할 수 있는 방법이 있습니까?

UPD: 또는 getfacl을 사용하여 작업을 수행할 수 없습니다. 왜냐하면 Windows 도메인 서버의 이름이 아닌 이 폴더가 마운트된 로컬 Linux 사용자 이름만 제공하기 때문입니다.statls -la

UPD2: 다음 명령을 사용하여 공유를 마운트했습니다. sudo mount -t cifs //data/Shared /mnt/Shared -o uid=1000,gid=1000,user=<my_windows_account_name>,dom=<my_domain>,pass=<my_windows_password>여기서 uid=1000 및 gid=1000은 내 Linux 계정의 uid 및 gid입니다.

답변1

당신은 사용하고 있습니다

mount -t cifs //data/Shared /mnt/Shared -o uid=1000,gid=1000,user=<my_windows_account_name>,dom=<my_domain>,pass=

이는 로컬 시스템에 다음 두 가지를 알려줍니다.

  1. 튜플 { 사용자, 도메인, 비밀번호 }로 지정된 자격 증명을 사용하여 원격 서버에 인증합니다.
  2. 마치 UID 1000 및 GID 1000을 가진 사용자 계정에서 온 것처럼 원격 공유에 대한 모든 액세스를 위조합니다.

#1을 계속해야 합니다. 하지만 루트와 계정 자격 증명을 나타내는 로컬 사용자만 읽을 수 있는 보안 파일로 사용자 자격 증명을 이동하는 것이 좋습니다. man mount.cifs자세한 내용은 다음을 참조하세요.

# As root...
cat >/usr/local/etc/Shared.cifs <<'X'
username=my_windows_account_name
domain=my_domain
password=my_windows_password
X
chmod u=rw,go= /usr/local/etc/Shared.cifs
chown my_unix_account_name:root /usr/local/etc/Shared.cifs

# Then mount becomes
mount -t cifs //data/Shared /mnt/Shared -o credentials=/usr/local/etc/Share.cifs,noperm

그러나 #2 사용을 중지하고 대신 로컬 클라이언트에 AD 컨텍스트에서 사용되는 이름을 알려야 합니다. 여기에는 너무 많은 내용이 있지만 요점은 다음과 같습니다.

  • 설치 realmdsamba종속성
  • DNS 서버가 AD 도메인 서버(또는 이에 상응하는 로컬 서버)인지 확인하세요.
  • 찾기를 실행 realm discover하고 올바른 AD 도메인을 볼 수 있는지 확인하세요.
  • realm join {domain}도메인에 가입하려면 실행하세요 .

이제 다른 AD 사용자가 로컬 시스템에 로그인하는 것을 거부할 수 있습니다. 살펴볼 명령은 realm deny -all및 의 변형 realm permit --groups 'domain admins'AllowUsers및 의 AllowGroups변형 입니다 /etc/ssh/sshd_config. 도메인 관리자가 아닌 경우 이에 따라 이 설정을 변경해야 합니다. 매뉴얼 페이지는 매우 훌륭합니다.

다음 명령을 사용하여 연결이 성공했는지 테스트할 수 있습니다.

net ads testjoin
getent password my_windows_account_name    # As above
getent group "domain admins"               # An example group that will exist

답변2

stat명령은 파일/디렉터리 타임스탬프, 소유권 및 기타 메타데이터를 스크립트 친화적인 방식으로 표시할 수 있습니다. man 1 stat자세한 내용은 참고자료를 참조하세요.

권한, 특히 ACL의 경우 getfacl이것이 필요한 명령입니다. 기타 다양한 속성에는 가 있습니다 getfattr.

모든 하위 디렉토리를 포함하여 특정 디렉토리에 얼마나 많은 데이터가 있는지 알고 싶다면 이 du명령이 필요합니다.

관련 정보