2014-10-14 2 views
0

우분투를 실행 중이며 SSH를 사용하여 파일을 업로드하여 웹 사이트 코드를 업데이트하고 싶습니다. 우분투에 www 데이터 액세스 허용

내 우분투 사용자 (ID 우분투)

내 우분투 그룹

[email protected]****:/var/www# id ubuntu 
uid=1000(ubuntu) gid=1000(ubuntu)  groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),33(www-data),44(video),46(plugdev),102(netdev) 
(그룹 우분투를) 내 우분투 서버에

[email protected]****:/var/www# groups ubuntu 
ubuntu : ubuntu adm dialout cdrom floppy sudo audio dip www-data video plugdev netdev 

모든 그룹 (개/etc/group에)

[email protected]****:/var/www# more /etc/group 
    root:x:0: 
    daemon:x:1: 
    bin:x:2: 
    sys:x:3: 
    adm:x:4:syslog,ubuntu 
    tty:x:5: 
    disk:x:6: 
    lp:x:7: 
    mail:x:8: 
    news:x:9: 
    uucp:x:10: 
    man:x:12: 
    proxy:x:13: 
    kmem:x:15: 
    dialout:x:20:ubuntu 
    fax:x:21: 
    voice:x:22: 
    cdrom:x:24:ubuntu 
    floppy:x:25:ubuntu 
    tape:x:26: 
    sudo:x:27:ubuntu 
    audio:x:29:ubuntu 
    dip:x:30:ubuntu 
    www-data:x:33:ubuntu 
    backup:x:34: 
    operator:x:37: 
    list:x:38: 
    irc:x:39: 
    src:x:40: 
    gnats:x:41: 
    shadow:x:42: 
    utmp:x:43: 
    video:x:44:ubuntu 
    sasl:x:45: 
    plugdev:x:46:ubuntu 
    staff:x:50: 
    games:x:60: 
    users:x:100: 
    nogroup:x:65534: 
    libuuid:x:101: 
    netdev:x:102:ubuntu 
    crontab:x:103: 
    syslog:x:104: 
    fuse:x:105: 
    messagebus:x:106: 
    mlocate:x:107: 
    ssh:x:108: 
    landscape:x:109: 
    admin:x:110: 
    ubuntu:x:1000: 
    mysql:x:111: 
    ssl-cert:x:112: 

왜 우분투 사용자로/www/var/html 폴더에있는 파일을 덮어 쓸 수 없습니까?

편집

의/var/www가에 대한 나의 폴더 권한에/var/www /에서 HTML은 다음과 같습니다

[email protected]****:/var/www# ls -l 
total 4 
drwxrwxr-x 3 www-data www-data 4096 Oct 13 20:24 html 
[email protected]****:/var/www# cd html 
[email protected]****:/var/www/html# ls -l 
total 4 
drwxrwxr-x 9 www-data www-data 4096 Oct 13 20:24 somefolder 

탑재 된 드라이브 (마운트)

[email protected]****:/# mount 
    /dev/xvda1 on/type ext4 (rw,discard) 
    proc on /proc type proc (rw,noexec,nosuid,nodev) 
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) 
    none on /sys/fs/cgroup type tmpfs (rw) 
    none on /sys/fs/fuse/connections type fusectl (rw) 
    none on /sys/kernel/debug type debugfs (rw) 
    none on /sys/kernel/security type securityfs (rw) 
    udev on /dev type devtmpfs (rw,mode=0755) 
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) 
    tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) 
    none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) 
    none on /run/shm type tmpfs (rw,nosuid,nodev) 
    none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755) 
    none on /sys/fs/pstore type pstore (rw) 
    /dev/xvdb on /mnt type ext3 (rw) 
    systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd) 
+0

/www,/www/var 및/www/var/html의 권한은 무엇입니까? 그리고 그들은 로컬 디스크 또는 마운트되어 있습니까? – Wrikken

+0

drwxrwxr-x 3 www-data 4096 Oct 13 20:22 www ** 및 ** drwxrwxr-x 3 www-data www-data 4096 Oct 13 20:24 html ... AWS에 EBS 마운트 드라이브 – Drace

+0

장착 됨 : 어떻게,'mount '는 그 디스크의 마운트 옵션에 대해 무엇을 말합니까? – Wrikken

답변

0

"왜 은/var/www/html 폴더에있는 파일을 우분투 사용자로 덮어 쓸 수 없습니까? "

나의 이해는 당신이 /var에 내부 파일 쓸 수 있다는 것입니다/www /에서 html로하지만 할 수 없을 당신이 파일을 덮어 쓸 수없는 경우 (다른 www-data 그룹 사용자가 작성한 파일을 덮어 쓸 수 있습니다/디렉토리 owned, 완전히 다른 문제입니다).

이러한 이유로 /var/www/html 내부에 파일을 쓸 수 있습니다 :

  • 의/var/www /에서 html로www-data 사용자가 소유하고 당신의 사용자 인 www-data
  • 그룹에 있습니다 www-data group
  • 의/var/www /에서 html로 그룹
,174에 대한 쓰기 권한이

기본적으로 /var/www/html 안에 파일/디렉토리를 만들면 파일 소유자가되고 파일 그룹이 primary 그룹 (귀하의 경우 ubuntu)으로 설정됩니다. 기본 그룹 외부의 다른 사용자는 write 권한이 없습니다.

-rw-rw-r-- 1 ubuntu ubuntu 123 Oct 12 13:14 test.html 

이 정책은 www가 데이터 그룹의 모든 사용자에 대해 동일하고 수동으로 파일 그룹을 변경하지 않는 한 (www가 데이터의 다른 구성원에 의해 생성 된 파일을 덮어 쓰는 것을 허용하지 않는 문제를 생성 www- 데이터).

/var/www/html 안에 생성 된 모든 파일/디렉토리를 그룹으로 강제로 적용하는 것입니다. 그룹으로는 www-data입니다. 이 모든 그룹의 사용자가 모든 파일/디렉토리에 대한 쓰기 권한이 있는지 확인합니다 setgid

sudo chmod g+s /var/www/html 

를 사용하여 수행됩니다 :/var에 내부에 이미 존재하는 디렉토리에 대한

sudo chmod -R g+w /var/www/html 

setgid로를/www /에서 HTML

sudo find /var/www/html -type d -exec chmod g+s {} + 
관련 문제