우리 회사에는 Windows 공유 폴더가 있습니다. Windows에서 액세스하면 파일의 속성 메뉴가 나타나서 찾을 수 있습니다.메타데이터: 만든 사람, 마지막 접속 시간 등
Linux에서는 이 폴더를 마운트했습니다 mount -t cifs
. 폴더 사용에 대한 통계를 얻기 위한 스크립트를 작성하고 싶습니다.
Linux에서 이 메타데이터에 액세스할 수 있는 방법이 있습니까?
UPD: 또는 getfacl
을 사용하여 작업을 수행할 수 없습니다. 왜냐하면 Windows 도메인 서버의 이름이 아닌 이 폴더가 마운트된 로컬 Linux 사용자 이름만 제공하기 때문입니다.stat
ls -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=
이는 로컬 시스템에 다음 두 가지를 알려줍니다.
- 튜플 { 사용자, 도메인, 비밀번호 }로 지정된 자격 증명을 사용하여 원격 서버에 인증합니다.
- 마치 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 컨텍스트에서 사용되는 이름을 알려야 합니다. 여기에는 너무 많은 내용이 있지만 요점은 다음과 같습니다.
- 설치
realmd
및samba
종속성 - 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
명령이 필요합니다.