radcli 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.devcontainer/Dockerfile +19 -0
- data/.devcontainer/devcontainer.json +33 -0
- data/CHANGES +0 -0
- data/LICENSE +0 -0
- data/MANIFEST +0 -0
- data/README.md +28 -11
- data/Rakefile +0 -0
- data/ext/lib/libadcli.a +0 -0
- data/ext/radcli/adconn.h +7 -0
- data/ext/radcli/adenroll.h +20 -0
- data/ext/radcli/adutil.h +0 -0
- data/ext/radcli/extconf.rb +0 -0
- data/ext/radcli/radcli.c +0 -0
- data/ext/radcli/radcli.h +0 -0
- data/ext/radcli/radconn.c +0 -0
- data/ext/radcli/radenroll.c +31 -0
- data/install.sh +5 -0
- data/radcli.gemspec +2 -2
- data/test/test_radconn.rb +1 -4
- data/test/test_radenroll.rb +0 -3
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0662c80c5d2c83f379bc165a4aa43c122484e7dd57856d5e754593ab605b1b26
|
4
|
+
data.tar.gz: df4d73859a2c1e0b86c12071d2b2eec2f35177cf82fbe8ad0fd1c7b1bc403044
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bfd578c6e725d1c4e89e900ccbaab4866aa218ae821ae38af099e2933f8de44120356387fb6e836480f160eb0efe847a7532deb1903344d4cf4855e3747b82c
|
7
|
+
data.tar.gz: 9c99f9283ec6d273418d7e24f66cc3bb58eb54f3a12b2346e24f6d57ac8cd46fd79eb3c1d5c582eef2a55f3a3be90c6271c008b1a5acb3fe29d44aa4f00248ca
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/ruby/.devcontainer/base.Dockerfile
|
2
|
+
|
3
|
+
# [Choice] Ruby version: 2, 2.7, 2.6, 2.5
|
4
|
+
ARG VARIANT="2"
|
5
|
+
FROM mcr.microsoft.com/vscode/devcontainers/ruby:0-${VARIANT}
|
6
|
+
|
7
|
+
# [Option] Install Node.js
|
8
|
+
ARG INSTALL_NODE="true"
|
9
|
+
ARG NODE_VERSION="lts/*"
|
10
|
+
RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
|
11
|
+
|
12
|
+
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
|
13
|
+
&& apt-get -y install --no-install-recommends make gcc automake autoconf xmlto xsltproc libkrb5-dev libldap2-dev libsasl2-dev
|
14
|
+
|
15
|
+
# [Optional] Uncomment this line to install additional gems.
|
16
|
+
RUN gem install rake bundler rake-compiler rspec
|
17
|
+
|
18
|
+
# [Optional] Uncomment this line to install global node packages.
|
19
|
+
# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g <your-package-here>" 2>&1
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"name": "Ruby",
|
3
|
+
"build": {
|
4
|
+
"dockerfile": "Dockerfile",
|
5
|
+
"args": {
|
6
|
+
// Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5
|
7
|
+
"VARIANT": "2.7",
|
8
|
+
// Options
|
9
|
+
"INSTALL_NODE": "false",
|
10
|
+
"NODE_VERSION": "lts/*"
|
11
|
+
}
|
12
|
+
},
|
13
|
+
|
14
|
+
// Set *default* container specific settings.json values on container create.
|
15
|
+
"settings": {
|
16
|
+
"terminal.integrated.shell.linux": "/bin/bash"
|
17
|
+
},
|
18
|
+
|
19
|
+
// Add the IDs of extensions you want installed when the container is created.
|
20
|
+
"extensions": [
|
21
|
+
"rebornix.Ruby"
|
22
|
+
],
|
23
|
+
|
24
|
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
25
|
+
// "forwardPorts": [],
|
26
|
+
|
27
|
+
// Use 'postCreateCommand' to run commands after the container is created.
|
28
|
+
// "postCreateCommand": "ruby --version",
|
29
|
+
|
30
|
+
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
31
|
+
"remoteUser": "vscode"
|
32
|
+
|
33
|
+
}
|
data/CHANGES
CHANGED
File without changes
|
data/LICENSE
CHANGED
File without changes
|
data/MANIFEST
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -3,30 +3,47 @@ The radcli library provides a Ruby interface for performing actions on a Active
|
|
3
3
|
(adcli: https://www.freedesktop.org/software/realmd/adcli/devel-building.html)
|
4
4
|
|
5
5
|
# Installation
|
6
|
+
This library is available as a gem.
|
6
7
|
|
8
|
+
## Ubuntu 16.04
|
9
|
+
```
|
10
|
+
sudo apt-get -y install make gcc libkrb5-dev libldap2-dev libsasl2-dev
|
11
|
+
sudo gem install radcli
|
12
|
+
```
|
13
|
+
## Redhat Linux 7.4
|
14
|
+
```
|
15
|
+
sudo yum -y install make gcc automake autoconf krb5-devel openldap-devel cyrus-sasl-devel cyrus-sasl-gssapi
|
16
|
+
sudo gem install radcli
|
17
|
+
```
|
18
|
+
# Building
|
7
19
|
|
8
|
-
|
20
|
+
## Ubuntu 16.04
|
9
21
|
```
|
10
22
|
sudo apt-get install ruby gem ruby-dev
|
11
|
-
sudo gem install rake bundler
|
12
|
-
sudo apt-get install automake autoconf xmlto xsltproc libkrb5-dev libldap2-dev libsasl2-dev
|
23
|
+
sudo gem install rake bundler rake-compiler rspec
|
24
|
+
sudo apt-get install make gcc automake autoconf xmlto xsltproc libkrb5-dev libldap2-dev libsasl2-dev
|
13
25
|
```
|
14
|
-
|
15
|
-
### Prerequisites (Fedora)
|
16
26
|
```
|
17
|
-
|
18
|
-
|
19
|
-
|
27
|
+
git clone https://github.com/martencassel/radcli
|
28
|
+
cd radcli
|
29
|
+
rake build
|
30
|
+
gem install pkg/radcli-1.1.0.gem
|
20
31
|
```
|
21
32
|
|
22
|
-
|
33
|
+
## Redhat Linux 7.4
|
34
|
+
```
|
35
|
+
sudo subscription-manager repos --enable rhel-7-server-optional-rpms
|
36
|
+
sudo yum -y install ruby gem ruby-devel
|
37
|
+
sudo yum -y install git make gcc automake autoconf krb5-devel openldap-devel cyrus-sasl-devel cyrus-sasl-gssapi
|
38
|
+
sudo gem install rake bundler rake-compiler rspec
|
39
|
+
```
|
23
40
|
```
|
24
41
|
git clone https://github.com/martencassel/radcli
|
25
42
|
cd radcli
|
26
43
|
rake build
|
27
|
-
gem install pkg/radcli-1.
|
44
|
+
gem install pkg/radcli-1.1.0.gem
|
28
45
|
```
|
29
|
-
|
46
|
+
|
30
47
|
# Synposis
|
31
48
|
|
32
49
|
### Connect using username/password
|
data/Rakefile
CHANGED
File without changes
|
data/ext/lib/libadcli.a
CHANGED
Binary file
|
data/ext/radcli/adconn.h
CHANGED
@@ -91,10 +91,15 @@ void adcli_conn_set_domain_controller (adcli_conn *conn,
|
|
91
91
|
|
92
92
|
const char * adcli_conn_get_domain_short (adcli_conn *conn);
|
93
93
|
|
94
|
+
const char * adcli_conn_get_domain_sid (adcli_conn *conn);
|
95
|
+
|
94
96
|
LDAP * adcli_conn_get_ldap_connection (adcli_conn *conn);
|
95
97
|
|
96
98
|
krb5_context adcli_conn_get_krb5_context (adcli_conn *conn);
|
97
99
|
|
100
|
+
void adcli_conn_set_krb5_context (adcli_conn *conn,
|
101
|
+
krb5_context k5);
|
102
|
+
|
98
103
|
const char * adcli_conn_get_computer_name (adcli_conn *conn);
|
99
104
|
|
100
105
|
void adcli_conn_set_computer_name (adcli_conn *conn,
|
@@ -144,4 +149,6 @@ void adcli_conn_set_krb5_conf_dir (adcli_conn *conn,
|
|
144
149
|
int adcli_conn_server_has_capability (adcli_conn *conn,
|
145
150
|
const char *capability);
|
146
151
|
|
152
|
+
bool adcli_conn_is_writeable (adcli_conn *conn);
|
153
|
+
|
147
154
|
#endif /* ADCONN_H_ */
|
data/ext/radcli/adenroll.h
CHANGED
@@ -30,6 +30,7 @@ typedef enum {
|
|
30
30
|
ADCLI_ENROLL_NO_KEYTAB = 1 << 1,
|
31
31
|
ADCLI_ENROLL_ALLOW_OVERWRITE = 1 << 2,
|
32
32
|
ADCLI_ENROLL_PASSWORD_VALID = 1 << 3,
|
33
|
+
ADCLI_ENROLL_ADD_SAMBA_DATA = 1 << 4,
|
33
34
|
} adcli_enroll_flags;
|
34
35
|
|
35
36
|
typedef struct _adcli_enroll adcli_enroll;
|
@@ -97,6 +98,14 @@ const char ** adcli_enroll_get_service_principals (adcli_enroll *enroll);
|
|
97
98
|
void adcli_enroll_set_service_principals (adcli_enroll *enroll,
|
98
99
|
const char **value);
|
99
100
|
|
101
|
+
const char ** adcli_enroll_get_service_principals_to_add (adcli_enroll *enroll);
|
102
|
+
void adcli_enroll_add_service_principal_to_add (adcli_enroll *enroll,
|
103
|
+
const char *value);
|
104
|
+
|
105
|
+
const char ** adcli_enroll_get_service_principals_to_remove (adcli_enroll *enroll);
|
106
|
+
void adcli_enroll_add_service_principal_to_remove (adcli_enroll *enroll,
|
107
|
+
const char *value);
|
108
|
+
|
100
109
|
const char * adcli_enroll_get_user_principal (adcli_enroll *enroll);
|
101
110
|
|
102
111
|
void adcli_enroll_set_user_principal (adcli_enroll *enroll,
|
@@ -108,6 +117,10 @@ unsigned int adcli_enroll_get_computer_password_lifetime (adcli_enroll *en
|
|
108
117
|
void adcli_enroll_set_computer_password_lifetime (adcli_enroll *enroll,
|
109
118
|
unsigned int lifetime);
|
110
119
|
|
120
|
+
bool adcli_enroll_get_trusted_for_delegation (adcli_enroll *enroll);
|
121
|
+
void adcli_enroll_set_trusted_for_delegation (adcli_enroll *enroll,
|
122
|
+
bool value);
|
123
|
+
|
111
124
|
krb5_kvno adcli_enroll_get_kvno (adcli_enroll *enroll);
|
112
125
|
|
113
126
|
void adcli_enroll_set_kvno (adcli_enroll *enroll,
|
@@ -125,6 +138,8 @@ krb5_enctype * adcli_enroll_get_keytab_enctypes (adcli_enroll *enroll);
|
|
125
138
|
void adcli_enroll_set_keytab_enctypes (adcli_enroll *enroll,
|
126
139
|
krb5_enctype *enctypes);
|
127
140
|
|
141
|
+
krb5_enctype * adcli_enroll_get_permitted_keytab_enctypes (adcli_enroll *enroll);
|
142
|
+
|
128
143
|
const char * adcli_enroll_get_os_name (adcli_enroll *enroll);
|
129
144
|
|
130
145
|
void adcli_enroll_set_os_name (adcli_enroll *enroll,
|
@@ -140,4 +155,9 @@ const char * adcli_enroll_get_os_service_pack (adcli_enroll *enroll);
|
|
140
155
|
void adcli_enroll_set_os_service_pack (adcli_enroll *enroll,
|
141
156
|
const char *value);
|
142
157
|
|
158
|
+
void adcli_enroll_set_samba_data_tool (adcli_enroll *enroll,
|
159
|
+
const char *value);
|
160
|
+
|
161
|
+
const char * adcli_enroll_get_samba_data_tool (adcli_enroll *enroll);
|
162
|
+
|
143
163
|
#endif /* ADENROLL_H_ */
|
data/ext/radcli/adutil.h
CHANGED
File without changes
|
data/ext/radcli/extconf.rb
CHANGED
File without changes
|
data/ext/radcli/radcli.c
CHANGED
File without changes
|
data/ext/radcli/radcli.h
CHANGED
File without changes
|
data/ext/radcli/radconn.c
CHANGED
File without changes
|
data/ext/radcli/radenroll.c
CHANGED
@@ -200,6 +200,36 @@ static VALUE radenroll_join (VALUE self) {
|
|
200
200
|
return self;
|
201
201
|
}
|
202
202
|
|
203
|
+
/*
|
204
|
+
* call-seq:
|
205
|
+
*
|
206
|
+
* adenroll.update
|
207
|
+
*
|
208
|
+
* Updates a computer object
|
209
|
+
*
|
210
|
+
*/
|
211
|
+
static VALUE radenroll_update (VALUE self) {
|
212
|
+
RUBY_ADENROLL *ptr_enroll;
|
213
|
+
adcli_result result;
|
214
|
+
const char* c_computer_password = NULL;
|
215
|
+
adcli_enroll_flags flags = ADCLI_ENROLL_NO_KEYTAB;
|
216
|
+
|
217
|
+
Data_Get_Struct (self, RUBY_ADENROLL, ptr_enroll);
|
218
|
+
|
219
|
+
c_computer_password = adcli_enroll_get_computer_password (ptr_enroll->enroll);
|
220
|
+
if (c_computer_password != NULL) {
|
221
|
+
flags |= ADCLI_ENROLL_PASSWORD_VALID;
|
222
|
+
}
|
223
|
+
|
224
|
+
result = adcli_enroll_update (ptr_enroll->enroll, flags);
|
225
|
+
|
226
|
+
if(result != ADCLI_SUCCESS) {
|
227
|
+
rb_raise(rb_eRuntimeError, "%s", adcli_get_last_error());
|
228
|
+
}
|
229
|
+
|
230
|
+
return self;
|
231
|
+
}
|
232
|
+
|
203
233
|
/*
|
204
234
|
* call-seq
|
205
235
|
*
|
@@ -270,6 +300,7 @@ void Init_AdEnroll()
|
|
270
300
|
rb_define_method (c_adenroll, "set_computer_password", radenroll_set_computer_password, 1);
|
271
301
|
|
272
302
|
rb_define_method (c_adenroll, "join", radenroll_join, 0);
|
303
|
+
rb_define_method (c_adenroll, "update", radenroll_update, 0);
|
273
304
|
rb_define_method (c_adenroll, "password", radenroll_password, 0);
|
274
305
|
rb_define_method (c_adenroll, "delete", radenroll_delete, 0);
|
275
306
|
|
data/install.sh
ADDED
data/radcli.gemspec
CHANGED
@@ -2,11 +2,11 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'radcli'
|
5
|
-
spec.version = '1.
|
5
|
+
spec.version = '1.1.0'
|
6
6
|
spec.authors = ['Mårten Cassel']
|
7
7
|
spec.license = 'Artistic-2.0'
|
8
8
|
spec.email = ['marten.cassel@gmail.com']
|
9
|
-
spec.homepage = '
|
9
|
+
spec.homepage = 'https://github.com/martencassel/radcli'
|
10
10
|
spec.summary = 'A Ruby interface for the adcli library'
|
11
11
|
spec.test_files = Dir['test/test*']
|
12
12
|
spec.extensions = ['ext/radcli/extconf.rb']
|
data/test/test_radconn.rb
CHANGED
data/test/test_radenroll.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mårten Cassel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -53,6 +53,8 @@ extra_rdoc_files:
|
|
53
53
|
- ext/radcli/radconn.c
|
54
54
|
- ext/radcli/radenroll.c
|
55
55
|
files:
|
56
|
+
- ".devcontainer/Dockerfile"
|
57
|
+
- ".devcontainer/devcontainer.json"
|
56
58
|
- CHANGES
|
57
59
|
- LICENSE
|
58
60
|
- MANIFEST
|
@@ -68,6 +70,7 @@ files:
|
|
68
70
|
- ext/radcli/radcli.h
|
69
71
|
- ext/radcli/radconn.c
|
70
72
|
- ext/radcli/radenroll.c
|
73
|
+
- install.sh
|
71
74
|
- radcli.gemspec
|
72
75
|
- scripts/delete.rb
|
73
76
|
- scripts/fail_adconnect.rb
|
@@ -75,7 +78,7 @@ files:
|
|
75
78
|
- scripts/reset.rb
|
76
79
|
- test/test_radconn.rb
|
77
80
|
- test/test_radenroll.rb
|
78
|
-
homepage:
|
81
|
+
homepage: https://github.com/martencassel/radcli
|
79
82
|
licenses:
|
80
83
|
- Artistic-2.0
|
81
84
|
metadata: {}
|
@@ -94,8 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
97
|
- !ruby/object:Gem::Version
|
95
98
|
version: '0'
|
96
99
|
requirements: []
|
97
|
-
|
98
|
-
rubygems_version: 2.5.1
|
100
|
+
rubygems_version: 3.1.4
|
99
101
|
signing_key:
|
100
102
|
specification_version: 4
|
101
103
|
summary: A Ruby interface for the adcli library
|