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

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

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.