시작 스크립트(fstab 아님)를 사용하여 로그인 시 삼바 공유 마운트

시작 스크립트(fstab 아님)를 사용하여 로그인 시 삼바 공유 마운트

배경

내 사용자가 로그인할 때 비밀번호로 보호된 Samba 공유를 마운트하는 명령을 자동으로 실행하려고 합니다. 문제는 내 노트북을 다른 사용자와 공유하고 있다는 것입니다.~하지 않다그녀가 로그인할 때 Samba 공유가 마운트되기를 원합니다. 나는 단지 그것이 마운트되기를 원합니다.내가 로그인할 때. 이는 사용자별 파일을 원하기 때문에 fstab 파일 편집을 배제합니다.

선행연구

"를 포함하여 Samba 공유 마운트와 관련된 많은 질문과 답변을 검색하고 검토했습니다.부팅/로그인 시 Samba 공유 마운트 및 스크립트 사용" 그리고 "부팅 시 삼바 공유를 마운트하기 위한 적절한 fstab 항목," 그러나 대부분의 답변에는 fstab 편집이 포함되는데, 이는 대부분의 사람들에게 효과적이지만 여기서는 그것이 제가 찾고 있는 것이 아닙니다.

내가 지금까지 한 일

다음을 수행하여 명령줄에서 Samba 공유를 수동으로 마운트할 수 있습니다.

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

문제 설명

이전 명령은 명령줄에서 실행하면 훌륭하게 작동합니다. sudo 권한을 얻기 위해 비밀번호를 묻는 메시지가 표시되고 이를 입력하면 명령이 실행됩니다. 문제는 시작 응용 프로그램 기본 설정 > 시작 프로그램 편집의 "명령" 필드에 정확히 동일한 명령을 추가하고 변경 사항을 저장한 후 재부팅하고 다시 로그인할 때 Samba 공유가 예상한 대로 마운트되지 않는다는 것입니다. sudo로 실행하려면 루트 권한이 필요하고 시작 프로그램 기본 설정의 스크립트를 사용하면 이를 입력할 방법이 없기 때문에 스크립트가 실패하기 때문인 것 같습니다.

이 문제를 어떻게 해결할 수 있나요?

답변1

좋아요, 저는 (다른 사람들의 도움을 받아) 이 문제를 스스로 해결했습니다. 제가 의심했던 것처럼 근본적인 문제는 비밀번호를 제공하지 않고 루트 권한이 필요한 명령을 실행하려고 했다는 사실이었습니다. 스레드의 지침에 따라 이 문제를 해결했습니다.비밀번호를 묻지 않고 스크립트에서 명령을 어떻게 sudo합니까?". 간단히 말해서, 실행하려는 mount 명령이 포함된 한 줄만 포함된 "script-mount-samba-share.sh"라는 쉘 스크립트를 만들었습니다.

mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

그런 다음 파일의 소유권을 root:root로 변경하고 권한을 700으로 변경했습니다. 다음으로 비밀번호를 입력하지 않고도 해당 스크립트를 실행할 수 있도록 sudo를 설정한 다음 시작 응용 프로그램 기본 설정 > 시작 편집에서 "명령" 필드를 변경했습니다. "sudo /home/scott/script-mount-samba-share.sh"(따옴표 제외)로 프로그램하면 짜잔. 다음에 재부팅하고 사용자로 로그인했을 때 손가락 하나 까딱하지 않고도 Samba 공유가 마운트되었습니다. 또한 재부팅하고 다른 사용자로 로그인하면 Samba 공유가 마운트되지 않는 것을 테스트했는데 이것이 바로 제가 원하는 것입니다.

지금 극복하려고 하는 유일한 문제는 이미 로그인한 후 사용자를 다른 사람으로 전환할 때 내 Samba 공유가 여전히 Nautilus의 왼쪽 탐색 모음에 표시된다는 것입니다. 내 사용자로 로그인할 때 마운트되었지만 마운트된 공유가 다른 사용자를 위해 노틸러스에 표시되는 것을 원하지 않으므로 다음 작업은 해당 부분이 발생하도록 하는 방법을 알아내는 것입니다.

답변2

mount 명령에 대한 사용자 이름과 비밀번호를 추가하는 것이 중요합니다. 그렇지 않으면 비밀번호를 요청할 수 있습니다. 나에게 이것은 효과가 있었다:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,user=,password=,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

물론 /etc/sudoers의 모든 변경 사항과 함께

관련 정보