nixp.ru v3.0

23 октября 2017,
понедельник,
02:01:24 MSK

DevOps с компанией «Флант»
denel написал 1 июля 2009 года в 15:44 (2378 просмотров) Ведет себя как мужчина; открыл 23 темы в форуме, оставил 63 комментария на сайте.

Вобщем столкнулся с очень интересным и не понятным мне траблом… Один пользователь user из группы group создает папку test,

$ getfacl test/

# file: test/

# owner: user

# group: group

user::rwx

group::rwx

mask::rwx

other::r-x

default:user::rwx

default:group::rwx

default:mask::rwx

default:other::r-x

в этой директории user2 с windows создает текстовый файл, редактирует, сохраняет. Удалить не удается, система ругается на отсутствие прав.

Права на директорию, в которой создается файл — 775, создается файл с правами 775, как только делаю на директорию права 777, файл удаляется нормально, пользователь точно содержится в группе этой директории, почему у него удается только создать и отредактировать, но не удалить?

net-fs/samba-3.2.13-r2

2.6.30-gentoo-r1

rgo

А как ты делаешь на директорию права 777? Не так случаем:

chmod -R o+w test/


?

=)

Из этого путаного объяснения я понял, что самба создала в папке test файлик, и пользователю не можно его удалять. Так? Если да, то это естественная ситуация. Посмотри права на файлик. Там права типа: -rw-rw-r-- pcguest:pcguest. То есть его удалять могут лишь состоящие в группе pcguest или пользователь pcguest.

Вообще, конечно, права на создаваемый самбой файлик зависят от настроек самбы. Но при дефолтных настройках оно примерно так и будет, как я говорю.

denel

На директорию права 775, на файлик 777, директорию создавал иной пользователь, но их объединяет общая группа, файлик создавал МОЙ пользователь, с правами 777 и он же и не может его удалить до тех пор, пока я на директорию не сделаю права 777, но создать то он может!!! почему не может удалить???

setfacl -d -m u::rwx,g::rwx,o::rwx,m::rwx test

setfacl -m u::rwx,g::rwx,o::r-x,m::rwx test

^^^ а вот так я задавал права на директорию, в которой, в последствии, и создавал файлик!

denel

Вобщем кое что уже понял, если удаляю у каталога acl расширения (setfacl -b dir), тогда всё работает адекватно и с винды, если снова назначаю acl (в ext4 файловой системе), снова такие не адекватные проблемы… А acl у ext4 мне нужно, ибо часть пользователей ходит через nfs часть через samba, пробовал собрать samba без флага acl, но результата не дало…

Примечательным оказалось то, что директории пользователь с Windows удалять все-таки может, а вот файлы может удалять только с собственноручно созданных директорий (где он является владельцем, а не всего лишь входит в группу)

Ну что? нет никаких соображений? белеберда какая то…

Heavy

Может стоит сменить ext4 ? :D Просто симптомы уж очень похожи на баг

metal

Похоже дело еще хуже — это не баг, а фича.

http://ext4.wiki.kernel.org/index.php/Talk:New_ext4_features#posix_and_windows_acl_support

denel

Э… Испытал с ФС ext2, результат тот же… Даже оказалось интересней, вообще не удаляет, даже если удаляю acl расширения, но все-таки удаляет, если дам права на директорию 777, или пользователя сделаю соответственно владельцем этой директории.

Вопрос. А нафига в правах есть group, если оно работает только при создании, но не при удалении? Чую я, Windows как то иначе использует права при создании и при удалении, ведь с  Linux samba клиентов всё работает замечательно…

Попытался в винде создать группу Users не помогло, попытался создать в линуксе группу Пользователи, тоже не помогло, больше всего странно то, что вот директории он удалять может, а файлы может удалять только из тех директорий, где является владельцем!! %)

denel

отчасти решил, отказавшись от групп, задаю права на директорию:

setfacl -d -m u::rwx,u:username:rwx,u:usernameX:rwx,g::rwx,o::rwx test

setfacl -m u::rwx,u:username:rwx,u:usernameX:rwx,g::rwx,o::r-x test

used

[global]

workgroup = sort

server string = Slin

security = SHARE

guest account = dm

[public]

browseable =yes

path = /home/ftp

guest ok = Yes

guest only = Yes

writeable = Yes

На сайте smb-conf.ru давали как пример по которому любой может получить доступ к расшареному каталогу

У меня не дает, хотя в списке на ХР машине САМБА сервер виден. но войти нельзя.

Сеть заводская на базе NT4(где все как полагается)

Очень нужно!

fly4life
used
[global]

   workgroup = sort

   server string = Slin

   security = SHARE

   guest account = dm

[public]

    browseable =yes

    path = /home/ftp

    guest ok = Yes

    guest only = Yes

    writeable = Yes

На сайте smb-conf.ru давали как пример по которому любой может получить доступ к расшареному каталогу

У меня не дает, хотя в списке  на ХР машине САМБА сервер виден. но войти нельзя.

Сеть заводская на базе NT4(где все как полагается)

Очень нужно!

В какос смысле «войти нельзя"? Нельза шару открыть или вообще список шар просмотреть? Что в логах самбы?

Еще меня смущает твой «guest account». Почему не умолчальный 'nobody’? Если гостевой аккаунт хочется свой поиметь, то его недостаточно просто указать в smb.conf. Его надо еще в системе завести (в /etc/passwd то есть).

denel

У меня еще вопрос :)

Мне нужно чтобы сервер Samba был контроллером группы, например mygroup и вел себя так, как ведет себя при уровне безопасности SHARE, причем на сервере нужно расшарить некоторые директории и нужно чтобы все эти директории можно было посмотреть (даже список их) только после авторизации по логину/паролю. глобальный конфиг:

[global]
add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
interfaces = 192.168.0.1
bind interfaces only = yes
workgroup = mygroup
netbios name = serverhost
msdfs = no
max protocol = NT1
acl compatibility = winnt
server signing = Auto
case sensitive = no
strict locking = no
delete readonly = yes
msdfs proxy = no
read only = no
dos charset = CP866
profile acls = no
inherit acls = yes
guest ok = no
follow symlinks = no
wide links = no
max xmit = 64000
socket options = SO_KEEPALIVE TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=64000 SO_RCVBUF=64000
server string =
logon home = \\%25N\%25U
logon path = \\%25N\%25U\profile
create mask = 0777
directory mask = 0777
null passwords = yes
wins support = no
dns proxy = no
invalid users = nobody

вот на счет директорий тут получается только после того как добавляю

invalid users = nobody

а вот контроллер группы из него получается плохой при добавлении этой строки в конфиг… Т.е. никто не может просмотреть группу. Что необходимо исправить?