console1984 0.1.18 → 0.1.22

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 68e6cdce847f11b0872e12826a4fd65b7e31e267461de5b6e85582a692310e0a
4
- data.tar.gz: aac2138d6008c87076de90b8944bf246584b47cd061a160c54f0138345491f6d
3
+ metadata.gz: 688301b16bc228224855392b24a0e4159a4e03acc4d1512f918a2c6a87a73ce1
4
+ data.tar.gz: 72433eff8fb2d85f7faa44653b653231da3081e1766f7e1f2303b7af628f095e
5
5
  SHA512:
6
- metadata.gz: '0388bba4469870ce2616845c31ee6ea34e08e6af1bb3d39e239a87cd4c3c7ee4ec7602f0e928904ae256e0bbc17554e694724067e529026f9d5cae9dff83bc0f'
7
- data.tar.gz: 2a96eaa2ecd586694a12d0bbf9dc717ef4a9585ebd277a1b538d5e589495742c63cb6d2b8c9918db9b55f07d9c1338416e4d18365628daf7286757d953cdc316
6
+ metadata.gz: d554267c6099abfc1b1a2f2aca9341adb13060f6cc007122a2cf172a76f2a4fa871959adc33dec2e01581e279f94cad9370a5aefb5f186bcfce0f8d85a652e12
7
+ data.tar.gz: f3074ebd12bf9547a54d4bfba5733fa5552bfa5cc809b2e8c1fd0191e90e925ba3817e8f4cdbbc5d08b5b67fd0ebc1c8cabf7da3bfec26a8bdb7848f84c1b718
data/README.md CHANGED
@@ -156,6 +156,27 @@ These config options are namespaced in `config.console1984`:
156
156
  | `incinerate_after` | The period to keep sessions around before incinerate them. Default `30.days`. |
157
157
  | `incineration_queue` | The name of the queue for session incineration jobs. Default `console1984_incineration`. |
158
158
 
159
+ ### SSH Config
160
+
161
+ To automatically set the `CONSOLE_USER` env var for sessions, you'll need to configure SSH on the server to accept the environment variable.
162
+
163
+ On the server, edit `/etc/ssh/sshd_config` to accept the environment variable:
164
+ ```
165
+ AcceptEnv LANG LC_* CONSOLE_USER
166
+ ```
167
+
168
+ Restart the SSH server to use the new config:
169
+ ```bash
170
+ service sshd restart
171
+ ```
172
+
173
+ On the client side, you can provide this env var from your clients by adding the variable to the ssh config:
174
+
175
+ ```
176
+ Host *
177
+ SetEnv CONSOLE_USER=david
178
+ ```
179
+
159
180
  ## About built-in protection mechanisms
160
181
 
161
182
  `console1984` adds many protection mechanisms to prevent tampering. This includes attempts to alter data in auditing tables or monkey patching certain classes to change how the system works. If you find a way to circumvent these tampering controls, please [report an issue](https://github.com/basecamp/console1984/issues).
@@ -25,6 +25,6 @@ module Console1984::Session::Incineratable
25
25
  end
26
26
 
27
27
  def earliest_possible_incineration_date
28
- created_at + Console1984.incinerate_after
28
+ created_at + Console1984.incinerate_after - 1.second
29
29
  end
30
30
  end
@@ -2,13 +2,13 @@
2
2
  module Console1984::Ext::Socket::TcpSocket
3
3
  include Console1984::Freezeable
4
4
 
5
- def write(*args)
5
+ def write(...)
6
6
  protecting do
7
7
  super
8
8
  end
9
9
  end
10
10
 
11
- def write_nonblock(*args)
11
+ def write_nonblock(...)
12
12
  protecting do
13
13
  super
14
14
  end
@@ -17,6 +17,7 @@ class Console1984::Refrigerator
17
17
  end
18
18
 
19
19
  def freeze_internal_instances
20
+ Console1984.freeze # Because it's the root engine module it can't mix Freezable.
20
21
  Console1984.config.freeze unless Console1984.config.test_mode
21
22
  end
22
23
 
@@ -6,6 +6,11 @@ class Console1984::Shield::Modes::Protected
6
6
 
7
7
  thread_mattr_accessor :currently_protected_urls, default: []
8
8
 
9
+ # Materialize the thread attribute before freezing the class. +thread_mattr_accessor+ attributes rely on
10
+ # setting a class variable the first time they are referenced, and that will fail in frozen classes
11
+ # like this one.
12
+ currently_protected_urls
13
+
9
14
  def execute(&block)
10
15
  protecting(&block)
11
16
  end
@@ -1,3 +1,3 @@
1
1
  module Console1984
2
- VERSION = '0.1.18'
2
+ VERSION = '0.1.22'
3
3
  end
data/lib/console1984.rb CHANGED
@@ -38,7 +38,7 @@ class_loader.setup
38
38
  # the console. For example, to prevent the user from deleting audit trails. See
39
39
  # Console1984::Shield and Console1984::CommandValidator to learn more.
40
40
  module Console1984
41
- include Messages, Freezeable
41
+ include Messages
42
42
 
43
43
  mattr_accessor :supervisor, default: Supervisor.new
44
44
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: console1984
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jorge Manrubia
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
11
+ date: 2021-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: activeresource
42
+ name: rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '7.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '7.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: benchmark-ips
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -261,14 +261,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
261
261
  requirements:
262
262
  - - ">="
263
263
  - !ruby/object:Gem::Version
264
- version: '0'
264
+ version: 2.7.0
265
265
  required_rubygems_version: !ruby/object:Gem::Requirement
266
266
  requirements:
267
267
  - - ">="
268
268
  - !ruby/object:Gem::Version
269
269
  version: '0'
270
270
  requirements: []
271
- rubygems_version: 3.1.4
271
+ rubygems_version: 3.2.32
272
272
  signing_key:
273
273
  specification_version: 4
274
274
  summary: Your Rails console, 1984 style