socket-uds-acl.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. --TEST--
  2. FPM: Unix Domain Socket with Posix ACL
  3. --SKIPIF--
  4. <?php
  5. include "skipif.inc";
  6. FPM\Tester::skipIfAnyFileDoesNotExist(['/usr/bin/getfacl', '/etc/passwd', '/etc/group']);
  7. $config = <<<EOT
  8. [global]
  9. error_log = /dev/null
  10. [unconfined]
  11. listen = {{ADDR}}
  12. listen.acl_users = nobody
  13. listen.acl_groups = nobody
  14. listen.mode = 0600
  15. pm = dynamic
  16. pm.max_children = 5
  17. pm.start_servers = 2
  18. pm.min_spare_servers = 1
  19. pm.max_spare_servers = 3
  20. EOT;
  21. FPM\Tester::skipIfConfigFails($config);
  22. ?>
  23. --FILE--
  24. <?php
  25. require_once "tester.inc";
  26. // Select 3 users and 2 groups known by system (avoid root)
  27. $users = $groups = [];
  28. $tmp = file('/etc/passwd');
  29. for ($i=1 ; $i <= 3 ; $i++) {
  30. $tab = explode(':', $tmp[$i]);
  31. $users[] = $tab[0];
  32. }
  33. $users = implode(',', $users);
  34. $tmp = file('/etc/group');
  35. for ($i=1 ; $i <= 2 ; $i++) {
  36. $tab = explode(':', $tmp[$i]);
  37. $groups[] = $tab[0];
  38. }
  39. $groups = implode(',', $groups);
  40. $cfg = <<<EOT
  41. [global]
  42. error_log = {{FILE:LOG}}
  43. [unconfined]
  44. listen = {{ADDR:UDS}}
  45. listen.acl_users = $users
  46. listen.acl_groups = $groups
  47. listen.mode = 0600
  48. ping.path = /ping
  49. ping.response = pong
  50. pm = dynamic
  51. pm.max_children = 5
  52. pm.start_servers = 2
  53. pm.min_spare_servers = 1
  54. pm.max_spare_servers = 3
  55. EOT;
  56. $tester = new FPM\Tester($cfg);
  57. $tester->start();
  58. $tester->expectLogStartNotices();
  59. $tester->ping('{{ADDR:UDS}}');
  60. passthru("/usr/bin/getfacl -cp " . $tester->getListen('{{ADDR:UDS}}'));
  61. $tester->terminate();
  62. $tester->expectLogTerminatingNotices();
  63. $tester->close();
  64. ?>
  65. Done
  66. --EXPECTF--
  67. user::rw-
  68. user:%s:rw-
  69. user:%s:rw-
  70. user:%s:rw-
  71. group::---
  72. group:%s:rw-
  73. group:%s:rw-
  74. mask::rw-
  75. other::---
  76. Done
  77. --CLEAN--
  78. <?php
  79. require_once "tester.inc";
  80. FPM\Tester::clean();
  81. ?>