私はユーザーapacheとグループapacheが所有するWebサイトを持っており、他のユーザーがWebサイトのフォルダで作業できるようにしたいと思います。そのユーザーがフォルダ内の新しいファイルを編集して作成できる必要があります。
ユーザーを追加し、パスワードを割り当ててから、アクセス権を付与したいフォルダにホームディレクトリを変更しました。
/etc/passwd
peter:x:1016:1017::/home/application/public_html/documents:/bin/bash
それからそれをApacheグループに追加しました。
[root@app01 documents]# groups peter
peter : peter apache
次に、作業するフォルダが(a)apache所有者であること、(b)そのグループに読み書きできることを確認してください。 (私も777を使っていましたが、まだできません)
drwxrwxr-x+ 6 apache apache 4096 Nov 16 09:03 documents
その後、ユーザーとしてログインしてフォルダにファイルを作成しようとしましたが、次のような結果が表示されます。
-bash-4.2$ touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied
[root@app01]# getfacl documents
# file: documents
# owner: apache
# group: apache
user::rwx
group::r-x
group:apache:rw-
mask::rwx
other::rwx
default:user::rwx
default:group::r-x
default:group:apache:rw-
default:mask::rwx
default:other::r-x
ディレクトリ内のファイルを編集して問題なく保存できますが、新しいファイルやフォルダを作成することはできません。これを行うにはどうすればよいですか?
答え1
通常、ユーザーのホームページ外に共有/コラボレーションスペースを作成する必要があり、/var/www/website1/public_htmlをお勧めします。
website1というグループとwebsite1というユーザーを作成し、website1-adminグループを作成します。
その後、ディレクトリを775に設定できます。
/var/www/website1 は website1:website1-admin、/var/www/website1/public_html は website1:website1 です。
次に、書き込み権限を必要とするすべてのユーザーをwebsite1グループに追加し、そのグループにapacheを追加します。
管理者は、public_html以外のファイルにアクセスして編集できるように、website1-adminグループに配置できます。
これにより、ユーザーのホームページ/home/wesbite1を700にロックできます。