cifs 네트워크 드라이브 마운트 : 쓰기 권한 및 chown


99

cifs 네트워크 드라이브에 액세스 할 수 있습니다. OSX 머신에 마운트하면 읽고 쓸 수 있습니다.

우분투에서 드라이브를 마운트 할 때 다음을 사용하십시오.

sudo mount -t cifs -o username=${USER},password=${PASSWORD} //server-address/folder /mount/path/on/ubuntu

네트워크 드라이브에 쓸 수 없지만 읽을 수는 있습니다. 마운트 폴더의 권한과 소유자를 확인했는데 다음과 같습니다.

4.0K drwxr-xr-x  4 root root    0 Nov 12  2010 Mounted_folder

오류가 발생하여 소유자를 변경할 수 없습니다.

chown: changing ownership of `/Volumes/Mounted_folder': Not a directory

네트워크 드라이브로 더 깊이 들어가서 소유권을 변경하면 폴더 소유자를 변경할 권한이 없다는 오류가 발생합니다.

쓰기 권한을 활성화하려면 어떻게해야합니까?


파일 시스템이 / etc / fstab에 나열되어 있습니까? 그렇다면 항목에 어떤 옵션이 있습니까?
Jenny D

3
noperm이 질문에 대한 대답에서 비슷하게 설명 된 마운트 옵션을 사용할 수도 있습니다 : unix.stackexchange.com/a/375523/16287 . 이렇게하면 모든 사용자에게 CIFS 마운트에 대한 읽기 및 쓰기 액세스 권한 이 부여됩니다 .
Daniel

답변:


137

CIFS 공유를 루트로 마운트 했으므로 (사용했기 때문에 sudo) 일반 사용자로 쓸 수 없습니다. Linux 배포 및 커널이 최신 버전으로 네트워크 공유를 일반 사용자로 마운트 할 수있을만큼 (그러나 사용자가 소유 한 폴더 아래) 마운트 할 수있는 경우 파일을 작성할 수있는 적절한 자격 증명을 갖게됩니다 (예 : 공유 폴더를 홈 디렉토리 (예 : $HOME/netshare/. 폴더를 마운트하기 전에 폴더를 작성해야합니다).

다른 방법은 탑재 된 네트워크 공유에서 사용해야하는 사용자 및 그룹 ID를 지정하는 것입니다. 이렇게하면 특정 사용자 및 잠재적으로 그룹이 공유에 쓸 수 있습니다. 다음 옵션을 mount :에 추가 하고 각각 사용자 및 기본 그룹으로 uid=<user>,gid=<group>바꾸 십시오 . 명령 으로 자동으로 찾을 수 있습니다 .<user><group>id

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g) //server-address/folder /mount/path/on/ubuntu

서버가 소유권 정보를 보내는 경우 forceuidforcegid옵션 을 추가해야 할 수도 있습니다.

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu

그것은 나를 위해 일했다! 그러나 공유 폴더가 로그인 도메인이있는 PC에 있으면 옵션을 추가해야합니다 domain. 이와 같은 것 : sudo mount -t cifs -o username=${USER},password=${PASSWORD},dom=${DOMAIN}, uid=<user>,gid=<group> //server-address/folder /mount/path/on/ubuntu실제로 도메인은 "username"옵션으로 들어갈 수 있지만 username = DOMAIN / user.name` /대신 사용해야 합니다 `, like .
João Portela

예, 맞습니다. :-) "domain ="옵션 또는 사용자 이름을 통해 도메인 또는 작업 그룹 (이전 Windows 버전의 경우)을 지정해야 할 수도 있습니다. 때로는 사용할 암호화 체계 나 CIFS 버전을 지정해야 할 때도 있습니다. 그러나이 모든 것이이 질문의 일부가 아니므로 따로 두었습니다. :-)
Huygens 2014

2
이것은 내가 필요한 것입니다. 시작시 네트워크 드라이브를 자동 마운트하기 위해 / etc / fstab에 항목이 있습니다. 마운트에 쓸 수 없으므로 다음과 같은 줄에, uid = <myUserID>를 추가했습니다.//192.168.1.7/public /colmustang cifs username=<uname>,password=<upassword>,uid=<myUserID> 0 0
James

5
@ 71GA username는 인증에 사용할 원격 로그인입니다. 는 uid모든 파일 / 폴더를 낮잠 할 로컬 사용자 ID입니다. 따라서 사용자 이름은 uid에서 분리되고 사용자 이름은 원격 사용자 로그인이며 uid는 로컬 사용자 ID입니다. 서버가 Samba이고 클라이언트와 서버 모두에서 LDAP 또는 다른 중앙 집중식 계정을 사용하는 경우에도 마찬가지입니다.
Huygens

1
@Tak 좋은 질문입니다. 수정 된 답변을 참조하십시오.
Gilles

20

다음 명령을 성공적으로 테스트했습니다.

sudo mount -t cifs -o username=[username],password=[password],uid=1001,gid=1001 //172.16.148.2/dfsgob01 /home/ususario/Documentos/benz-win

19
"id -u <user>"및 "id -g <user>를 사용하여 각각 uid 및 gid를 가져
오십시오

3
man mount.cifs
jstricker

2
명령과 함께 암호를 쓰지 않으려면 호출 중에 암호 옵션을 생략하십시오. 프롬프트가 표시되면 암호를 입력하여 보이지 않게 입력 할 수 있습니다.
conceptdeluxe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.