Hide lsnrctl password from users
From Oracle FAQ
Small C-program to allow users to get a listener status without having to specify the listener's password.
It's required to embed the password in a compiled language (like C), and not a scripting language. Reason is that users require read access on scripts to be able to execute them. If the password is embedded in a C-program, users need only execute permissions on the program.
/* ------------------------------------------------------------------------- * Execute listener status without showing the listener password * Compile: $ cc lsnrctl_status.c -o lsnrctl_status * Run: $ ./lsnrctl_status orcl * ------------------------------------------------------------------------- **/ #include <stdlib.h> int main(int argc, char *argv[]) { char cmd[80]; if (argc > 1) { printf("Get status of listener %s\n", argv[1]); } else { printf("No listener name specified.\n"); return -1; } sprintf(cmd, "lsnrctl <<_eof\nset password FEDE3B12CF2978B9\nstatus %s\n_eof", argv[1]); system(cmd); return 0; }