Автор Тема: SAMBA проблемы с разрешениями на файлы.  (Прочитано 21145 раз)

Оффлайн Andrey

  • Завсегдатай
  • *
  • Сообщений: 734
Хорошо, тогда как вы прокомментируете вложение?

MisHel64

  • Гость
Хорошо, тогда как вы прокомментируете вложение?
Ошибкой в програме, скрин котрой ты привел. И только. Это раз.
В реальной жизни, разрешение прописано для IP.2/32, а доступ имеет IP.4.
« Последнее редактирование: 18.02.2009 13:31:37 от MisHel64 »

Оффлайн Andrey

  • Завсегдатай
  • *
  • Сообщений: 734
Странное совпадение с поведением самбы. Ну да ладно, я настаивать не буду.

Оффлайн German

  • Начинающий
  • *
  • Сообщений: 3
Если я прав, то теперь у всех создаваемых у тебя файлов стал атрибут 0x777.
После установки  "force create mode = 0777", на 4м пункте маска установится в 0x777, для всех создаваемых файлов.
Похоже, так и есть.
Я, вообще, копать начал из-за глюков с вордом. Иногда у отдельных людей, которые часто доки открывают по сети 2003-й виснет, а 2007-й при попытке открытия сразу выдает "доступ закрыт, обратитесь к админу", но при второй попытке тот же файл открывается без проблем. Сейчас на всех файлах 0777, но глюк опять проскочил.
« Последнее редактирование: 18.02.2009 14:36:28 от German »

MisHel64

  • Гость
Я, вообще, копать начал из-за глюков с вордом. Иногда у отдельных людей, которые часто доки открывают по сети 2003-й виснет, а 2007-й при попытке открытия сразу выдает "доступ закрыт, обратитесь к админу", но при второй попытке тот же файл открывается без проблем. Сейчас на всех файлах 0777, но глюк опять проскочил.
Тут проблема с лочкой есть, в доке по самбе отдельно об этом говорится, а вообще сходи к 1Сникам, там веренее ответ найдешь.

Оффлайн German

  • Начинающий
  • *
  • Сообщений: 3
Тут проблема с лочкой есть, в доке по самбе отдельно об этом говорится, а вообще сходи к 1Сникам, там веренее ответ найдешь.
Спасибо за новодку. Поиграюсь с oplock-ами. Отпишусь, если сработает.

Оффлайн Andrey

  • Завсегдатай
  • *
  • Сообщений: 734
Поэксперементировал тут на досуге, /32 маску ставишь, всю сетку пускает.
К стати попробуйте зайти в шару
\\server\bin  ;)

Оффлайн Alexandr

  • Завсегдатай
  • *
  • Сообщений: 366
  • Кризис, что сказать...
    • Email
Цитировать
Если эта и была твоя цель, что бы любой пользователь имел равные права на содержимое шары, то ты этого достиг.

Именно это и было моей целью, сделать полноценный гостевой доступ к шаре.

Цитировать
И маленкое замечание, "read only = no" и "writable = yes" это синонимы

Знаю:) Просто когда начинаешь играть методом научного тыка, иногда просто пропускаешь подобные вещи :D

Цитировать
Есть подозрение что самба не понимает масок?

Пока еще не замечал, что кто-то в самбу маски писал.

Цитировать
Только что решал такую же проблему.  В конфиге было "crete mask = 0777",
а реально на создаваемые файлы получалось 0766. Всегда.
Мне помогла замена "crete mask = 0777" на "force create mode = 0777".

Видимо просто в более-менее новых самбах, параметр crete mask = 0777 заменен на force create mask или как там его. force create mask именно создает файл с указанными параметрами, а create mask вроде как пытается из прав файла вычесть права заданные в маске, как то так - но получается это дело плюс ко всему еще и криво, как я crete mask не изменял, получал на конце либо 44 либо 22 :o Кстати, еще ньюанс.

Цитировать
Windows естественно не знает о атрибутах юних, по этому атрибут 0x000

Я с линуха на линух копировал, результат тот-же.
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Alexandr

  • Завсегдатай
  • *
  • Сообщений: 366
  • Кризис, что сказать...
    • Email
Цитировать
Я, вообще, копать начал из-за глюков с вордом

Там такая фишка. Есть документ и у него есть свой владелец. Когда документ сохраняется, то сохраняется не сам документ, а его временный файл встает на его место - соответственно, если был один хозяин файла, то затем хозяином становиться другой. Из-за этого судя по всему и проблемы.

ИМХО, если Самба стоит на сервере, то лучше к ней NT ACL прикрутить. Так жить будет куда проще.
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн leopold1108

  • Давно тут
  • **
  • Сообщений: 28
  • Давайте жить дружно!
Собственно, сам и нашел решение своей проблемы. Вот пример, как сделать полностью гоставую папку:

[share]
        path = /var/share
        force user = имя_пользователя
        force create mode = 0666
        force directory mode = 0777
        browseable = yes
        read only = no
        public = yes
        writable = yes

Попробую обьяснить почиму так. Когда пользователь подключается к общей папке в качестве гостя и к примеру записывает туда файл, то этот файл получает в качестве владельца - имя создавшего его пользователя, но его настоящее имя, а не имя гостевой учетки. Параметр force create mode = 0666 прописывает этому файлу разрешения "чтение и запись" владельцу, группе, всем остальным. Когда второй пользователь, с другим именем, подключается к этой папке как гость, то он может читать этот файл, может в него записывать, копировать его себе - но удалить он его не может, т.к. не является его владельцем. Так же человек, который локально сидит за этим ПК, так же как второй пользователь - может читать, писать, но... не не удалять. Для того, чтобы любой пользователь из локальной сети создавал в нашей папке файл, а любой другой пользователь его оттуда мог удалить - мы добавляем параметр force user = имя_пользователя. С этим параметром - любой кто авторизовался как гость и пишет или читает файл, любой виртуально становиться тем пользователем, которого мы указали в качестве force user =. Тоесть уже получаем гостевой доступ. Но! Наш локальный пользователь все еще не может удалить этот файл из папки, т.к. на него параметр force user = имя_пользователя не действует, он за пределами САМБА (правда он еще может поднять свои права до root, но мы не будем об этом думать). Зато он может делать с файлами этой папки что хочет, если зайдет в папку не локально а по сети, можно даже с локальной машины. Значит мы смело можем написать вот так: force user = nobody и это будет правильно отчасти. Но если мы работаем за нашем компьютером одни, мы можем сделать еще хитрее, а именно вот так: force user = имя_нашей_локальной_учетки. Тогда будут счастливы все:)
Почему-то срабатывает не совсем так, как описано (любой пользователь удаляет любой файл). Может, надо еще права на папки подкорректировать?
« Последнее редактирование: 19.02.2009 18:29:27 от leopold1108 »

Оффлайн Alexandr

  • Завсегдатай
  • *
  • Сообщений: 366
  • Кризис, что сказать...
    • Email
Цитировать
Почему-то срабатывает не совсем так, как описано (любой пользователь удаляет любой файл). Может, надо еще права на папки подкорректировать?

А можно поподробнее о том, что происходит и какие конкретно указаны параметры:)

А по поводу прав на папки - папка для общего доступа должна иметь разрешения "все можно для всех".
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн leopold1108

  • Давно тут
  • **
  • Сообщений: 28
  • Давайте жить дружно!
Цитировать
Почему-то срабатывает не совсем так, как описано (любой пользователь удаляет любой файл). Может, надо еще права на папки подкорректировать?

А можно поподробнее о том, что происходит и какие конкретно указаны параметры:)

А по поводу прав на папки - папка для общего доступа должна иметь разрешения "все можно для всех".
Имеется: файловый сервер ALT Linux 4.0 Office Server на бранче 4.1.
Вопрос в чем: вроде-бы все имеют полный доступ на ресурс со всеми вытекающими последствиями, но подозреваю, что не совсем - в один момент при обновлении программы, написанной на Visual FoxPro (программное лежит на сервере, а запускная часть на клиентских windows-станциях), она начала выдавать неправильные результаты, чего не наблюдается, если бы она работала на локальном диске. Может, все-таки что-то с правами на ресурс? Должны быть полные по максимуму. Вот мои:
  path = /fileserver
  valid users = @admin, @users
  public = Yes
  read only = No
  browseable = Yes
  writable = Yes
  printable - No
  force group = admin
  force create mode = 0666
  force directory mode = 0777

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Вот я не понимаю - зачем такая глупая политика "все можно для всех" вместо того, чтобы выделить только тех, кому всё можно и включить их в одну группу, дав ей соответствующие права.
ЗЫ Извините, это всё равно что с открытой ширинкой по улице ходить.

Оффлайн Alexandr

  • Завсегдатай
  • *
  • Сообщений: 366
  • Кризис, что сказать...
    • Email
Цитировать
она начала выдавать неправильные результаты,

Есть один момент, force group = admin

Дело в том, что если пользователь не является собственником файла, он не сможет его удалить. А у вас, собственник файла имнно пользователь, который его создает. Но зато они все якобы в группе admin. Получается, что каждый может читать и изменять файлы, т.к. входит в группу admin, но если один человек создал файл, то другой его удалить не сможет. Попробуйте заменить параметр на force user и соответственно придумайте под это дело пользователя, от которого будут действовать пользователи и тогда любой сможет удалить файлы. Можете попробовать использовать того-же nobody.

Цитировать
Вот я не понимаю - зачем такая глупая политика "все можно для всех" вместо того, чтобы выделить только тех, кому всё можно и включить их в одну группу, дав ей соответствующие права.

Смотря где. Если это маленькая сеть, либо просто папка куда народ кидает кто-че хочет - оченб удобно. Никто же не запрещает помимо этой папки создавать другие, с доступом по юзерам. А еще, если скажем открывать word-документы, то разграниченный доступ тоже может привести к проблемам, т.к. тот кто сохранил файл - тот становиться его создателем. Причем не его конкретно, а создателем нового файла, с изменениями. И этот новый файл по сценарию, должен заменить собой старый, методом удаления старого и переименования нового в старое имя. Но новый файл не сможет встать на замену старого, если владелец старого файла отличается от владельца нового. Т.к. удалить старый файл может либо хозяин, либо root.
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/

Оффлайн Alexandr

  • Завсегдатай
  • *
  • Сообщений: 366
  • Кризис, что сказать...
    • Email
Цитировать
Дело в том, что если пользователь не является собственником файла, он не сможет его удалить. А у вас, собственник файла имнно пользователь, который его создает. Но зато они все якобы в группе admin.

Нашел, почиму было именно так. Дело оказалось в закрепляющем бите. Когда он установлен на каталоге, в котором лежат файлы - то никто кроме владельца файлов или root-а не может удалит файлы из этого каталога. Вот жешь как бывает :D Чтобы снять этот бит, нужно выполнить: chmod 0777 /путь/имя_папки

Если бы в учебник не полез, так бы и думал, что это глюк :D

Так что можно использовать параметр force group = вместо force user =, при условии что закрепляющий бит снят с папки(папок). Правда, если нужен гостевой доступ, лучше все же использовать параметр force user =, чтобы небыло неожиданных замарочек.
Логика и здравый смысл победит! фанатские инсинуации, словоблудие и прочий необоснованный детский лепет. Это не про вас? Тогда вам сюда: http://lleo.aha.ru/na/