@@ -71,6 +71,21 @@ private async Task SyncUsersAndGroups()
7171 await UserUtil . UserDelete ( user , false ) ;
7272 }
7373
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+ }
7489
7590 foreach ( var user in config . Users )
7691 {
@@ -79,7 +94,7 @@ private async Task SyncUsersAndGroups()
7994 if ( ! await UserUtil . UserExists ( user . Username ) )
8095 {
8196 _logger . LogDebug ( "Creating user '{user}'" , user . Username ) ;
82- await UserUtil . UserCreate ( user . Username , true ) ;
97+ await UserUtil . UserCreate ( user . Username , true , user . GID ) ;
8398 _logger . LogDebug ( "Adding user '{user}' to '{group}'" , user . Username , SftpUserInventoryGroup ) ;
8499 await GroupUtil . GroupAddUser ( SftpUserInventoryGroup , user . Username ) ;
85100 }
@@ -94,19 +109,6 @@ private async Task SyncUsersAndGroups()
94109 await UserUtil . UserSetId ( user . Username , user . UID . Value ) ;
95110 }
96111
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-
110112 var homeDir = Directory . CreateDirectory ( Path . Combine ( HomeBasePath , user . Username ) ) ;
111113 await ProcessUtil . QuickRun ( "chown" , $ "root:root { homeDir . FullName } ") ;
112114 await ProcessUtil . QuickRun ( "chmod" , $ "711 { homeDir . FullName } ") ;
0 commit comments