このフォルダーを作成しようとすると、rootが「Permission denied」を取得するのはなぜですか?
root@donhy:/var/www/clients/client2/web2# mkdir bin
mkdir: cannot create directory ‘bin’: Permission denied
root@donhy:/var/www/clients/client2/web2# id
uid=0(root) gid=0(root) groups=0(root)
root@donhy:/var/www/clients/client2/web2# whoami
root
root@donhy:/var/www/clients/client2/web2# getfacl .
# file: .
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
root@donhy:/var/www/clients/client2/web2# lsattr
-------------e-- ./web
-------------e-- ./private
-------------e-- ./log
-------------e-- ./ssl
-------------e-- ./tmp
-------------e-- ./cgi-bin
-------------e-- ./webdav
root@donhy:/var/www/clients/client2/web2# lsattr ..
lsattr: Operation not supported While reading flags on ../satmike.com
----i--------e-- ../web1
----i--------e-- ../web6
lsattr: Operation not supported While reading flags on ../fishingrodcaddy.com
lsattr: Operation not supported While reading flags on ../mlconsult.net
----i--------e-- ../web3
lsattr: Operation not supported While reading flags on ../vacujig.com
lsattr: Operation not supported While reading flags on ../lucycakeshop.com
----i--------e-- ../web4
----i--------e-- ../web2
root@donhy:/var/www/clients/client2/web2# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda6 913G 2.4G 865G 1% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 991M 4.0K 991M 1% /dev
tmpfs 200M 488K 200M 1% /run
none 5.0M 4.0K 5.0M 1% /run/lock
none 1000M 76K 1000M 1% /run/shm
none 100M 0 100M 0% /run/user
/dev/sda1 180M 34M 134M 20% /boot
root@donhy:/var/www/clients/client2/web2# cat /etc/issue
Ubuntu 14.04.2 LTS \n \l
答えはlsattr
出力にあります。
# lsattr ..
----i--------e-- ../web2
このフォルダは、ルートによっても不変です。
投稿の上部にあるgetfacl
出力を注意深く見ると、次のように表示されます。
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
ご覧のとおり、ユーザールートには書き込みアクセス権がありますが、グループルートにはありません。
kchinnam post here は、これがなぜ問題であるかについての良い説明があり、同じスレッドはsetfacl
を使用してグループがフォルダとその上に "rwx"を持つことを許可する方法も説明していますサブフォルダー、ファイルを永続的に。あなたはそれが面白い/有用であると思うかもしれません(しかし、私はsetfacl
アプローチをテストしませんでした)
この問題の解決は、chattr -i .
ディレクトリにいるときにコマンドchmod g+w .
を発行してから、おそらく/var/www/clients/client2/web2
を発行するのと同じくらい簡単です。これで問題が解決しない場合は、質問を編集してお知らせください(または、必要に応じてコメントをお送りください)。
ソース: http://www.cyberciti.biz/tips/linux-password-trick.html およびman chmod
および http://en.wikipedia.org/wiki/Chmod