사용 사례
나는 유일한 사용자입니다. 전체 디스크 암호화 기능을 갖춘 우분투 NAS가 있고 내 Windows 컴퓨터를 장치에 백업하려고 합니다. Windows 드라이브를 NAS에 복제할 수 있도록 부팅 가능한 USB 스틱이 필요하지만 공유에 대한 자격 증명이 있는 USB 스틱을 발견한 사람이 전체 백업 공유를 읽을 수 있는 것을 원하지 않습니다. 더 나은 해결책을 생각해 볼 수 있나요?
내가 원하는 것은 실현 가능하다
검색했지만 필요한 것을 찾을 수 없습니다. 내가 찾은 모든 것은 단순히 공유에 대한 쓰기 액세스를 활성화하는 것에 관한 것이었지만 이는 내가 원하는 것이 아닙니다.
내 우분투 컴퓨터에 사용자가 할 수 있는 삼바 공유를 만들고 싶습니다.오직쓰기 권한. 나는 그들이 파일을 만들 수는 있지만 읽을 수는 없고 공유 내의 폴더를 나열할 수는 없도록 하고 싶습니다.
이는 백업용입니다. 부팅할 수 있고 해당 컴퓨터에 있는 드라이브의 디스크 이미지를 가져와 삼바 공유에 저장할 수 있는 부팅 가능한 USB 드라이브를 원하지만 USB가 모든 이미지에 액세스할 수 있는 것을 원하지 않습니다.
파일이 이미 존재한다면 실패해도 괜찮습니다. 드라이브 UUID/시간을 사용하여 파일 이름이 충돌하지 않는지 확인하겠습니다.
답변1
비슷한 작업을 수행했는데 유일한 차이점은 한 사용자는 쓰기만 할 수 있지만 읽을 수는 없고(디렉터리 목록도 나열) 다른 사용자는 읽기만 할 수 있다는 것입니다.
/etc/samba/smb.conf
[write-only]
comment = Write-only access without read
path = /smbshare
hosts allow = 172.17.10.10
hosts deny = 0.0.0.0/0
read only = no
write list = smbwrite
force user = smbwrite
force group = smbread
create mask = 0350
directory mask = 0350
force create mode = 0350
force directory mode = 0350
서버 측 초기 액세스 권한:
chmod -R 350 /smbshare
chown -R smbwrite:smbread /smbshare
유일한 단점은 정확한 파일 이름을 알면 나열할 수 있다는 것입니다.
다음 섹션은 참조용으로 제공됩니다.
[read-only]
comment = Read-only access
path = /smbshare
read only = yes
hosts allow = 172.17.10.20
hosts deny = 0.0.0.0/0
read list = @smbread
/etc/fstab
두 클라이언트의 항목:
smbwrite (172.17.10.10), 로컬 사용자 "foo":
//172.17.10.1/write-only /mnt/write cifs user=smbwrite,pass=s3kr1t,uid=foo,vers=3.0 0 0
smbread (172.17.10.20), 로컬 사용자 "bar":
//172.17.10.1/read-only /mnt/read cifs user=smbread,pass=s3kr1t,uid=bar,vers=3.0 0 0
답변2
마운트 지점은 비활성화된 쓰기(읽기 전용)만 지원하고 비활성화된 읽기는 지원하지 않습니다. 그러나 파일 권한을 사용하여 대부분의 작업을 수행할 수 있습니다. 사용자가 자신의 파일을 읽는 것을 막을 수는 없지만 다른 사람의 파일을 읽는 것은 막을 수 있습니다.
필요할 것이예요:
- 사용자가 서로의 파일을 삭제하는 것을 방지하는 고정 비트입니다.
- 다른 사람이 읽지 못하도록 디렉토리의 읽기 비트를 끄십시오.
- 기본 권한을 설정하여 다른 사람이 파일을 읽지 못하도록 파일의 읽기 비트를 끄십시오.
어떻게
chmod +t "«the directory»"
setfacl -m "u::wx,g::wx,o:-" "«the directory»"
setfacl -m "d:u::-,d:g::-,d:o:-" "«the directory»"
경고하다
이 기능은 사용자가 쉽게 사용할 수 없습니다.일부추가 권한. 또는 사용자당 하나의 디렉터리입니다.
백업을 하는 방법도 아닌 것 같아요. 매일 백업을 수행하도록 크론 작업을 설정합니다. 버전 제어를 위해 백업을 사용할 수 있으므로 버전 제어 시스템 사용을 고려하십시오. Subversion(svn)은 필수 사용자와 대부분의 파일 형식에 적합한 버전입니다. Mercurial은 프로그래머에게도 적합하며 다른 파일 형식과 함께 사용할 수 있지만 병합할 수 없는 파일(예: MS-Office)에는 권장하지 않습니다.