You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1006 B
45 lines
1006 B
/* chcon.c - Change file security context
|
|
*
|
|
* Copyright 2014 The Android Open Source Project
|
|
|
|
USE_CHCON(NEWTOY(chcon, "<2hvR", TOYFLAG_USR|TOYFLAG_BIN))
|
|
|
|
config CHCON
|
|
bool "chcon"
|
|
depends on TOYBOX_SELINUX
|
|
default y
|
|
help
|
|
usage: chcon [-hRv] CONTEXT FILE...
|
|
|
|
Change the SELinux security context of listed file[s].
|
|
|
|
-h Change symlinks instead of what they point to
|
|
-R Recurse into subdirectories
|
|
-v Verbose
|
|
*/
|
|
|
|
#define FOR_chcon
|
|
#include "toys.h"
|
|
|
|
static int do_chcon(struct dirtree *try)
|
|
{
|
|
char *path, *con = *toys.optargs;
|
|
|
|
if (!dirtree_notdotdot(try)) return 0;
|
|
|
|
path = dirtree_path(try, 0);
|
|
if (toys.optflags & FLAG_v) printf("chcon '%s' to %s\n", path, con);
|
|
if (-1 == ((toys.optflags & FLAG_h) ? lsetfilecon : setfilecon)(path, con))
|
|
perror_msg("'%s' to %s", path, con);
|
|
free(path);
|
|
|
|
return (toys.optflags & FLAG_R)*DIRTREE_RECURSE;
|
|
}
|
|
|
|
void chcon_main(void)
|
|
{
|
|
char **file;
|
|
|
|
for (file = toys.optargs+1; *file; file++) dirtree_read(*file, do_chcon);
|
|
}
|