LINUX.ORG.RU
решено ФорумAdmin

file permission при создании файла

 ,


0

2

Доброго дня всем.

Есть deluged(торрент клиент, серверная часть), при скачивании назначает файлам следующие разрешения:

-rw-rw---- 1 root share_full 2162688 Jul  1 10:27 Torrent(Down)/XXX.exe

Что сделать дабы, при создании файла deluged назначал им разрешения rwxrwx---?
У upstart скрипта есть umask, поигрался с ним, толку нет, точнее есть, но от этого не легче.)

env uid=root
env gid=share_full
env umask=007

exec start-stop-daemon -S -c $uid:$gid -k $umask -x /usr/bin/deluged -- -d

Настраивал ACL

setfacl -d -m g:share_full:rwx Torrent\(Down\)/
# file: Torrent(Down)/
# owner: root
# group: share_full
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:group:share_full:rwx
default:mask::rwx
default:other::---
# file: Torrent(Down)/XXX.exe
# owner: root
# group: share_full
user::rw-
group::rwx                      #effective:rw-
group:share_full:rwx            #effective:rw-
mask::rw-
other::---
Почему rw?[pic]джеки чан негодует[/pic]

Откуда приложение берет разрешения с которыми оно создаёт файлы? В настройках deluge таких параметров нет.



Последнее исправление: dzirtt (всего исправлений: 2)

RTFM. Для файлов значение по-умолчанию 666, для директорий 777, umask может убрать лишнее, но не добавить.

anonymous
()
Ответ на: комментарий от anonymous

Про umask и так знаю. Написал про него дабы показать что там уже смотрел, дефол 022. Лучше подскажите как же изменить разрешения для создаваемых фалов?) Я уже иссяк.

dzirtt
() автор топика
Ответ на: комментарий от dzirtt

Не тебе решать что костыль, а что нет. Ты не можешь, просто потому что не можешь. Просто делай то, что я тебе говорю и не порть воздух глупостями.

anonymous
()
Ответ на: комментарий от anonymous

Не тебе решать что костыль, а что нет.

Может, тебе?)

Ты не можешь, просто потому что не можешь.

Могу, потому что, могу.

п.с. судя по манере ответа у вас что-то взорвалось.
Или об этом я тоже не могу судить?) Потому что? Не могу?) Весели меня дальше)

dzirtt
() автор топика
Ответ на: комментарий от dzirtt

Не забудь рассказать о своем некостыльном решении

anonymous
()
Ответ на: комментарий от dzirtt

umask 0007

Куда это прописать в Deluge - хз, как видишь переменной окружения ему мало. И да, один хрен umask на executable-бит НЕ распространяется. Потому что есть еще fmask и dmask

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от tyan

Такого нет на ubuntu. Можешь содержимое показать?

dzirtt
() автор топика

А, и еще - ты файл скачал после назначения ACL или до? Если до, то поздравляю - ты забыл опцию -R у setfacl

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Судя по тому что без umask права rw-rw-rw-. Umask тут не поможет. Нужно именно дефолтные права в делюге копать.

dzirtt
() автор топика
Ответ на: комментарий от Pinkbyte

После, конечно)
Я же хочу чтобы права наследовались.)
r и w наследуются а x нет. Не знаю почему.

dzirtt
() автор топика
Ответ на: комментарий от dzirtt

Потому что fmask. Дефолтные права для файла - 0666, для директории 0777. Потому из них вычитается umask.

То есть если umask будет равен 0, файл создастся как -rw-rw-rw-. А директория как drwxrwxrwx.

С umask 022 будет соответственно -rw-r--r-- и drwxr-xr-x

Сделано это в том числе и из-за безопасности - чтобы каждый подряд создаваемый файл не был запускаемым

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)

отчаялся и полез смотреть исходники делюги с плавным переходом на либсодиум(

#libsodium/file.cpp
	int permissions = S_IRUSR | S_IWUSR
		| S_IRGRP | S_IWGRP
		| S_IROTH | S_IWOTH;

Через конфиг похоже не сделать только править и компилить(

dzirtt
() автор топика
Ответ на: комментарий от Pinkbyte

Как вообще файлопомойки и торренто-качалки организуют? Не руками же каждый файл +х делать?
Нужно что бы экзешники через самбу запускались. Может самба игнорировать -х?

dzirtt
() автор топика
Ответ на: комментарий от dzirtt

Зачем на торрент-файлопомойке у файлов executable-бит? Ты много шелл-скриптов качаешь? exe-файлы под оффтопиком открываются и без него. Да, именно через Samba. У меня так дома организована файлопомойка - никаких проблем не испытываю

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

samba wiki


acl allow execute always = True

in your smb.conf (per share or globally). But rate this as a workaround! You should fix the permissions and add the x-bit for user/group/other, when the file should be executed. 
такие дела, советуют +х

dzirtt
() автор топика
Ответ на: комментарий от dzirtt

Кури что не так с твоей Samba, ибо УМВР. Версия твоего пакета Samba и дистрибутив озвучишь?

конфиг моей Samba(3.6.25):

mini-router pinkbyte # testparm 
Load smb config files from /etc/samba/smb.conf
Processing section "[files]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        server string = 
        map to guest = Bad User
        socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384
        load printers = No
        disable spoolss = Yes
        idmap config * : backend = tdb

[files]
        path = /mnt/nfs/files
        read only = No
        guest ok = Yes

Еще раз подчеркиваю - из под Unix-систем файлы не запускаются - на них нет executable-бита. Но Windows ничего не знает о такой штуке как executable-бит на файлах(как и о UNIX-правах вообще), если конечно у тебя не стоят SFU или подобные ему вещи

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte
Samba Version 4.1.6-Ubuntu

3.13.0-55-generic Ubuntu
Ubuntu 14.04 LTS

Я уже разобрался.
Похоже начиная с 4ой версии самба не позволяет запускать экзешники без +х. добавление acl allow execute always = True решает проблему.

samba wiki


acl allow execute always = True

in your smb.conf (per share or globally). But rate this as a workaround! You should fix the permissions and add the x-bit for user/group/other, when the file should be executed.
Разработчики рекомендуют именно +x а не опцию в smb.conf

 CHANGES SINCE 4.1.0rc3

    Michael Adam <obnox@samba.org> 

        bug #10134: Add "acl allow execute always" parameter. 


dzirtt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.