지정된 폴더에 새로 생성되는 파일의 권한을 자동으로 지정 가능한가요?

지정된 폴더에 추가되는 파일들에 관해서 권한을 수동으로 chmod 명령어를 사용해서 하는게 아니라
추가되자마자 바로 지정된 권한으로 수정되는 방법이 있나요?

아니면 계정이 지정된 폴더에 대해서 새로 추가된 파일에 관해서도
파일 삭제 및 다른 권한을 가질 수 있도록 가능한가요?

chgrp 하면 추가된 파일에 대해서는 추가를 한 계정의 권한으로 추가 되어 있어서 접근이 안되네요

답변 달려고 쓰다가 왠지 내용이 이어지나 싶어 봤더니, 저번에 토렌트데몬 관련해서 질문하셨던 분이군요. ㅋㅋㅋㅋ

일단 파일이 생성되자마자 바로 권한이 수정되는 건, 불가능한 것으로 압니다.
crontab을 이용하여 일정시간 간격을 두고 주기적으로 변경하는 것은 가능하지만, 즉시 변경하는 것은 안됩니다.

다만, 만약 FTP로 파일을 추가하는 것이라면 데몬설정을 변경하여 업로드하는 파일의 권한을 설정할 수 있습니다.

vsftp의 설정 : http://vsftpd.beasts.org/vsftpd_conf.html
(umask 부분을 보세요)

다른 ftp에서도 가능하며, 어떤 ftp의 경우는 클라이언트에서 권한을 지정하여 업로드 할 수 있습니다.

만약 ftp를 사용하여 업로드하는 게 아니시라면, 구체적으로 어떤 전송형태로 파일을 추가하시는 지 알려주세요.

도움이 되셨으면 합니다. 좋은 하루 되세요.

[quote="pukakk":r4c4yh9x]답변 달려고 쓰다가 왠지 내용이 이어지나 싶어 봤더니, 저번에 토렌트데몬 관련해서 질문하셨던 분이군요. ㅋㅋㅋㅋ

일단 파일이 생성되자마자 바로 권한이 수정되는 건, 불가능한 것으로 압니다.
crontab을 이용하여 일정시간 간격을 두고 주기적으로 변경하는 것은 가능하지만, 즉시 변경하는 것은 안됩니다.

다만, 만약 FTP로 파일을 추가하는 것이라면 데몬설정을 변경하여 업로드하는 파일의 권한을 설정할 수 있습니다.

vsftp의 설정 : http://vsftpd.beasts.org/vsftpd_conf.html
(umask 부분을 보세요)

다른 ftp에서도 가능하며, 어떤 ftp의 경우는 클라이언트에서 권한을 지정하여 업로드 할 수 있습니다.

만약 ftp를 사용하여 업로드하는 게 아니시라면, 구체적으로 어떤 전송형태로 파일을 추가하시는 지 알려주세요.

도움이 되셨으면 합니다. 좋은 하루 되세요.[/quote:r4c4yh9x]

감사합니다

현재 삼바랑 ftp두가지를 이용해서 사용하고있습니다
집에서는 삼바를 이용해서 하고있고
밖에서는 ftp를 이용합니다
ftp는 vsftp입니다

삼바로 업로드하면 권한이 775로 되어 watch-dir은 되지만 삭제가 안되네요
ftp로는 watch도 안되요 권한이 700로 업로드 되더군요

윈도우 개념으로 우분투 구축했는데
권한에서 자주 막히네요
에고고

정 안되면 트렌스미션에 루트권한두어야겠어요ㅡ 좀 위험하겠지만…

[quote="antiline":1mj80phs]http://vsftpd.beasts.org/vsftpd_conf.html

현재 삼바랑 ftp두가지를 이용해서 사용하고있습니다
집에서는 삼바를 이용해서 하고있고
밖에서는 ftp를 이용합니다
ftp는 vsftp입니다

삼바로 업로드하면 권한이 775로 되어 watch-dir은 되지만 삭제가 안되네요
ftp로는 watch도 안되요 권한이 700로 업로드 되더군요
[/quote:1mj80phs]

예, 말씀하신 내용은 vsftpd의 설정과 samba의 설정으로 가능합니다.

우선 각 설정과 관련하여 umask의 지정방법부터 간략히 소개해야 할게요,
umask는 mask와 달리 해당 권한을 [b:1mj80phs]금지[/b:1mj80phs]하는 것이기 때문에, 금지할 권한만을 지정해주셔야 합니다.
( 참고 : http://www.leopit.com/Leophp/board/lect … mode=linux )

따라서 지금 antiline님이 원하시는 것처럼 파일의 보유자/그룹/기타인원이 읽기(4)와 쓰기-삭제(2)를 하기 위해서는
umask는 '111’이하가 되어야만 하죠. 실행(1)만 금지를 해야 합니다.
반면 mask는 '666’이상이 되어야 하고요.

이런 것을 염두하고 vsftp와 samba의 설정을 바꾸어 보겠습니다.

  1. SAMBA 설정 (/etc/samba/smb.conf)
    삼바에서 해당 폴더를 공유하신 부분을 찾으신 뒤, 그 단락에서 create mask 항목을 찾아 다음과 같이 수정합니다.

[code:1mj80phs]create mask = 0666[/code:1mj80phs]
로 설정합니다. 0776이나 0777 모두 가능합니다만 적어도 0666이상은 되어야만 합니다.

  1. vsftp 설정 (/etc/vsftpd.conf)

[code:1mj80phs]local_umask=011
file_open_mode=0666[/code:1mj80phs]
file_open_mode는 파일 업로드 시 생성된 파일의 권한을 지정하는 겁니다. 0666 이상을 지정하시면 됩니다.
local_umask는 local 유저가 올린 파일의 권한들의 제약을 지정하는 것이고요. 0111 이하를 지정하시면 됩니다.
(만약 anonymous 계정을 통해 ftp를 사용하신다면 local_umask 항목 대신 anon_umask항목을 수정해 주세요.)
file_open_mode보다 umask가 권한설정에 우선권을 가지고 있으니 유념해 주세요.

이상입니다. 저녁 맛있게 드세용.

*추신 : 666 때문에 거북하여서 777쓸 수도 있지만, 이 경우 게스트 사용자가 실행권한을 획득하게 되는 것이므로… 766 정도를 사용하는 것을 추천합니다.
누가 막 쩌리계정으로 들어와서 antiline님 컴퓨터에 트로얀올리고 실행시키면 문제가 심각해지잖아요 ㅎㅎㅎ

*추신2 : 나중에 기회되시면 transmission-daemon의 rpc 기능을 사용해보세요.

감사합니다.

mask 와 umask에 대해 알게되었습니다.

ftp와 samba 를 mask 설정해 보았습니다.

ftp 로 업로드 하니 이제 자동 추가가 되더군요! 감격했습니다.

그런데 trash-original-torrent-files 옵션은 안먹더군요
권한 문제는 아니었나 봅니다.ㅋ

그리고 rpc 사용하고있습니다.
현재는 마그넷으로 올려진 토렌트 파일은 웹으로 접속해서 추가하고 있고 모니터링도 rpc로 하고 있어요.ㅋ
그런데 많은 양의 파일을 올릴때 rpc로는 어려움이있네요.
감사합니다.

[quote="antiline":2i4qgq0v]그런데 trash-original-torrent-files 옵션은 안먹더군요
권한 문제는 아니었나 봅니다.ㅋ
[/quote:2i4qgq0v]

아 그렇군요, 그에 대해서 좀 더 알아보도록 하겠습니다.

좋은 하루 되세요 :)

ftp를 통해 watch-dir에 토렌트 파일을 올리신 다음에, 다음 명령어를 통해 나온 로그기록들을 좀 알려주시겠어요?
아마도 우분투 보안툴인 apparmor와 관련된 문제 같은데 확실하지가 않아서 말이에요

[code:sbf5pchz]cat /var/log/syslog | grep transmission
cat /var/log/dmesg | grep transmission[/code:sbf5pchz]

cat /var/log/syslog | grep transmission입니다

Feb 9 15:17:14 antiline-server transmission-daemon: Found new .torrent file "MySilu.torrent" in watchdir "/home/antiline/torrent/" (watch.c:154)
Feb 9 15:17:14 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/torrents/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.torrent" (bencode.c:1651)
Feb 9 15:17:16 antiline-server transmission-daemon: Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu Starting DHT announce (firewalled, 120 nodes) (tr-dht.c:660)
Feb 9 15:17:22 antiline-server transmission-daemon: Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu tracker gave HTTP Response Code 404 (Not Found) (announcer.c:1379)
Feb 9 15:17:30 antiline-server transmission-daemon: Searching for web interface file "/home/debian-transmission/.local/share/transmission/web/javascript/transmission.js" (platform.c:524)
Feb 9 15:17:30 antiline-server transmission-daemon: Searching for web interface file "/usr/share/transmission/web/javascript/transmission.js" (platform.c:524)
Feb 9 15:19:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 9 15:19:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)
Feb 9 15:21:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 9 15:21:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)
Feb 9 15:23:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 9 15:23:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)
Feb 9 15:25:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 9 15:25:06 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)

cat /var/log/dmesg | grep transmission 는 결과가 없습니다.

혹시나해서 setting.json 입니다.

{
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "0.0.0.0",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"dht-enabled": true,
"download-dir": "/home/antiline/torrent/",
"download-limit": 100,
"download-limit-enabled": 0,
"encryption": 1,
"incomplete-dir": "/home/antiline/temp",
"incomplete-dir-enabled": true,
"lazy-bitfield-enabled": true,
"max-peers-global": 200,
"message-level": 2,
"open-file-limit": 32,
"peer-limit-global": 240,
"peer-limit-per-torrent": 60,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": 0,
"pex-enabled": true,
"port-forwarding-enabled": false,
"preallocation": 1,
"proxy": "",
"proxy-auth-enabled": false,
"proxy-auth-password": "",
"proxy-auth-username": "",
"proxy-enabled": false,
"proxy-port": 80,
"proxy-type": 0,
"ratio-limit": 2.0000,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": " ",
"rpc-port": 9091,
"rpc-username": " ",
"rpc-whitelist": "192.168.0.1",
"rpc-whitelist-enabled": false,
"speed-limit-down": 100,
"speed-limit-down-enabled": false,
"speed-limit-up": 100,
"speed-limit-up-enabled": false,
"trash-original-torrent-files": 1,
"umask": 1,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"watch-dir": "/home/antiline/torrent/",
"watch-dir-enabled": true
}

정말 감사합니다.
이렇게 까지 알아봐주실줄 몰랐습니다.

제가 원래 몇달마다 한 번씩 잉여력이 넘칩니다.
게다가 고마워하실 필요가 없는게 명령어도 틀리게 알려드렸거든요 (죄송합니다 ㅋ)

cat /var/log/dmesg | grep transmission가 아니라
cat /var/log/messasges | grep transmission 로 했어야 합니다.
apparmor 로그가 이 쪽에 쌓이는 데, 제가 엉뚱한 로그파일을 열어보라고 말씀드렸네요.

그런데… syslog를 보니 transmission-daemon이 삭제 자체를 시도 안 한 것 같습니다.

원래대로라면 삭제에 실패하였을 때에
tr_err( "Error deleting .torrent file: %s", tr_strerror( errno ) );
요런 메세지 토해내면서 syslog에 기록하였어야 했는데 그게 없네요.

[quote="antiline":2bjxsi5r]
혹시나해서 setting.json 입니다.

{

"trash-original-torrent-files": 1,

}
[/quote:2bjxsi5r]
한 번 sttings.json파일 중에
trash-original-torrent-files": 1,로 기재된 것을
trash-original-torrent-files": true, 로 한 번 바꾸어 보시겠어요?
(쉼표는 잊지말고 넣어주세요 :) )

즐거운 저녁시간 되세요

[quote="pukakk":14p65i0v]
cat /var/log/dmesg | grep transmission가 아니라
cat /var/log/messasges | grep transmission 로 했어야 합니다.

한 번 sttings.json파일 중에
trash-original-torrent-files": 1,로 기재된 것을
trash-original-torrent-files": true, 로 한 번 바꾸어 보시겠어요?
[/quote:14p65i0v]

cat /var/log/syslog | grep transmission

Feb 10 01:45:25 antiline-server transmission-daemon: Found new .torrent file "The Sound of Music 1965 BDRemux.torrent" in watchdir "/home/antiline/torrent/" (watch.c:154)
Feb 10 01:45:25 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/torrents/The.Sound.of.Music.1965.BDRemux.1080p.AVC.DTS-HD_MA.AC3.dub.2mvo.mkv.b5382863ebc4d2d9.torrent" (bencode.c:1651)
Feb 10 01:45:43 antiline-server transmission-daemon: The.Sound.of.Music.1965.BDRemux.1080p.AVC.DTS-HD_MA.AC3.dub.2mvo.mkv Starting DHT announce (poor, 23 nodes) (tr-dht.c:660)
Feb 10 01:45:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 10 01:45:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/The.Sound.of.Music.1965.BDRemux.1080p.AVC.DTS-HD_MA.AC3.dub.2mvo.mkv.b5382863ebc4d2d9.resume" (bencode.c:1651)
Feb 10 01:45:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)
Feb 10 01:47:27 antiline-server transmission-daemon: Searching for web interface file "/home/debian-transmission/.local/share/transmission/web/javascript/transmission.js" (platform.c:524)
Feb 10 01:47:27 antiline-server transmission-daemon: Searching for web interface file "/usr/share/transmission/web/javascript/transmission.js" (platform.c:524)
Feb 10 01:47:43 antiline-server transmission-daemon: Found new .torrent file "숨바꼭질.Hide.And.Seek.2005.720p.BluRay.x264-BDiSC.torrent" in watchdir "/home/antiline/torrent/" (watch.c:154)
Feb 10 01:47:43 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/torrents/숨바꼭질.Hide.And.Seek.2005.720p.BluRay.x264-BDiSC.95196f6a0905158a.torrent" (bencode.c:1651)
Feb 10 01:47:45 antiline-server transmission-daemon: 숨바꼭질.Hide.And.Seek.2005.720p.BluRay.x264-BDiSC Starting DHT announce (poor, 46 nodes) (tr-dht.c:660)
Feb 10 01:47:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/Black.Swan.2010.Blu-ray.RE.x264.1080p.DTS.MySilu.1c7615dc5a390dfb.resume" (bencode.c:1651)
Feb 10 01:47:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/The.Sound.of.Music.1965.BDRemux.1080p.AVC.DTS-HD_MA.AC3.dub.2mvo.mkv.b5382863ebc4d2d9.resume" (bencode.c:1651)
Feb 10 01:47:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/resume/숨바꼭질.Hide.And.Seek.2005.720p.BluRay.x264-BDiSC.95196f6a0905158a.resume" (bencode.c:1651)
Feb 10 01:47:59 antiline-server transmission-daemon: Saved "/var/lib/transmission-daemon/info/stats.json" (bencode.c:1651)

그리고

cat /var/log/messages | grep transmission
는 트렌스 미션쪽은 하나도 남자 않았습니다.

혹시나 해서 삼바랑 FTP mask 를 777로 잠시 바꾸고 진행하였습니다.

문제를 확인했습니다.

transmission-daemon의 소스코드에 문제가 있는 것 같습니다.

데몬의 경우는 trash-original-files 키를 활용하지 않더군요. 옵션 값을 true로 줘도, 데몬 내에서는 무조건 false로 처리합니다.

이와 관련하여 개발팀에 보고를 했으며, 트랜스미션팀에서 프로그램을 수정할 때까지 당분간은 trash-original-files가 작동하지 않을 것입니다. ;;

이런 문제가 있는 줄 모르고 transmission-daemon을 추천해서 죄송하네요. ;;;;;;;;;;;;;;;;;;;

그간 공연히 고생시켜드린 점, 사과의 말씀 올립니다. :oops:

정정합니다, 소스코드에는 문제가 없었습니다.

제가 해보니까 데몬 실행중에 settings.json을 변경하면, 데몬이 변경된 사항을 인식하지 못하더군요.

따라서 데몬을 재실행하면 되는 문제로 여겨집니다.

settings.json을 변경한 뒤에, 다음 명령어로 데몬을 재실행해주세요.

[code:2ro9du39]sudo /etc/init.d/transmission-daemon restart[/code:2ro9du39]