Miałem pewne problemy z uprawnieniami, programiści mojej witryny chcieli, żebym dodał użytkownika administratora do grupy apache, a następnie ustawił pewne uprawnienia. Moja wiedza na temat Linuksa jest dość ograniczona, więc znalazłem w Internecie:
chown -R apache:apache /path/to/webserver/www
chmod -R g+rw /path/to/webserver/www
Działa to doskonale i wszystko działało dobrze przez kilka dni (BTW, użyłem „apache” zamiast www-data, ponieważ jestem na CentOS). Teraz mówią, że nie mogą przesyłać plików do tego folderu, ponieważ jest on własnością użytkownika apache, a chcą, aby był własnością apache AND administrator.
Jak dodać „admin” również do własności oprócz „apache”?
Dzięki
Edytować:
Użyłem mount
polecenia i otrzymałem następujące:
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=16377400k,nr_inodes=4094350,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (rw,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda3 on / type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=35,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
/dev/sda5 on /tmp type ext4 (rw,nosuid,nodev,noexec,relatime,data=ordered)
/dev/sda2 on /boot type ext2 (rw,relatime)
Następnie użyłem tune2fs -l | grep acl
i otrzymałem następujące:
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
[-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]
[-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
[-M last_mounted_dir] [-O [^]feature[,...]]
[-E extended-option[,...]] [-T last_check_time] [-U UUID]
[ -I new_inode_size ] device
Nie jestem pewien, czy jest w porządku, czy nie - jak to zrobić?
źródło
tune2fs -l /dev/sda3 | grep acl
miejscu, gdzie / dev / sda3 jest głównym systemem plików.getfacl /path/to/webserver/www
aby sprawdzić, które grupy i użytkownicy mają uprawnienia, jeśli tak, toroot
będziesz miał dostęp i nie będzie przed tobą ukryty.setfacl -b /path/to/webserver/www
powinien przywrócić listy ACL do poprzedniego stanu.jcbermu podał odpowiedź z regułą ACL:
Ale w ten sposób administrator nie będzie mógł wejść do katalogu www
Prawidłowa lista ACL to:
Za pomocą tego polecenia programiści otrzymają jedynie prawa do tworzenia własnych plików w tym samym katalogu. Nie mogą modyfikować innych nowo tworzonych plików na www ani tworzyć plików w podkatalogach www. Musisz więc dodać domyślną regułę ACL:
Najlepszym sposobem jest zmodyfikowanie istniejących plików / podfolderów w www, aby były zgodne z nowymi listami ACL i dodanie domyślnych reguł dla nowo tworzonych plików / podfolderów. W takim przypadku użyj poniższego polecenia zamiast dwóch powyżej:
Tutaj reguły dla istniejących i nowo tworzonych plików i folderów są łączone w jeden ciąg.
-Rm R ecursively m odify ACL
u: admin: rwX Ustaw ACL dla administratora użytkownika dla istniejących plików i (pod) folderów początkowego folderu www
d: u: admin: rwX Ustaw ACL dla administratora użytkownika dla nowo tworzonych plików i (pod) folderów
W dowolnym momencie możesz usunąć wszystkie dodatkowe listy ACL
źródło