forked from Imagelibrary/rtems
libcsupport: Minimal /etc/passwd and /etc/group
Create a minimal /etc/passwd and /etc/group with user root and group root only with no passwords.
This commit is contained in:
@@ -59,22 +59,12 @@ static void pwdgrp_init(void)
|
||||
/*
|
||||
* Initialize /etc/passwd
|
||||
*/
|
||||
init_file(
|
||||
"/etc/passwd",
|
||||
"root:*:0:0:root::/:/bin/sh\n"
|
||||
"rtems:*:1:1:RTEMS Application::/:/bin/sh\n"
|
||||
"tty:!:2:2:tty owner::/:/bin/false\n"
|
||||
);
|
||||
init_file("/etc/passwd", "root::0:0::::\n");
|
||||
|
||||
/*
|
||||
* Initialize /etc/group
|
||||
*/
|
||||
init_file(
|
||||
"/etc/group",
|
||||
"root:x:0:root\n"
|
||||
"rtems:x:1:rtems\n"
|
||||
"tty:x:2:tty\n"
|
||||
);
|
||||
init_file("/etc/group", "root::0:\n");
|
||||
}
|
||||
|
||||
void _libcsupport_pwdgrp_init(void)
|
||||
@@ -265,9 +255,13 @@ int _libcsupport_scangr(
|
||||
/*
|
||||
* Determine number of members
|
||||
*/
|
||||
for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {
|
||||
if(*cp == ',')
|
||||
memcount++;
|
||||
if (grmem[0] == '\0') {
|
||||
memcount = 0;
|
||||
} else {
|
||||
for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {
|
||||
if(*cp == ',')
|
||||
memcount++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -280,13 +274,18 @@ int _libcsupport_scangr(
|
||||
/*
|
||||
* Fill in pointer array
|
||||
*/
|
||||
grp->gr_mem[0] = grmem;
|
||||
for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {
|
||||
if(*cp == ',') {
|
||||
*cp = '\0';
|
||||
grp->gr_mem[memcount++] = cp + 1;
|
||||
if (grmem[0] == '\0') {
|
||||
memcount = 0;
|
||||
} else {
|
||||
grp->gr_mem[0] = grmem;
|
||||
for (cp = grmem, memcount = 1 ; *cp != 0 ; cp++) {
|
||||
if(*cp == ',') {
|
||||
*cp = '\0';
|
||||
grp->gr_mem[memcount++] = cp + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
grp->gr_mem[memcount] = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -98,17 +98,7 @@ rtems_task Init(
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwent() (2) -- OK" );
|
||||
pw = getpwent();
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwent() (3) -- OK" );
|
||||
pw = getpwent();
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwent() (4) -- result should be NULL" );
|
||||
puts( "Init - getpwent() (2) -- result should be NULL" );
|
||||
pw = getpwent();
|
||||
rtems_test_assert( !pw );
|
||||
|
||||
@@ -119,17 +109,7 @@ rtems_task Init(
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
puts( "Init - getgrent() (2) -- OK" );
|
||||
gr = getgrent();
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
puts( "Init - getgrent() (3) -- OK" );
|
||||
gr = getgrent();
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
puts( "Init - getgrent() (4) -- result should be NULL" );
|
||||
puts( "Init - getgrent() (2) -- result should be NULL" );
|
||||
gr = getgrent();
|
||||
rtems_test_assert( !gr );
|
||||
|
||||
@@ -139,11 +119,6 @@ rtems_task Init(
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwnam(\"rtems\") -- OK" );
|
||||
pw = getpwnam( "rtems" );
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwnam(\"suser\") -- result should be NULL" );
|
||||
pw = getpwnam( "suser" );
|
||||
rtems_test_assert( !pw );
|
||||
@@ -154,10 +129,14 @@ rtems_task Init(
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
|
||||
puts( "Init - getpwuid(1) -- OK" );
|
||||
pw = getpwuid( 1 );
|
||||
rtems_test_assert( pw );
|
||||
print_passwd( pw );
|
||||
rtems_test_assert( strcmp(pw->pw_name, "root") == 0 );
|
||||
rtems_test_assert( strcmp(pw->pw_passwd, "") == 0 );
|
||||
rtems_test_assert( pw->pw_uid == 0 );
|
||||
rtems_test_assert( pw->pw_gid == 0 );
|
||||
rtems_test_assert( strcmp(pw->pw_comment, "") == 0 );
|
||||
rtems_test_assert( strcmp(pw->pw_gecos, "") == 0 );
|
||||
rtems_test_assert( strcmp(pw->pw_dir, "") == 0 );
|
||||
rtems_test_assert( strcmp(pw->pw_shell, "") == 0 );
|
||||
|
||||
puts( "Init - getpwuid(4) -- result should be NULL" );
|
||||
pw = getpwuid( 4 );
|
||||
@@ -169,21 +148,16 @@ rtems_task Init(
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
puts( "Init - getgrnam(\"rtems\") -- OK" );
|
||||
gr = getgrnam("rtems");
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
/* getgrgid */
|
||||
puts( "Init - getgrgid(0) -- OK" );
|
||||
gr = getgrgid(0);
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
|
||||
puts( "Init - getgrgid(1) -- OK" );
|
||||
gr = getgrgid(1);
|
||||
rtems_test_assert( gr );
|
||||
print_group( gr );
|
||||
rtems_test_assert( strcmp(gr->gr_name, "root") == 0 );
|
||||
rtems_test_assert( strcmp(gr->gr_passwd, "") == 0 );
|
||||
rtems_test_assert( gr->gr_gid == 0 );
|
||||
rtems_test_assert( gr->gr_mem[0] == NULL );
|
||||
|
||||
puts( "Init - getgrgid(4) -- result should be NULL");
|
||||
gr = getgrgid( 4 );
|
||||
|
||||
@@ -1,99 +1,49 @@
|
||||
Initialized console on port COM1 9600-8-N-1
|
||||
|
||||
*** PASSWORD/GROUP TEST - 01 ***
|
||||
*** BEGIN OF TEST PSXPASSWD 1 ***
|
||||
Init - getpwent() -- OK, result should be NULL
|
||||
Init - getgrent() -- OK, result should be NULL
|
||||
Init - setpwent() -- OK
|
||||
Init - setgrent() -- OK
|
||||
Init - getpwent() (1) -- OK
|
||||
username: root
|
||||
user password: *
|
||||
user password:
|
||||
user ID: 0
|
||||
group ID: 0
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
Init - getpwent() (2) -- OK
|
||||
username: rtems
|
||||
user password: *
|
||||
user ID: 1
|
||||
group ID: 1
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
Init - getpwent() (3) -- OK
|
||||
username: tty
|
||||
user password: !
|
||||
user ID: 2
|
||||
group ID: 2
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/false
|
||||
Init - getpwent() (4) -- result should be NULL
|
||||
home directory:
|
||||
shell program:
|
||||
Init - getpwent() (2) -- result should be NULL
|
||||
Init - getgrent() (1) -- OK
|
||||
group name: root
|
||||
group password: x
|
||||
group password:
|
||||
group ID: 0
|
||||
Init - getgrent() (2) -- OK
|
||||
group name: rtems
|
||||
group password: x
|
||||
group ID: 1
|
||||
Init - getgrent() (3) -- OK
|
||||
group name: tty
|
||||
group password: x
|
||||
group ID: 2
|
||||
Init - getgrent() (4) -- result should be NULL
|
||||
Init - getgrent() (2) -- result should be NULL
|
||||
Init - getpwnam("root") -- OK
|
||||
username: root
|
||||
user password: *
|
||||
user password:
|
||||
user ID: 0
|
||||
group ID: 0
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
Init - getpwnam("rtems") -- OK
|
||||
username: rtems
|
||||
user password: *
|
||||
user ID: 1
|
||||
group ID: 1
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
home directory:
|
||||
shell program:
|
||||
Init - getpwnam("suser") -- result should be NULL
|
||||
Init - getpwuid(0) -- OK
|
||||
username: root
|
||||
user password: *
|
||||
user password:
|
||||
user ID: 0
|
||||
group ID: 0
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
Init - getpwuid(1) -- OK
|
||||
username: rtems
|
||||
user password: *
|
||||
user ID: 1
|
||||
group ID: 1
|
||||
real name:
|
||||
home directory: /
|
||||
shell program: /bin/sh
|
||||
home directory:
|
||||
shell program:
|
||||
Init - getpwuid(4) -- result should be NULL
|
||||
Init - getgrnam("root") -- OK
|
||||
group name: root
|
||||
group password: x
|
||||
group password:
|
||||
group ID: 0
|
||||
Init - getgrnam("rtems") -- OK
|
||||
group name: rtems
|
||||
group password: x
|
||||
group ID: 1
|
||||
Init - getgrgid(0) -- OK
|
||||
group name: root
|
||||
group password: x
|
||||
group password:
|
||||
group ID: 0
|
||||
Init - getgrgid(1) -- OK
|
||||
group name: rtems
|
||||
group password: x
|
||||
group ID: 1
|
||||
Init - getgrgid(4) -- result should be NULL
|
||||
Init - endpwent() -- OK
|
||||
Init - endgrent() -- OK
|
||||
*** END OF PASSWORD/GROUP TEST - 01 ***
|
||||
*** END OF TEST PSXPASSWD 1 ***
|
||||
|
||||
Reference in New Issue
Block a user