Я использую Ubuntu 11.10 и пытаюсь установить сервер freenas. У меня есть сервер, на котором можно делиться cifs и nfs без везения.
Я попытался smbmount //192.168.1.### /mnt/
Я не новичок в Ubuntu, но я нигде не располагаю сильным пользователем, поэтому я бы предпочел вариант GUI, если он доступен.
Как подключить share cifs в 11.10?
/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, вы можете использовать опцию mount вместо этого: credentials = / your / path / here / .credentials
должно содержать имя пользователя = msusername password = mspassword
Сохраните файл и выйдите из редактора выбора.
должны быть изменены на chmod 600
, если у вас есть зашифрованный домашний каталог и хотите, чтобы ваш монтир был включен при загрузке, обязательно разместите файл вне вашего домашнего каталога. в / etc / or / media / может быть подходящим и легко запоминающимся местом.
Я собрал небольшой скрипт (он предназначен только для Fedora) для монтирования файловой системы CIFS из командной строки и создания / удаления тестового файла. Может быть полезно:
#!/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
1) Моя доля samba показана в Caja (ubuntu 16.04 "explorer") как
smb://thinkpad/ddrive/
Это хороший тест литоса, нет проблем с соединением / маршрутом.
(caveat: Если вы спрашиваете caja о учетных данных паролей с вашего компьютера Windows, вам может потребоваться переключить Domain из WORKGROUP на имя машины, то есть «thinkpad». Тогда действительно должны быть указаны локальные учетные данные вашего диска .)
2) Если это работает, вот команда:
sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
Убедитесь, что заранее / mnt / ddrive существует как пустой каталог. Вы холод также добавляете ,password=supersecret прямо (без пробела) после имени пользователя =, но вы также можете дождаться запроса, когда вы вводите команду. Это как указано в map7, но если вы не хотите использовать права root при каждом изменении файла на диске, вам нужно будет подключиться к пользовательской папке и убедиться, что 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
Существует pyNeighborhood, который является gui для установки акций samba и доступен в программном центре для загрузки.
Существует хорошая статья pyNeighborhood о том, как ее настроить и используйте [.d2]
Сначала установите 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 о том, как это сделать, и правильно настройте его для запуска при запуске и т. д.
Я не согласен с утверждением, что root всегда необходим для соединения cifs. Это правда, это всегда необходимо для CLI smbmount, но файловый менеджер, такой как nautilus, имеет возможность монтировать общий ресурс cifs, и нет необходимости быть root.
Я не использую Gnome, но У меня все еще установлен Nautilus. Запустите это в терминале, чтобы он не попытался захватить рабочий стол
$ nautilus --no-desktop &
. В Ubuntu 16.04 в левом дереве меню «Подключиться к серверу» внизу. Нажмите на это, предложение типа «smb: //foo.example.com». smb - это старое слово для «cifs», и если вы положите на свой сервер и поделитесь с smb: // в начале, соединение действительно сработает! Обещаю. Если ваш ресурс является именованным, он необходим после косой черты, «smb: //foo.example.com/myshare».
Я использовал другие файловые менеджеры одинаково. Протокол должен быть «smb: //».
/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, вы можете использовать опцию mount вместо этого: credentials = / your / path / here / .credentials
должно содержать имя пользователя = msusername password = mspassword
Сохраните файл и выйдите из редактора выбора.
должны быть изменены на chmod 600
, если у вас есть зашифрованный домашний каталог и хотите, чтобы ваш монтир был включен при загрузке, обязательно разместите файл вне вашего домашнего каталога. в / etc / or / media / может быть подходящим и легко запоминающимся местом.
Я собрал небольшой скрипт (он предназначен только для Fedora) для монтирования файловой системы CIFS из командной строки и создания / удаления тестового файла. Может быть полезно:
#!/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
1) Моя доля samba показана в Caja (ubuntu 16.04 "explorer") как
smb://thinkpad/ddrive/
Это хороший тест литоса, нет проблем с соединением / маршрутом.
(caveat: Если вы спрашиваете caja о учетных данных паролей с вашего компьютера Windows, вам может потребоваться переключить Domain из WORKGROUP на имя машины, то есть «thinkpad». Тогда действительно должны быть указаны локальные учетные данные вашего диска .)
2) Если это работает, вот команда:
sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
Убедитесь, что заранее / mnt / ddrive существует как пустой каталог. Вы холод также добавляете ,password=supersecret прямо (без пробела) после имени пользователя =, но вы также можете дождаться запроса, когда вы вводите команду. Это как указано в map7, но если вы не хотите использовать права root при каждом изменении файла на диске, вам нужно будет подключиться к пользовательской папке и убедиться, что 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
Существует pyNeighborhood, который является gui для установки акций samba и доступен в программном центре для загрузки.
Существует хорошая статья pyNeighborhood о том, как ее настроить и используйте [.d2]
Сначала установите 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 о том, как это сделать, и правильно настройте его для запуска при запуске и т. д.
Я не согласен с утверждением, что root всегда необходим для соединения cifs. Это правда, это всегда необходимо для CLI smbmount, но файловый менеджер, такой как nautilus, имеет возможность монтировать общий ресурс cifs, и нет необходимости быть root.
Я не использую Gnome, но У меня все еще установлен Nautilus. Запустите это в терминале, чтобы он не попытался захватить рабочий стол
$ nautilus --no-desktop &
. В Ubuntu 16.04 в левом дереве меню «Подключиться к серверу» внизу. Нажмите на это, предложение типа «smb: //foo.example.com». smb - это старое слово для «cifs», и если вы положите на свой сервер и поделитесь с smb: // в начале, соединение действительно сработает! Обещаю. Если ваш ресурс является именованным, он необходим после косой черты, «smb: //foo.example.com/myshare».
Я использовал другие файловые менеджеры одинаково. Протокол должен быть «smb: //».