Автор Тема: Папка SSH (протокол fish) настроить маски доступа  (Прочитано 1626 раз)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Как можно сделать так, чтобы клиент создавая в папке ssh (соединение по протоколу fish) устанавливал маски доступа и владельца определенным образом? Мне нужно, чтобы на новых файлах, созданных клиентом на сервере, устанавливалась определенная группа пользователей ОС и маски доступа на файлы и папки. Как я это сделал в Samba.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Работа через ssh с точки зрения правв ничем не отличается от работы на локальной машине локальным пользователем.

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Работа через ssh с точки зрения правв ничем не отличается от работы на локальной машине локальным пользователем.
Т.е., либо я настраиваю у пользователя другую начальную группу и тогда все файлы будут создаваться под ним (не только в разделяемой папке), либо мирюсь с тем, что пользователи создаются с владельцем user:user и стандартной маской доступа?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
либо мирюсь с тем, что пользователи создаются с владельцем user:use
Вот я даю команду id:
$id
uid=500(altlinux) gid=500(altlinux) группы=500(altlinux),10(wheel),14(uucp),19(proc),80(cdwriter),81(audio),83(radio),100(users),476(fuse),492(netadmin),498(xgrp),499(scanner)
Т.к. у пользователя gid=500(altlinux) , то всё созданные им файлы будут по-умолчанию (без дополнительных операций) будут иметь gid=500

Если при создании пользователя altlinux, я задам, что его gid=100 (users), или поменяю её на gid=100, то все созданные им файлы будут иметь gid=100.

Самый простой способ поменять gid пользователя (но не самый правильный ),  это открыть от root в mcedit файл /etc/passwd и изменить строчку
altlinux:x:500:500::/home/altlinux:/bin/bashна
altlinux:x:500:100::/home/altlinux:/bin/bash


Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Если при создании пользователя altlinux, я задам, что его gid=100 (users), или поменяю её на gid=100, то все созданные им файлы будут иметь gid=100.
Это понятно. Но толку от этого ноль.

В ситуации, когда пользователь user_local работает локально и имеет свою папку /home/user_local. Пользователь хотел бы в своей папке видеть файлы от владельца user_local:user_local, чтобы не было возможности даже теоретически почитать его приватные файлы. А вот в общей папке вне его домашней (например, /opt/share) уже другая история. Вот в этой папке удобнее создавать от другой группы для того, чтобы "сетевой" пользователь мог эти файлы читать и менять.

Для "сетевого" пользователя (он работает на другом ПК, но может и локально на "сервере") ситуация иная. Он лезет на "сервер" по fish и создает в разделяемой папке файл. Его было бы разумно создать с владельцем user_net:group, а не user_net:user_net. Если допустить, что "сетевой" пользователь никогда не будет работать локально, то можно ему сменить основную группу, как Вы описали.

Но что делать с "локальным" пользователем (тот, для которого "сервер" - основной ПК)?

У Samba, как ни странно, решение нашлось. У fish - нет.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Ну и оставьте в домашний в домашнем каталог с правами  user_local:user_local, c правами 700 и внутренность будет видна только ему, независимо от того, какие права внутри этого каталога.
« Последнее редактирование: 03.02.2016 14:26:25 от ruslandh »

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Ну и оставьте в домашний в домашнем каталог с правами  user_local:user_local, c правами 700 и внутренность будет видна только ему, независимо от того, какие права внутри этого каталога.
Если группа по-умолчанию у пользователя user_local, то в общей папке файлы тоже будут на этой группе.
Если группа по-умолчанию, например, group, то уже в папке /home/user_local файлы по группе будут принадлежать группе group.

Т.е. нельзя на лету (при работе по fish) менять группу пользователя на group? Вы предлагаете сменить группу пользователя по-умолчанию, а на /home/user_local поставить 0700?

Оффлайн Александр Ерещенко

  • Участник
  • *
  • Сообщений: 1 246
А если сделать тупой костыль, который по крону будет править права/владельца на конкретные папки? Выбрать интервал не сильно напрягающий пользователя и не сильно напрягающий систему...

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
А если сделать тупой костыль, который по крону будет править права/владельца на конкретные папки? Выбрать интервал не сильно напрягающий пользователя и не сильно напрягающий систему...
Это на поверхности. Я думал об этом. Но не стоит, т.к. есть Samba, как это ни странно для Linux. Я думал, что можно для моих целей прикрутить что-то породнее ...

В общем у меня все ясно - идти в сторону fuse для samba. В Dolphin он уже настроен у меня. И да, к cron мне еще предстоит вернуться из-за локальных пользователей "сервера", создающих файлы и папки на разделяемом ресурсе.

Может в итоге тоже самое и выйдет, но fish - это весьма странный perl скрипт .fishsrv.pl. Размерчик у него приличный, без пузыря не разберешь (если не фанат Perl). Может там и есть возможность ставить нужные права и владельца ...

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
(соединение по протоколу fish) устанавливал маски доступа и владельца определенным образом?
fish очень древний. Не используйте при наличии более современных альтернатив. Пользуйтесь SFTP, SMB или NFS.

устанавливал маски доступа и владельца определенным образом
См. UMASK и ACL.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
в сторону fuse
FUSE без необходимости тоже не стоит использовать, т.к. это дополнительная прослойка.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
Работа через ssh с точки зрения правв ничем не отличается от работы на локальной машине локальным пользователем.
Работа через fish:/ -- ssh через 2 прослойки. Одна на клиенте, 2-я на сервере.
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.