私のサイトの1つでワードプレスウイルスの攻撃とファイルの書き込みに苦労しています。私が気付いた奇妙なことの1つは、rootユーザーでもディレクトリに書き込めないことです。ディレクトリは755です。同じ権限で別のディレクトリに書き込もうとすると機能します。
root@console:/var/www/clients/client3/web22# whoami
root
root@console:/var/www/clients/client3/web22# groups root
root : root
root@console:/var/www/clients/client3/web22# ls -alh
total 29M
drwxr-xr-x 8 root root 4.0K Sep 13 11:09 .
drwxr-xr-x 6 root root 4.0K Oct 5 15:04 ..
drwxr-xr-x 2 web22 client3 4.0K Feb 18 2016 cgi-bin
drwxr-xr-x 2 root root 4.0K Nov 2 2016 log
drwxr-x--x 7 web22 client3 4.0K Oct 5 14:54 web
root@console:/var/www/clients/client3/web22# touch test
touch: cannot touch ‘test’: Permission denied
root@console:/var/www/clients/client3/web22# mkdir test
mkdir: cannot create directory ‘test’: Permission denied
同じ権限、同じユーザー、同じマシンを持つ別のフォルダに移動します。
root@console:/var/www/clients/client5/web24# ls -lah
total 32K
drwxr-xr-x 8 root root 4.0K Oct 5 15:12 .
drwxr-xr-x 4 root root 4.0K Mar 24 2016 ..
drwxr-xr-x 2 web24 client5 4.0K Feb 19 2016 cgi-bin
drwxr-xr-x 2 root root 4.0K Nov 2 2016 log
drwxr-x--x 9 web24 client5 4.0K Mar 19 2016 web
root@console:/var/www/clients/client5/web24# touch test
root@console:/var/www/clients/client5/web24# rm test
/ var/www/clients/client3/web22フォルダーに何も書き込めないのに、ディレクトリへの書き込みを拒否できるグループとユーザー以外のものがあるのはなぜですか?
編集-必要な情報の追加:
root@console:/var/www/clients/client3/web22# cat /proc/version
Linux version 3.16.0-4-AMD64 ([email protected]) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03)
root@console:/var/www/clients/client3# lsattr
----i--------e-- ./web22
-------------e-- ./web13
root@console:/var/www/clients/client3# lsattr web22
-------------e-- web22/cgi-bin
-------------e-- web22/web
-------------e-- web22/log
root@console:/var/www/clients/client3# getfacl web22
# file: web22
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
root@console:/var/www/clients/client3# getfacl .
# file: .
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
Attrリストのi
は、ファイルが「不変」としてマークされていることを意味します。そのため、ファイルを変更することはできません。必要に応じて、chattr -i .
で削除できます。
chattr
のマニュアルページ から:
'i'属性を持つファイルは変更できません。削除したり名前を変更したり、このファイルへのリンクを作成したり、ファイルにデータを書き込んだりすることはできません。この属性を設定またはクリアできるのは、スーパーユーザーまたはCAP_LINUX_IMMUTABLE機能を持つプロセスのみです。