defaults.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package devices
  2. var (
  3. // These are devices that are to be both allowed and created.
  4. DefaultSimpleDevices = []*Device{
  5. // /dev/null and zero
  6. {
  7. Path: "/dev/null",
  8. Type: 'c',
  9. MajorNumber: 1,
  10. MinorNumber: 3,
  11. CgroupPermissions: "rwm",
  12. FileMode: 0666,
  13. },
  14. {
  15. Path: "/dev/zero",
  16. Type: 'c',
  17. MajorNumber: 1,
  18. MinorNumber: 5,
  19. CgroupPermissions: "rwm",
  20. FileMode: 0666,
  21. },
  22. {
  23. Path: "/dev/full",
  24. Type: 'c',
  25. MajorNumber: 1,
  26. MinorNumber: 7,
  27. CgroupPermissions: "rwm",
  28. FileMode: 0666,
  29. },
  30. // consoles and ttys
  31. {
  32. Path: "/dev/tty",
  33. Type: 'c',
  34. MajorNumber: 5,
  35. MinorNumber: 0,
  36. CgroupPermissions: "rwm",
  37. FileMode: 0666,
  38. },
  39. // /dev/urandom,/dev/random
  40. {
  41. Path: "/dev/urandom",
  42. Type: 'c',
  43. MajorNumber: 1,
  44. MinorNumber: 9,
  45. CgroupPermissions: "rwm",
  46. FileMode: 0666,
  47. },
  48. {
  49. Path: "/dev/random",
  50. Type: 'c',
  51. MajorNumber: 1,
  52. MinorNumber: 8,
  53. CgroupPermissions: "rwm",
  54. FileMode: 0666,
  55. },
  56. }
  57. DefaultAllowedDevices = append([]*Device{
  58. // allow mknod for any device
  59. {
  60. Type: 'c',
  61. MajorNumber: Wildcard,
  62. MinorNumber: Wildcard,
  63. CgroupPermissions: "m",
  64. },
  65. {
  66. Type: 'b',
  67. MajorNumber: Wildcard,
  68. MinorNumber: Wildcard,
  69. CgroupPermissions: "m",
  70. },
  71. {
  72. Path: "/dev/console",
  73. Type: 'c',
  74. MajorNumber: 5,
  75. MinorNumber: 1,
  76. CgroupPermissions: "rwm",
  77. },
  78. {
  79. Path: "/dev/tty0",
  80. Type: 'c',
  81. MajorNumber: 4,
  82. MinorNumber: 0,
  83. CgroupPermissions: "rwm",
  84. },
  85. {
  86. Path: "/dev/tty1",
  87. Type: 'c',
  88. MajorNumber: 4,
  89. MinorNumber: 1,
  90. CgroupPermissions: "rwm",
  91. },
  92. // /dev/pts/ - pts namespaces are "coming soon"
  93. {
  94. Path: "",
  95. Type: 'c',
  96. MajorNumber: 136,
  97. MinorNumber: Wildcard,
  98. CgroupPermissions: "rwm",
  99. },
  100. {
  101. Path: "",
  102. Type: 'c',
  103. MajorNumber: 5,
  104. MinorNumber: 2,
  105. CgroupPermissions: "rwm",
  106. },
  107. // tuntap
  108. {
  109. Path: "",
  110. Type: 'c',
  111. MajorNumber: 10,
  112. MinorNumber: 200,
  113. CgroupPermissions: "rwm",
  114. },
  115. /*// fuse
  116. {
  117. Path: "",
  118. Type: 'c',
  119. MajorNumber: 10,
  120. MinorNumber: 229,
  121. CgroupPermissions: "rwm",
  122. },
  123. // rtc
  124. {
  125. Path: "",
  126. Type: 'c',
  127. MajorNumber: 254,
  128. MinorNumber: 0,
  129. CgroupPermissions: "rwm",
  130. },
  131. */
  132. }, DefaultSimpleDevices...)
  133. DefaultAutoCreatedDevices = append([]*Device{
  134. {
  135. // /dev/fuse is created but not allowed.
  136. // This is to allow java to work. Because java
  137. // Insists on there being a /dev/fuse
  138. // https://github.com/dotcloud/docker/issues/514
  139. // https://github.com/dotcloud/docker/issues/2393
  140. //
  141. Path: "/dev/fuse",
  142. Type: 'c',
  143. MajorNumber: 10,
  144. MinorNumber: 229,
  145. CgroupPermissions: "rwm",
  146. },
  147. }, DefaultSimpleDevices...)
  148. )