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