내 Debian 홈 디렉터리에 /home/myuser/pchome/ 디렉터리가 있는데, 이를 원격 cifs 파일 시스템의 마운트 지점으로 사용하고 싶습니다. 그래서 myuser가 로그인할 때마다 실행되는 bash 스크립트가 있습니다. 스크립트에는 다음 명령이 포함되어 있습니다.
mount -t cifs //192.168.1.2/myuser -o username=myuser,password=mypassword,uid=1000,gid=1000 /home/myuser/pchome
이 명령은 콘솔에서 그 자체로 매력처럼 작동합니다. 하지만 문제는 마운트하려면 sudo 및 비밀번호 입력(또는 루트 권한으로 실행)이 필요하다는 것입니다.
Sudoers
내 마음에 떠오른 첫 번째 방법은 myuser가 마운트를 사용할 수 있도록 sudoer를 구성하는 것이었습니다. 그것은 다음과 같습니다:
myuser ALL=(ALL) NOPASSWD: /bin/mount, /bin/umount
문제는 myuser가 제한 없이 마운트를 사용할 수 있다는 것입니다. 예를 들어 /etc에 파일 시스템을 마운트할 수도 있습니다. 나는 myuser가 자유롭게 mount 명령을 사용하도록 허용하는 데 관심이 없습니다.
시스템 테이블
제가 생각한 두 번째 방법은 fstab을 사용하여 마운트를 허용하는 것이었습니다. 테스트해보지는 않았지만 이 솔루션을 사용하면 마운트 지점과 마운트할 파일 시스템을 모두 복구할 수 있으며 다른 마운트는 완료할 수 없다고 가정합니다. 그러나 모든 사용자가 설치를 수행할 수 있습니다(fstab 줄에 "user" 옵션이 사용된 경우).
내 관점에서는 어느 쪽도 옳지 않다고 생각하는데, 혹시 이 문제를 해결하는 효율적인 방법을 아시는 분이 계신지 궁금합니다. 보안이나 비밀번호에 대한 걱정이나 시스템을 악의적인 마운트에 노출시키지 않고 집에서 마운트 지점을 사용하여 공용 원격 파일 시스템을 마운트할 수 있기를 원합니다. 설치 지점이 내 집에 있으므로 이 작업이 더 쉬울 것입니다.
미리 감사드립니다.
답변1
한 가지 가능성은 설치 명령을 스크립트(루트만 수정 가능)로 저장하고 스크립트에 대한 sudo 권한을 정의하는 것입니다.
/home/bin/mymount
:
#!/bin/sh
mount -t cifs //192.168.1.2/myuser -o username=myuser,password=mypassword,uid=1000,gid=1000 /home/myuser/pchome
sudoers
:
myuser ALL=(ALL) NOPASSWD: /home/bin/mymount # and maybe , /home/bin/myumount
참고로 해당 CIFS 비밀번호를 다음 위치에 저장할 수도 있습니다.자격 증명 파일.
별칭을 정의하거나 그룹에 권한을 부여하여 개별 사용자에게 권한을 부여할 수 있습니다.
별칭 사용:
User_Alias CIFSUSERS = myuser, user2, user3 #, more users
CIFSUSERS ALL=(ALL) NOPASSWD: /home/bin/mymount # ...
또는 다음과 같은 특정 그룹에 권한을 부여합니다 floppy
.
%floppy ALL=(ALL) NOPASSWD: /home/bin/mymount # ...
답변2
당신은 시도 할 수 있습니다자동 파일 시스템
이렇게 하면 사용자가 폴더에 액세스하면 자동으로 설치됩니다.