sudo를 사용하지 않고 외부 SD 카드를 마운트하는 방법은 무엇입니까?

sudo를 사용하지 않고 외부 SD 카드를 마운트하는 방법은 무엇입니까?

다음 명령을 사용하여 특정(truecrypt-) 파일을 SD 카드(및 클라우드를 통해 공유된 폴더)에 백업하도록 설계된 bash 스크립트를 작성했습니다.동기화주문하다.

문제는 보통 SD 카드가 아직 마운트되지 않아 동기화가 되지 않는다는 점입니다. 그래서 카드를 마운트하고, 파일을 동기화하고, 다시 마운트 해제하는 스크립트를 작성했습니다. 스크립트:

#!/bin/bash

sudo mkdir /media/user_name/SDcard
sudo mount -t vfat LABEL="SDcard" /media/user_name/SDcard

rsync -avI /home/user_name/Dokumente/file_to_sync /media/user_name/SDcard
rsync -avI /home/user_name/Dokumente/file_to_sync /home/user_name/cloudbox

sudo umount /media/user_name/SDcard
sudo rmdir /media/user_name/SDcard 

Cloudbox와의 동기화는 잘 작동하지만 SD 카드와의 동기화는 잘 작동하지 않습니다. 또한제거그리고목차두 명령 모두 실행되지 않습니다. 결과적으로 다음에 스크립트를 사용할 때 디렉터리가 이미 존재하기 때문에 오류가 발생합니다.

터미널에서 모든 명령을 수동으로 지속적으로 실행하면동기화명령(함께스도)을 SD 카드에 추가하면 다음과 같은 오류 메시지가 표시됩니다.

user_name@host ~ $ sudo rsync -av ~/Dokumente/file_to_sync /media/user_name/SDcard/file_to_sync
sending incremental file list
file_to_sync
rsync: chown "/media/user_name/SDcard/.file_to_sync.tK2RnM" failed: Operation not permitted (1)

sent 524,416,101 bytes  received 127 bytes  61,696,026.82 bytes/sec
total size is 524,288,000  speedup is 1.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]

이상한 점은 사용하는 대신 바탕 화면 아이콘을 두 번 클릭하여 SD 카드를 마운트하면sudo 마운트..., 문제없이 파일을 동기화할 수 있습니다.

내 스크립트에 문제가 있나요? 여러 가지 수정을 시도했지만 그 중 아무 것도 작동하지 않았습니다.

더블클릭 설치와 터미널 설치가 왜 다른가요? 터미널에서 "두 번 클릭 명령"을 어떻게 "재현"합니까?

나는 오랫동안 그것을 작동시키려고 노력해 왔고 포럼과 튜토리얼 등은 나를 도울 수 없었습니다. 그러니 누구든지 제공할 수 있는 작은 도움에 감사하겠습니다...

감사해요

내 시스템: Linux Mint 17(원래 Cinnamon이지만 XFCE로 변경됨), CORE i7vPro가 포함된 Lenovo T440p, 250GB SSD, 12GB RAM(그리고 제가 만난 최악의 터치패드)

답변1

그래서 권한 문제입니다. 일반 사용자는 루트로 마운트된 FAT 파일 시스템에 접근할 수 없습니다.

FAT에는 소유권 정보가 없기 때문에 모든 파일은 FAT를 설치한 사용자가 소유한 것으로 간주됩니다. [1] 이 오류 메시지는 소유권 정보 보존 옵션을 사용하여 소유한 파일을 FAT 파일 시스템에 복사 chown하려고 하기 때문에 발생합니다 . -a하지만 그곳에서는 사용자가 파일을 소유하도록 만들 수 없으며 루트가 소유해야 합니다.

당신은 할 수rsync또한 sudo로 실행--no-owner(편집: 해당 옵션도 추가해야 함 ) 또는 -ouid=$USER설치 명령에 추가해야 합니다.

또는 udisk 데몬을 사용하여 그래픽 데스크탑 인터페이스가 수행하는 작업을 설치 udisksctl하거나 설치할 수 있습니다. udisks[2]

편집: udisks약간 다르게 보이는 것을 잊어버렸습니다 mount. 죄송합니다. LABEL=을 사용하고 있으므로 udisksctl mount -b /dev/... 분명히 구문을 지원하지 않습니다. 대신 udev에서 만든 심볼릭 링크(바로가기 같은 파일)를 사용할 수 있습니다. udisksctl mount -b /dev/disk/by-label/SDcard.

USB 스틱은 자체적으로 마운트 지점을 선택합니다. 경로는 파일 시스템 식별자(예: 태그)를 사용하므로 해당 식별자가 고유한 한 경로는 일관됩니다... 이상적이지 않을 수도 있습니다.

udisks.GNOME 디스크 의 그래픽 인터페이스를 사용하면 이 작업을 수행 할 수 있다고 생각합니다 /etc/fstab(디스크를 선택한 다음 파티션을 선택하고 아래 기어를 클릭한 후 설치 옵션 편집). mount없이 "이전" 명령을 사용하려면 sudo설치 옵션 목록에 "user" 또는 "users"를 추가할 수도 있습니다( 이러한 옵션 간의 차이점 등을 확인 man mount하고 알아보세요).man fstab


[1] 기본 Linux 파일 시스템(예: ext4)은 FAT와 다릅니다. 파일 시스템은 각 파일을 소유한 사용자 ID를 추적하므로 누가 FS를 마운트했는지는 중요하지 않습니다. Windows NTFS도 사용자 ID를 지원하지만 Linux에 설치할 때 어떻게 작동하는지 묻지 마십시오.

[2] 여기에는 몇 가지 추가 정책 제한(polkit)이 있을 수 있습니다. 기본적으로 SSH를 사용하여 이 시스템에 원격으로 로그인할 때 udisk를 사용할 수 없습니다.

관련 정보