{"action":"created","comment":{"url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/comments/38319050","id":38319050,"diff_hunk":"@@ -57,54 +57,22 @@\n        - For core development: Add '--prefer-source' to get full git clones, and remove '--no-dev' to get things like phpunit and behat installed.\n        - Further reading: https://getcomposer.org/doc/03-cli.md#create-project\n \n-2. *Only for *NIX users* **Setup folder rights**:\n+2.  *Only for *NIX/OS X users* **Setup folder rights**:\n \n-       *Skip to step #3 if you plan to install LegacyBridge and eZ Publish Legacy with this installation!*\n+       *Skip to step #3 if you plan to install LegacyBridge and eZ Publish Legacy with this installation.*\n \n-       One common issue is that the `ezpublish/cache`, `ezpublish/logs` and `ezpublish/config` directories **must be writable both by the web server and the command line user**.\n-       If your web server user is different from your command line user, you can run the following commands just once in your project to ensure that permissions will be set up properly.\n+       One common issue is that the `ezpublish/{cache,logs,config},web` directories **must be writable both by the web server and the command line user**.\n+       To make sure both have access, you can run the following commands in your `<root-dir>` to ensure that permissions will be set up properly.\n \n-       Change `www-data` to your web server user:\n+       *Before you begin, make sure you have a user group assigned to your command line user that can be safely used to set rights*\n \n-       A. **Using ACL on a system that supports chmod +a**\n+       Change `www-data` to your web server user, and `cmd-group` to a group command line users is part of:\n \n        ```bash\n-       $ rm -rf ezpublish/cache/* ezpublish/logs/* ezpublish/sessions/*\n-       $ sudo chmod +a \"www-data allow delete,write,append,file_inherit,directory_inherit\" \\\n-         ezpublish/{cache,logs,config,sessions} web\n-       $ sudo chmod +a \"`whoami` allow delete,write,append,file_inherit,directory_inherit\" \\\n-         ezpublish/{cache,logs,config,sessions} web\n+       $ chown -R www-data:cmd-group ezpublish/{cache,logs,config,sessions} web\n+       $ chmod -R ug+rwX ezpublish/{cache,logs,config,sessions} web","path":"INSTALL.md","position":28,"original_position":28,"commit_id":"01dada627287905a1736103fecdf7e919d173f64","original_commit_id":"01dada627287905a1736103fecdf7e919d173f64","user":{"login":"glye","id":289744,"avatar_url":"https://avatars.githubusercontent.com/u/289744?v=3","gravatar_id":"","url":"https://api.github.com/users/glye","html_url":"https://github.com/glye","followers_url":"https://api.github.com/users/glye/followers","following_url":"https://api.github.com/users/glye/following{/other_user}","gists_url":"https://api.github.com/users/glye/gists{/gist_id}","starred_url":"https://api.github.com/users/glye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glye/subscriptions","organizations_url":"https://api.github.com/users/glye/orgs","repos_url":"https://api.github.com/users/glye/repos","events_url":"https://api.github.com/users/glye/events{/privacy}","received_events_url":"https://api.github.com/users/glye/received_events","type":"User","site_admin":false},"body":"Sorry if my CLI-fu is weak, but this doesn't change ownership or permissions on dirs created after this point, does it? Don't we have to change umask settings to solve that?","created_at":"2015-08-31T14:48:24Z","updated_at":"2015-08-31T14:48:24Z","html_url":"https://github.com/ezsystems/ezplatform/pull/35#discussion_r38319050","pull_request_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35","_links":{"self":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/comments/38319050"},"html":{"href":"https://github.com/ezsystems/ezplatform/pull/35#discussion_r38319050"},"pull_request":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35"}}},"pull_request":{"url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35","id":43714370,"html_url":"https://github.com/ezsystems/ezplatform/pull/35","diff_url":"https://github.com/ezsystems/ezplatform/pull/35.diff","patch_url":"https://github.com/ezsystems/ezplatform/pull/35.patch","issue_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/35","number":35,"state":"open","locked":false,"title":"[WIP] Simplify directory permissions by introducing script","user":{"login":"andrerom","id":289757,"avatar_url":"https://avatars.githubusercontent.com/u/289757?v=3","gravatar_id":"","url":"https://api.github.com/users/andrerom","html_url":"https://github.com/andrerom","followers_url":"https://api.github.com/users/andrerom/followers","following_url":"https://api.github.com/users/andrerom/following{/other_user}","gists_url":"https://api.github.com/users/andrerom/gists{/gist_id}","starred_url":"https://api.github.com/users/andrerom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrerom/subscriptions","organizations_url":"https://api.github.com/users/andrerom/orgs","repos_url":"https://api.github.com/users/andrerom/repos","events_url":"https://api.github.com/users/andrerom/events{/privacy}","received_events_url":"https://api.github.com/users/andrerom/received_events","type":"User","site_admin":false},"body":"Recent discussions with @dpobel on permissions, and PM request to make recording of install process made me think we should simplify directory permissions greatly, by using a script we can theoretically make it more predictable and less error prone.\r\n\r\n@dpobel I didn't remember what you were voicing as your preference on this, I think it was making sure both command line and www user has rights but others have limited rights. I did not see a clean way to check system support for `chmod +a` which also does this, and the fallback here is basically handing over ownership to www user which might or might not be what you prefered.. :)\r\n\r\nFeedback  ping @lolautruche @bdunogier @yannickroger @glye @gggeek \r\n\r\n*Side: I'm thinking this should not be in this repo actually, we can for instance put it in kernel repo and use composer bin config to make it symlink it here, hence not have to duplicate it in ezstudio.*","created_at":"2015-08-30T14:46:25Z","updated_at":"2015-08-31T14:48:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2f09f16aaeb6a5afbab6dea18bb9097898f73ceb","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35/commits","review_comments_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35/comments","review_comment_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/35/comments","statuses_url":"https://api.github.com/repos/ezsystems/ezplatform/statuses/01dada627287905a1736103fecdf7e919d173f64","head":{"label":"ezsystems:dir_permissions","ref":"dir_permissions","sha":"01dada627287905a1736103fecdf7e919d173f64","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":31363530,"name":"ezplatform","full_name":"ezsystems/ezplatform","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ezsystems/ezplatform","description":"This is eZ Platform (aka eZ Publish 6.x), it is a meta repository that pulls in all dependencies for full distribution.","fork":false,"url":"https://api.github.com/repos/ezsystems/ezplatform","forks_url":"https://api.github.com/repos/ezsystems/ezplatform/forks","keys_url":"https://api.github.com/repos/ezsystems/ezplatform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/ezplatform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/ezplatform/teams","hooks_url":"https://api.github.com/repos/ezsystems/ezplatform/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/ezplatform/events","assignees_url":"https://api.github.com/repos/ezsystems/ezplatform/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/ezplatform/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/ezplatform/tags","blobs_url":"https://api.github.com/repos/ezsystems/ezplatform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/ezplatform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/ezplatform/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/ezplatform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/ezplatform/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/ezplatform/languages","stargazers_url":"https://api.github.com/repos/ezsystems/ezplatform/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/ezplatform/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/ezplatform/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/ezplatform/subscription","commits_url":"https://api.github.com/repos/ezsystems/ezplatform/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/ezplatform/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/ezplatform/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/ezplatform/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/ezplatform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/ezplatform/merges","archive_url":"https://api.github.com/repos/ezsystems/ezplatform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/ezplatform/downloads","issues_url":"https://api.github.com/repos/ezsystems/ezplatform/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/ezplatform/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/ezplatform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/ezplatform/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/ezplatform/releases{/id}","created_at":"2015-02-26T11:12:45Z","updated_at":"2015-08-17T19:12:10Z","pushed_at":"2015-08-31T14:29:40Z","git_url":"git://github.com/ezsystems/ezplatform.git","ssh_url":"git@github.com:ezsystems/ezplatform.git","clone_url":"https://github.com/ezsystems/ezplatform.git","svn_url":"https://github.com/ezsystems/ezplatform","homepage":"http://share.ez.no  ","size":7116,"stargazers_count":23,"watchers_count":23,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":4,"forks":21,"open_issues":4,"watchers":23,"default_branch":"master"}},"base":{"label":"ezsystems:master","ref":"master","sha":"bda421c535770c4a045f305338cf0f4227762378","user":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"repo":{"id":31363530,"name":"ezplatform","full_name":"ezsystems/ezplatform","owner":{"login":"ezsystems","id":295311,"avatar_url":"https://avatars.githubusercontent.com/u/295311?v=3","gravatar_id":"","url":"https://api.github.com/users/ezsystems","html_url":"https://github.com/ezsystems","followers_url":"https://api.github.com/users/ezsystems/followers","following_url":"https://api.github.com/users/ezsystems/following{/other_user}","gists_url":"https://api.github.com/users/ezsystems/gists{/gist_id}","starred_url":"https://api.github.com/users/ezsystems/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezsystems/subscriptions","organizations_url":"https://api.github.com/users/ezsystems/orgs","repos_url":"https://api.github.com/users/ezsystems/repos","events_url":"https://api.github.com/users/ezsystems/events{/privacy}","received_events_url":"https://api.github.com/users/ezsystems/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ezsystems/ezplatform","description":"This is eZ Platform (aka eZ Publish 6.x), it is a meta repository that pulls in all dependencies for full distribution.","fork":false,"url":"https://api.github.com/repos/ezsystems/ezplatform","forks_url":"https://api.github.com/repos/ezsystems/ezplatform/forks","keys_url":"https://api.github.com/repos/ezsystems/ezplatform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezsystems/ezplatform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezsystems/ezplatform/teams","hooks_url":"https://api.github.com/repos/ezsystems/ezplatform/hooks","issue_events_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/events{/number}","events_url":"https://api.github.com/repos/ezsystems/ezplatform/events","assignees_url":"https://api.github.com/repos/ezsystems/ezplatform/assignees{/user}","branches_url":"https://api.github.com/repos/ezsystems/ezplatform/branches{/branch}","tags_url":"https://api.github.com/repos/ezsystems/ezplatform/tags","blobs_url":"https://api.github.com/repos/ezsystems/ezplatform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezsystems/ezplatform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezsystems/ezplatform/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezsystems/ezplatform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezsystems/ezplatform/statuses/{sha}","languages_url":"https://api.github.com/repos/ezsystems/ezplatform/languages","stargazers_url":"https://api.github.com/repos/ezsystems/ezplatform/stargazers","contributors_url":"https://api.github.com/repos/ezsystems/ezplatform/contributors","subscribers_url":"https://api.github.com/repos/ezsystems/ezplatform/subscribers","subscription_url":"https://api.github.com/repos/ezsystems/ezplatform/subscription","commits_url":"https://api.github.com/repos/ezsystems/ezplatform/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezsystems/ezplatform/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezsystems/ezplatform/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezsystems/ezplatform/issues/comments{/number}","contents_url":"https://api.github.com/repos/ezsystems/ezplatform/contents/{+path}","compare_url":"https://api.github.com/repos/ezsystems/ezplatform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezsystems/ezplatform/merges","archive_url":"https://api.github.com/repos/ezsystems/ezplatform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezsystems/ezplatform/downloads","issues_url":"https://api.github.com/repos/ezsystems/ezplatform/issues{/number}","pulls_url":"https://api.github.com/repos/ezsystems/ezplatform/pulls{/number}","milestones_url":"https://api.github.com/repos/ezsystems/ezplatform/milestones{/number}","notifications_url":"https://api.github.com/repos/ezsystems/ezplatform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezsystems/ezplatform/labels{/name}","releases_url":"https://api.github.com/repos/ezsystems/ezplatform/releases{/id}","created_at":"2015-02-26T11:12:45Z","updated_at":"2015-08-17T19:12:10Z","pushed_at":"2015-08-31T14:29:40Z","git_url":"git://github.com/ezsystems/ezplatform.git","ssh_url":"git@github.com:ezsystems/ezplatform.git","clone_url":"https://github.com/ezsystems/ezplatform.git","svn_url":"https://github.com/ezsystems/ezplatform","homepage":"http://share.ez.no  ","size":7116,"stargazers_count":23,"watchers_count":23,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":4,"forks":21,"open_issues":4,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35"},"html":{"href":"https://github.com/ezsystems/ezplatform/pull/35"},"issue":{"href":"https://api.github.com/repos/ezsystems/ezplatform/issues/35"},"comments":{"href":"https://api.github.com/repos/ezsystems/ezplatform/issues/35/comments"},"review_comments":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35/comments"},"review_comment":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ezsystems/ezplatform/pulls/35/commits"},"statuses":{"href":"https://api.github.com/repos/ezsystems/ezplatform/statuses/01dada627287905a1736103fecdf7e919d173f64"}}}}