Debian
在沒有 linux 密碼的情況下自動掛載以掛載遠端 cifs 文件系統
我的 Debian 首頁中有一個目錄:/home/myuser/pchome/ 我想將其用作遠端 cifs 文件系統的掛載點。所以我有一個 bash 腳本,它在每次 myuser 登錄時執行。該腳本包含以下命令:
mount -t cifs //192.168.1.2/myuser -o username=myuser,password=mypassword,uid=1000,gid=1000 /home/myuser/pchome
該命令就像在控制台中使用自身的魅力一樣。但是,問題是 mount 需要 sudo 和密碼介紹(或以 root 權限執行)。
sudoers
我想到的第一種方法是配置 sudoers 以允許為 myuser 使用 mount。就像是:
myuser ALL=(ALL) NOPASSWD: /bin/mount, /bin/umount
這樣做的問題是 myuser 可以無限制地使用 mount,例如,即使在 /etc 上掛載文件系統也是如此。我對允許 myuser 自由使用 mount 命令不感興趣。
fstab
我想到的第二種方法是使用 fstab 來允許掛載。我沒有對其進行測試,但我認為,使用此解決方案,掛載點和要掛載的文件系統都可以修復,並且無法進行其他掛載。但是,每個使用者都可以執行掛載(如果使用 fstab 行的“使用者”選項)。
從我的角度來看,這兩個想法都不正確,所以如果你們中的任何人知道解決該問題的有效方法,我想知道。我只想被允許使用我家中的掛載點掛載公共遠端文件系統,而不用擔心安全性、密碼或將系統暴露於惡意掛載。它應該更容易,因為安裝點在我自己的家中。
提前致謝。
一種可能性是將安裝命令保存為腳本(只能由 root 修改)並為腳本定義 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 # ...
或授予組權限,例如 group
floppy
:%floppy ALL=(ALL) NOPASSWD: /home/bin/mymount # ...