Решено: samba: создание файлов и каталогов с заданной маской

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
storm2005
Сообщения: 136

Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

сервер - debian lenny+samba 3.2.5-4lenny8
клиент - debian squeeze

Кусок smb.conf

Код: Выделить всё

[temp]
path = /srv/samba-temp
writable = yes
create mask = 0666
directory mask = 0777
force group = users
valid users = @users


Необходимо файлы и каталоги создавать соответственно с масками по умолчанию 666 и 777.
Но в моем случае

Код: Выделить всё

# pwd
/srv/samba-temp
# ls -l |grep test
drwxr-sr-x  2 storm nt_it       48 Фев 19 12:08 testdir
-rw-r--r--  1 storm nt_it        0 Фев 19 12:08 testfile


Код: Выделить всё

# pwd
/srv
# ls -l |grep temp
drwxrwsrwx 23 root nt_it 2192 Фев 19 12:09 samba-temp


На клиенте

Код: Выделить всё

# mount |grep temp
//fileserver/temp on /home/storm/smb/temp type cifs (rw,mand,nosuid,nodev,user=storm)


Если создавать файлы и каталоги с винды

Код: Выделить всё

# ls -l |grep win
drwxrwsrwx  2 storm nt_it       48 Фев 19 15:43 testdir_win
-rw-rw-rw-  1 storm nt_it        0 Фев 19 15:43 tetsfile_win


Как решить проблему с созданием каталогов и файлов на самбе при использованиии в качестве клиента linux?
Спасибо сказали:
pelmen
Сообщения: 1268
ОС: debian

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение pelmen »

Т.е. если в качестве клиента linux - то создается с верхними, а если win - то с нижними (правильными) ? А по-моему верхний пример - это прямо на самой linux-системе, выступающей в роли сервера, вы данные создаете. Конечно там будет все не так как в самбе указано.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

pelmen писал(а):
22.02.2010 14:08
Т.е. если в качестве клиента linux - то создается с верхними, а если win - то с нижними (правильными) ? А по-моему верхний пример - это прямо на самой linux-системе, выступающей в роли сервера, вы данные создаете. Конечно там будет все не так как в самбе указано.

Создаю на клиенте, результат смотрю на сервере.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

storm2005 писал(а):
22.02.2010 13:33
Как решить проблему с созданием каталогов и файлов на самбе при использованиии в качестве клиента linux?

я не уверен, но предполагаю, что, при создании файлов линукс-клиентом ему ставятся права, соответственно тому, какой у вас mask на клиенте.
мне кажется, что, более глобальным решением было бы включить наследуемые права с помощью acl.
короче включить поддержку acl, смонтировать то место, где у вас самба с acl и поставить там дефолтные права на каталог.
примерно так:

Код: Выделить всё

 setfacl -m d:u:storm:rw- каталог

(или какие вы хотите.)
п.с. при правильно настроенной самбе можно будет acl-ные права менять прямо из винды по "правая кнопка -> св-ва -> безопастность".
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

Нет особого желания связываться с acl. Меня то по большей части устраивают стандартные пермишены. Но мне не понятно почему из винды все работает как положено, а из линукса нет.
Кстати в линуксе при монтировании можно указывать опции file_mode и dir_mode. Но хоть указывай, хоть не указывай положительного результата нет.

Код: Выделить всё

/sbin/mount.cifs //fileserver/temp /home/storm/smb/temp -o user=$USER,password=$PASS,iocharset=utf8,file_mode=0666,dir_mode=0777,rw


Ленивая Бестолочь писал(а):
22.02.2010 16:45
п.с. при правильно настроенной самбе можно будет acl-ные права менять прямо из винды по "правая кнопка -> св-ва -> безопастность".

Это мало кому интересно. Т. к. на подавляющем большинстве клиентов стоит linux и вряд ли пользователи будут что то менять, а мне без разницы оперировать пермишенами линукса или винды.

p.s. вида стоит на терминальном сервере для 1с и нескольких клиентах.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

storm2005 писал(а):
22.02.2010 17:53
Но мне не понятно почему из винды все работает как положено, а из линукса нет.

я вот боюсь утверждать наверняка, но я не уверен. что так положено :-)
мысли такие:
1. ваш пользователь имеет права сменить права на файл.
2. у вас на линуксовой машине есть некоторый mask, не связаный с тем, который на самбе.
3. вы создаете файл и ваш линуксовый клиент меняет права (п.1) в соответствии с (п.2).
я не готов под этим расписываться жирной подписью, но, проверьте, поменяйте mask на линуксовом клиенте - посмотрите что будет.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

Ленивая Бестолочь писал(а):
22.02.2010 19:45
но, проверьте, поменяйте mask на линуксовом клиенте - посмотрите что будет.

А как это сделать?
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

umask 0000
на клиенте попробуйте перед созданием файла.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

Решил сделать через консоль на клиенте

Код: Выделить всё

storm@admin:~$ cd /home/storm/smb/temp/
storm@admin:~/smb/temp$ mkdir dit_console
storm@admin:~/smb/temp$ touch file_console
storm@admin:~/smb/temp$ ls -l |grep conso
drwxr-sr-x  2 storm storm        0 Фев 24 09:53 dit_console
-rw-r--r--  1 storm storm        0 Фев 24 09:53 file_console


делаем umask

Код: Выделить всё

storm@admin:~/smb/temp$ umask 0000
storm@admin:~/smb/temp$ touch file_console_umask
storm@admin:~/smb/temp$ mkdir dit_console_umask
storm@admin:~/smb/temp$ ls -l |grep umask
drwxrwsrwx  2 storm storm        0 Фев 24 09:54 dit_console_umask
-rw-rw-rw-  1 storm storm        0 Фев 24 09:54 file_console_umask


Все чудно получилось и казалось бы можно отмечать успех. Однако не тут то было.
Решил проверить через файловый менеджер. У меня на данный момент это Nautilus 2.28.4

Создаем каталог и файл и в консоли смотрим пермишены

Код: Выделить всё

storm@admin:~/smb/temp$ ls -l |grep new
drwxr-sr-x  2 storm storm        0 Фев 24 09:55 dir_umsk_new
-rw-r--r--  1 storm storm        0 Фев 24 09:55 file_umask_new


Решил тоже проделать в gnome commander. Создал только каталог, файл не нашел как :)

Код: Выделить всё

storm@admin:~/smb/temp$ ls -l |grep dir_comm
drwxr-sr-x  2 storm storm        0 Фев 24 10:02 dir_commander


Итог: при задании umask работает через консоль и не работает через графику. Какие будут мысли на этот счет?
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

storm2005 писал(а):
24.02.2010 14:47
при задании umask работает через консоль и не работает через графику.

не совсем так.
при задании umask это работает в той консоли, в которой вы его задавали. в других консолях, либо в приложениях, запущенных из других консолей или из графики это работать не будет, там umask не менялся.
если вас устроит, что umask поменяется для всей системы - можете отредактировать её, например в /etc/profile.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

А можно не для всей системы, а лишь для того юзера который залогинен на данный момент?
Например, я нашел в домашнем каталоге юзера файл .profile. Он по содержимому напоминает /etc/profile. В файле .profile есть следующие строки

Код: Выделить всё

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

Не совсем понятно то ли это что мне нужно?

С другой стороны мне необходимы такие маски лишь на примонтированных шарах самбы. Монтирование происходит скриптом при логине юзера. Может быть команду umask прописать в этом скрипте? Однако, судя по вашему комментарию выше вряд ли такой вариант окажется рабочим.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

storm2005 писал(а):
24.02.2010 23:53
Не совсем понятно то ли это что мне нужно?

да, вроде как это то, что вам нужно.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
storm2005
Сообщения: 136

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение storm2005 »

Изначально конкретно в моем профиле не было файла .profile. Пришлось скопировать с другой рабочей станции. Выставил в этом файле umask 000. Теперь файлы создаются с такими масками какие мне необходимы. Спасибо за помощь.
Содержимое .profile

Код: Выделить всё

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
umask 000

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
    PATH="$HOME/bin:$PATH"
fi

Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Решено: samba: создание файлов и каталогов с заданной маской

Сообщение Ленивая Бестолочь »

storm2005 писал(а):
25.02.2010 11:00
Изначально конкретно в моем профиле не было файла .profile. Пришлось скопировать с другой рабочей станции.

если этого файла нет, его можно просто создать. только вроде бы нужно поставить права 'x', чтобы он был запускаемым.
storm2005 писал(а):
25.02.2010 11:00
Спасибо за помощь.

пожалуйста :) рад, что у вас заработало.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Ответить