@@ -71,6 +71,21 @@ private async Task SyncUsersAndGroups()
71
71
await UserUtil . UserDelete ( user , false ) ;
72
72
}
73
73
74
+ //Create groups as specified by the GID value for each user
75
+ foreach ( var user in config . Users )
76
+ {
77
+ if ( user . GID . HasValue )
78
+ {
79
+ _logger . LogInformation ( "Processing GID for user '{user}'" , user . Username ) ;
80
+
81
+ var virtualGroup = $ "sftp-gid-{ user . GID . Value } ";
82
+ if ( ! await GroupUtil . GroupExists ( virtualGroup ) )
83
+ {
84
+ _logger . LogDebug ( "Creating group '{group}' with GID '{gid}'" , virtualGroup , user . GID . Value ) ;
85
+ await GroupUtil . GroupCreate ( virtualGroup , true , user . GID . Value ) ;
86
+ }
87
+ }
88
+ }
74
89
75
90
foreach ( var user in config . Users )
76
91
{
@@ -79,7 +94,7 @@ private async Task SyncUsersAndGroups()
79
94
if ( ! await UserUtil . UserExists ( user . Username ) )
80
95
{
81
96
_logger . LogDebug ( "Creating user '{user}'" , user . Username ) ;
82
- await UserUtil . UserCreate ( user . Username , true ) ;
97
+ await UserUtil . UserCreate ( user . Username , true , user . GID ) ;
83
98
_logger . LogDebug ( "Adding user '{user}' to '{group}'" , user . Username , SftpUserInventoryGroup ) ;
84
99
await GroupUtil . GroupAddUser ( SftpUserInventoryGroup , user . Username ) ;
85
100
}
@@ -94,19 +109,6 @@ private async Task SyncUsersAndGroups()
94
109
await UserUtil . UserSetId ( user . Username , user . UID . Value ) ;
95
110
}
96
111
97
- if ( user . GID . HasValue )
98
- {
99
- var virtualGroup = $ "sftp-gid-{ user . GID . Value } ";
100
- if ( ! await GroupUtil . GroupExists ( virtualGroup ) )
101
- {
102
- _logger . LogDebug ( "Creating group '{group}' with GID '{gid}'" , virtualGroup , user . GID . Value ) ;
103
- await GroupUtil . GroupCreate ( virtualGroup , true , user . GID . Value ) ;
104
- }
105
-
106
- _logger . LogDebug ( "Adding user '{user}' to '{group}'" , user . Username , virtualGroup ) ;
107
- await GroupUtil . GroupAddUser ( virtualGroup , user . Username ) ;
108
- }
109
-
110
112
var homeDir = Directory . CreateDirectory ( Path . Combine ( HomeBasePath , user . Username ) ) ;
111
113
await ProcessUtil . QuickRun ( "chown" , $ "root:root { homeDir . FullName } ") ;
112
114
await ProcessUtil . QuickRun ( "chmod" , $ "711 { homeDir . FullName } ") ;
0 commit comments