Ubuntu 11.10を使用していて、freenasサーバーをマウントしようとしています。サーバーをcifsおよびnfsで共有するように設定しています。
smbmount //192.168.1.### /mnt/
を試しました
私はUbuntuを初めて使用するわけではありませんが、パワーユーザーの近くにはいないため、可能な場合はGUIオプションを選択します。
11.10でcifs共有をマウントするにはどうすればよいですか?
pyNeighborhood があります。これは、Samba共有をマウントするためのGUIであり、ソフトウェアセンターでダウンロードできます。
良い記事があります ここにあります 設定と使用方法について。
最初にcifs utilsをインストールします
Sudo apt-get install cifs-utils
または、基本的な端末コマンドは次のとおりです。
mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares /mnt/share
Nautilusでマウントを確認したい場合は、最初に/ media/USERNAME /にサブフォルダーを作成すると良いでしょう:
mkdir /media/paul/cifsShare
また、たとえば、mountコマンドでパスワードを省略できます(ファイル/フォルダーモードも示します)。
Sudo mount -t cifs //nas-server/cifsShare /media/paul/cifsShare -o username=paulOnNAS,iocharset=utf8,file_mode=0777,dir_mode=0777,soft,user,noperm
この場合、マウント時にパスワード(実際には2つのパスワード)を求められます。
Sambaのドキュメントはこちら を読んで、起動時などにマウントするように正しく設定してください。
Map7のとおりですが、ドライブ上のファイルを変更するたびにルート権限を使用したくない場合は、ユーザーフォルダーにマウントし、gidとuidがユーザー名に設定されていることを確認する必要があります。
それらを設定するコマンド:
mount -t cifs -o username=USERNAME,password=PASSWD,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share
mnt
フォルダーは、~/mnt/share
ではなく/mnt/share
に作成されていることに注意してください。
また、シェルの履歴に保存されている可能性のあるコマンドにパスワードを入力する代わりに、パスワード= PASSWDを省くことができます:
mount -t cifs -o username=USERNAME,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share
1)私のサンバの共有は、Caja(ubuntu 16.04„ Explorer“)で次のように表示されます。
smb://thinkpad/ddrive/
これは優れたlithmusテストであり、接続/パスの問題はありません。
(警告:Windowsマシンからパスワード資格情報についてcajaから尋ねられた場合、ドメインをWORKGROUPからマシン名、つまり「thinkpad」に切り替えることができます。その後、真にローカルなログイン資格情報あなたのドライブのする必要があります。)
2)それが機能する場合、コマンドが来ます:
Sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
,password=supersecret
を直接(スペースなしで)追加しますが、コマンドを入力するときにプロンプトが表示されるのを待つこともできます。Cifs接続を行うにはルートが常に必要であるという主張には同意しません。確かに、CLI smbmountには常に必要ですが、nautilusなどのファイルマネージャーにはcifs共有をマウントする機能があり、rootである必要はありません。
Gnomeは使用しませんが、Nautilusはインストールされています。これを端末で実行して、デスクトップを乗っ取ろうとしないようにします
$ nautilus --no-desktop &
Ubuntu 16.04では、左側のツリーメニューの下部に[サーバーに接続]があります。それをクリックして、提案はタイプ「smb://foo.example.com」です。 smbは「cifs」の古いWordであり、サーバーに入れて最初にsmb://と共有すると、接続は機能します。約束します。共有が名前付きのものである場合、スラッシュ「smb://foo.example.com/myshare」の後に必要です。
他のファイルマネージャーも同じように使用しました。プロトコルは「smb://」でなければなりません。
CIF/SMBのバージョンがLinuxとWindowsの間で互換性がない場合、特定の問題が発生し、解決するのが非常にイライラします。その場合、「vers = 2.1」を追加してfstab行でマイナー変更を行うことができます。
したがって、WindowsまたはSMBサーバーがIPアドレスにある場合192.168.1.1
/etc/fstab
//192.168.1.1/SharedFolder/ /mnt/linux_smb cifs vers=2.1,username=winuser,password=TopSecret 0 0
ステップ2、3、および4は、前の回答と同じままです。
システムの起動時にディレクトリをマウントできるように、これらすべての詳細を/ etc/fstabに配置できます。 WindowsまたはSMBサーバーがIPアドレスにある場合192.168.1.1
/etc/fstab
//192.168.1.1/SharedFolder/ /mnt/linux_smb cifs username=winuser,password=TopSecret 0 0
Linuxマウントポイントとしてディレクトリを作成する
mkdir /mnt/linux_smb
chmod 755 /mnt/linux_smb
初めてこれを手動でマウントする
mount -a
最終的なエラーは
dmesg | tail
コマンドラインからCIFSファイルシステムをマウントし、テストファイルを作成/削除するための小さなスクリプトを作成しました(ただし、Fedora向けです)。役に立つかもしれません:
#!/bin/bash
# Passes https://www.shellcheck.net/
set -o nounset
# See
# https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client
# https://access.redhat.com/solutions/448263
# and also
# https://serverfault.com/questions/309429/mount-cifs-credentials-file-has-special-character
# One needs to run "yum install cifs-utils" to have the kernel module, man page
# and other stuff.
rpm --query cifs-utils > /dev/null
if [[ $? != 0 ]]; then
echo "Package cifs-utils is not installed -- exiting" >&2
exit 1
else
ver=$(rpm --query cifs-utils)
echo "Package $ver exists ... good!" >&2
fi
# Where to find credentials? Use the "credential file" approach, which
# we call "authfile". Example content (w/o the leading #) below.
# Make sure there are no spaces around '=' (this is different than
# for "smbclient" which can deal with spaces around '='.)
# ----8<------8<----------------
# username=prisoner
# password=KAR120C
# domain=VILLAGE
# ----8<------8<----------------
# Trailing empty lines will lead to (harmless) error messages
# "Credential formatted incorrectly: (null)"
authfile='/etc/smb.passwd' # Make sure read permissions are restricted!!
# Server to contact.
# In the UNC path, we will use DNS name instead of the (more correct?)
# NetBIOS name.
# mount.cifs manpage says: "To mount using the cifs client, a tcp name
# (rather than netbios name) must be specified for the server."
server_dns=thedome.example.com
# The name of the connecting client, just to be sure (probably useless)
client_nbs=$(hostname --short | tr '[:lower:]' '[:upper]')
if [[ -z $client_nbs ]]; then
client_nbs=UNKNOWN
fi
# Connect to a certain service (which is a fileservice)
# and then switch to the given directory.
# Instead of appending $directory to form the complete UNC
# (Uniform Naming Convention) path, one could also use the option
# "prefixpath".
# If there is no need to mount a subdirectory of the service,
# the UNC would just be unc="//$server_dns/$service_name"
service_name='information'
directory='PERSONALDATA'
unc="//$server_dns/$service_name/$directory"
# Finally, we will mount the CIFS filesystem here (the
# permissions on that node are not directly of interest)
mntpoint=/mnt/portal
if [[ ! -d "$mntpoint" ]]; then
mkdir "$mntpoint"
if [[ $? != 0 ]]; then
echo "Could not create mountpoint '$mntpoint' -- exiting" >&2
exit 1
fi
fi
# Only this user will be able to access the mounted CIFS filesystem
user=number6
group=number6
# Try to mount this so that only user "number6" can access it
mount -t cifs \
"$unc" \
"$mntpoint" \
--read-write \
--verbose \
-o "credentials=$authfile,uid=$user,gid=$group,netbiosname=$client_nbs,file_mode=0660,dir_mode=0770"
res=$?
if [[ $res != 0 ]]; then
echo "Mount failed!" >&2
echo "Return code $res; more info may be in kernel log or daemon log" >&2
echo "Try 'journalctl SYSLOG_FACILITY=0' or 'journalctl SYSLOG_FACILITY=3'" >&2
echo "...exiting" >&2
exit 1
fi
# Check permissions on the mount point
stat=$(stat --format="group=%G user=%U access=%A" "$mntpoint")
soll="group=$group user=$user access=drwxrwx---"
if [[ $stat != "$soll" ]]; then
echo "Incorrect permissions on root of '$mntpoint'" >&2
echo "Expected: $soll" >&2
echo "Obtained: $stat" >&2
echo "...exiting" >&2
umount "$mntpoint"
exit 1
fi
# CD to the mountpoint to be sure
cd "$mntpoint"
if [[ $? != 0 ]]; then
echo "Could not cd to '$mntpoint'" >&2
exit 1
fi
# CD to directory TEST which must exist (change as appropriate)
newcd="$mntpoint/TEST"
if [[ ! -d "$newcd" ]]; then
echo "Directory '$newcd' not found - can't test!" >&2
echo "...exiting" >&2
exit 1
fi
cd "$newcd"
if [[ $? != 0 ]]; then
echo "Could not cd to '$newcd'" >&2
exit 1
fi
# Create a file and check the permissions
testfile=$(mktemp --tmpdir="$newcd")
if [[ $? != 0 ]]; then
echo "Could not create temporary file in '$newcd'" >&2
exit 1
fi
stat=$(stat --format="group=%G user=%U access=%A" "$testfile")
soll="group=$group user=$user access=-rw-rw----"
if [[ $stat != "$soll" ]]; then
echo "Incorrect permissions on temporary file '$testfile'" >&2
echo "Expected: $soll" >&2
echo "Obtained: $stat" >&2
echo "...exiting" >&2
exit 1
fi
/bin/rm "$testfile"
echo "Mounted '$unc' on '$mntpoint'" >&2
さまざまなマウント方法がどのように機能するかは尽きましたが、考慮したいことがあります
資格情報を直接/ etc/fstabに入力したくない場合は、代わりにマウントオプションを使用できます:credentials =/your/path/here/.credentials
これには、username = msusername password = mspasswordを含める必要があります
ファイルを保存して、選択エディターを終了します。
パーミッションはchmod 600に変更する必要があります
暗号化されたホームディレクトリがあり、起動時にマウントを有効にする場合は、必ずホームディレクトリの外にファイルを配置してください。/etc /または/ media /の場所は、適切で覚えやすい場所です。