소유권 부여라는 것은 파일/디렉토리에 대한 소유자로 정하는 것을 말합니다.
즉 소유자는 맘대로 할 수 있죠.
소유자 외에는 소유자가 허락된 범위내에서 파일/디렉토리에 접근할 수 있습니다.
이것을 접근권한이라고 하죠.
chown은 change owner로 소유자를 변경하는 것으로 관리자가 행할 수 있습니다.
chmod는 change mode로 파일/디렉토리에 대한 접근권한을 설정하는 것으로,
소유자나 관리자가 행할 수 있습니다.
그리고 그룹이라는 것은 계정을 묶어서 관리하는 개념으로, 계정당
하나의 기본그룹과 여러개의 다른그룹에 가입될 수 있습니다.
chown 명령옵션 소유할계정명-또는-계정명:그룹명 디렉토리-또는-파일
이런식으로 사용됩니다.
리눅스에서 보통 -R옵션은 recursive 즉 하위디렉토리까지 포함하여 전체에 적용되는 옵션입니다.
예) sudo chown -R www:wheel /opt
파일접근 권한은 읽기/쓰기/실행/특별권한으로 구분됩니다.
특별권한인 set-user-id 등은 차차 알아 가시구요.
읽기/쓰기는 파일/디렉토리에 대해 접근/변경 권한을 의미합니다.
실행은 파일에 대한 실행속성및 디렉토리에 대한 접근권한을 의미합니다.
디렉토리는 읽기/실행 권한이 모두 있어야 접근이 가능합니다.
디렉토리에 쓰기 권한이 없다고 쓰기권한이 부여된 파일을 수정할 수 없는 것은 아닙니다.
디렉토리 자체에 대한 권한만을 의미하죠.
즉 디렉토리명을 바꾼다던가 지운다던가 그런게 안되는 것입니다.
실행속성은 윈도우즈와 구분되는 것으로,
윈도우즈는 도스시절부터 파일명의 확장자로 실행가능한지를 판단합니다.
그러나 리눅스에서는 실행속성이 따로 존재합니다.
파일명에 무관하게 실행속성을 부여하면 그 파일명을 명령으로 간주하고 실행하려 할 것입니다.
하지만 비록 실행형파일 이라고 하더라도, 실행속성이 부여되지 않으면 일반 파일처럼 취급하며
명령으로 처리하지 않습니다.
파일/디렉토리에 대한 접근은 소유자/소유자의그룹/타계정으로 분류합니다.
ls -l 했을때 나오는 화면에 보면
-rwxr-x— 이런식으로 나오는데…
이것은
- : 디렉토리인지 나타냄(d:디렉토리)
rwx : 소유자는 읽기/쓰기/실행 권한을 가짐
r-x: 소유자와 동일그룹 계정은 읽기와 실행권한을 가짐
—: 소유자의 그룹에 속하지 않은 계정은 접근할 수 없음
을 뜻합니다.
이 권한들은 각기 3비트(1…7)내에 비트단위로 지정됩니다.
0번 비트는 x(실행) 1번비트는 w(쓰기) 2번비트는 r(읽기) 이며
8진법 형태로 표기하기도 합니다.
755=소유자(rwx) 그룹(rx) 타계정(rx)
644=소유자(rw) 그룹(r) 타계정(r)입니다.
예제)
chmod u+x datadir
chmod 755 datadir
chmod o-x datadir
chmod +x datadir
chmod -R 644 datadir
root만 datadir에 이동할 수 있게 하시려면…
#소유자를 root로 변경
sudo chown root:root datadir
#root 그룹의 다른 계정 및 다른계정에 대해 권한거부
sudo chmod 700
이런식으로 하시면 됩니다.
계정별로 transmission을 돌리고 싶다시면…
crontab을 이용하실 수 있습니다.
crontab은 일정주기로 프로그램을 실행하는 명령입니다.
crontab [ -u 계정 ] 크론탭파일
참고로 메뉴얼에서 [ 옵션 ] 이런식으로 표시되는 것은 생략가능한 옵션이라는 것입니다.
크론탭파일은 지정된 형식에 따라 작성되어야 하는데…
초보분들은 많이 헷갈리시니
sudo apt-get install gnome-schedule
로 설치하신 후 gnome-schedule로 작성하시면 편합니다.
만일 이렇게 주기적으로 실행하는 것이 아니라
지속적으로 유지되게 하고 싶다면…
부팅될때 모든 계정에 대해 실행해주어야 하는데…
이것은 /etc/rc.local을 편집하셔서, 계정당 실행하게 해주셔야 하고,
그 사람의 권한으로 실행하려면… sudo가 필요합니다.
sudo는 사용자를 변경하여 실행하는 것이기 때문이죠.
sudo -u 계정명 transmission-daemon
이런식으로 말입니다.
그러나, 홈디렉토리를 해당계정으로 하여 실행하시려면
sudo -iu 계정명 transmission-daemon
관리자 권한으로 실행하시면 암호를 묻지 않습니다.
예제)
#/etc/rc.local
sudo -iu user1 transmission-daemon
sudo -iu user2 transmission-daemon
#그룹1000에 속한 모든 계정에 대해 실행
cut -d: -f1-3 /etc/passwd|grep 1000$|cut -d:-f1|xargs -l -I{} sudo -iu {} transmission-daemon