I am currently learning Java (and Fortran!) on my own. I have written the following code but for some reason it does not work as it should
I have changed the code a little so the user will answer the last question via numbers (1/0) and it worked as it should. Here is the changed version of the code:
I will appreciate any help to understand this issue.
I'm creating a file which contained the field name, student ID, house phone number, mobile number and address. Sometimes people don't enter the house phone number. However, in the file I created still print out the house phone number without any data. How do I get rid of this field when people... (1 Reply)
I was creating a file using splitter and printwriter. The result in the file come out as:
TO:bbb,ccc,eee
Instead of,
TO:bbb
TO:ccc
TO:eee
May I know what's wrong with this? (1 Reply)
My desired output is
run:
for this 1
for this 2
for this 3
for this 4
for this 5
for this 1,2
1->2
for this 2,3
2->3
for this 3,4
3->4
for this 4,5
4->5
for this 1,2,3
1->2,3 (2 Replies)
Hi,
I want to remove the following code from Source files (or replace the code with empty.) from all the source files in given directory.
finally {
if (null != hibernateSession && hibernateSession.isOpen()) {
//hibernateSession.close();
}
}
It would be great if the script has... (2 Replies)
Hello,
This is my script shell:
echo Mon premier script
echo Liste des fichiers :
ls -la
exit 0
This is my code java:
public class test {
public static void main(String args) {
try {
Process process = Runtime.getRuntime().exec("sh script1.sh");
} catch... (2 Replies)
Hello,
I try to run a script shell from a java program:
but it runs only if i do :chmod 777 myShellScript in the terminal
Please how can i insert chmod 777 in my java code without going through the terminal?
Thank you (1 Reply)
Hi
How can I write a Java program to execute Linux commands? What is the best approach:
Invoking the Linux shell within Java and executing commands
or, using the Java APIs to do the stuff. Since it is platform independent, it'll know itself what to do. We need not check which OS the Java... (1 Reply)
HI All
I am new to java in below code I am not able to understand the below line of code
Student9.change();
the complete code is mentioned as below
class Student9{
int rollno;
String name;
static String college = "ITS";
static void change(){
college = "BBDIT"; ... (2 Replies)
Discussion started by: scriptor
2 Replies
LEARN ABOUT DEBIAN
authen::pam::faq
PAM::FAQ(3pm) User Contributed Perl Documentation PAM::FAQ(3pm)NAME
Authen::PAM::FAQ - Frequently-Asked Questions about Authen::PAM.
SYNOPSIS
perldoc Authen::PAM::FAQ
VERSION
This document is currently at version 0.05, as of May 4, 2005
DESCRIPTION
1. Can I authenticate a user non interactively?
Yes, you can although not in a very clean way. The PAM library has a mechanism, in a form of a conversation function, to send and receive
text data from the user. For details of the format of the conversation function consult the Authen::PAM manual. This function receives a
list of code/string pairs. There are two codes (PAM_TEXT_INFO and PAM_ERROR_MSG) for displaying the associated string to the user and two
codes (PAM_ECHO_ON and PAM_ECHO_OFF) for getting input from the user. As you can see the codes are rather general and you can not be
completely sure when you are asked for a user name and when for a password. However, the common practice is that PAM_ECHO_ON is used for a
user name and PAM_ECHO_OFF is used for a password. So, what you can do is to write your own conversation function which ignores the
PAM_TEXT_INFO and PAM_ERROR_MSG codes and returns the user name for the code PAM_ECHO_ON and the password for the code PAM_ECHO_OFF. If you
pass the user name in the initialization function then usually you will not be asked for it. Here is a simple example how to do this:
use Authen::PAM;
use POSIX qw(ttyname);
$service = "login";
$username = "foo";
$password = "bar";
$tty_name = ttyname(fileno(STDIN));
sub my_conv_func {
my @res;
while ( @_ ) {
my $code = shift;
my $msg = shift;
my $ans = "";
$ans = $username if ($code == PAM_PROMPT_ECHO_ON() );
$ans = $password if ($code == PAM_PROMPT_ECHO_OFF() );
push @res, (PAM_SUCCESS(),$ans);
}
push @res, PAM_SUCCESS();
return @res;
}
ref($pamh = new Authen::PAM($service, $username, &my_conv_func)) ||
die "Error code $pamh during PAM init!";
$res = $pamh->pam_set_item(PAM_TTY(), $tty_name);
$res = $pamh->pam_authenticate;
print $pamh->pam_strerror($res),"
" unless $res == PAM_SUCCESS();
The Authen::PAM module comes with a default conversation function which you can find in the file PAM.pm.
2. Can I change a password non interactively?
All the discussion of the previous question also applies here. There is however one serious complication. When changing a password it is
quite possible that the PAM library will send you at lest two PAM_ECHO_OFF prompts - one for the old password and one or two for the new
one. Therefore, the first thing you should do is to see what sequence of prompts is produced by your service. Then the conversation
function should include some state variable to distinguish the different prompts. Here is an example:
use Authen::PAM;
$service = "passwd";
$username = "foo";
$oldpassword = "old_pass";
$newpassword = "new_pass";
sub my_conv_func {
my @res;
while ( @_ ) {
my $code = shift;
my $msg = shift;
my $ans = "";
$ans = $username if ($code == PAM_PROMPT_ECHO_ON() );
if ($code == PAM_PROMPT_ECHO_OFF() ) {
$ans = $oldpassword if ($state == 0);
$ans = $newpassword if ($state == 1);
$ans = $newpassword if ($state == 2);
$state++;
}
push @res, (PAM_SUCCESS(),$ans);
}
push @res, PAM_SUCCESS();
return @res;
}
ref($pamh = new Authen::PAM($service, $username, &my_conv_func)) ||
die "Error code $pamh during PAM init!";
$state = 0;
$res = $pamh->pam_chauthtok;
print $pamh->pam_strerror($res),"
" unless $res == PAM_SUCCESS();
If you are running the script as root then most likely you will not be prompted for an old password. In this case you can simply return the
new password at the ECHO_OFF prompt.
The $msg variable contains the text of the input prompt which you can use for additional test or for debugging purposes, e.g.
if ($code == PAM_PROMPT_ECHO_OFF() ) {
if ($state>=1 || $msg=~/new/i) { # are we asked for a new password
$ans = $newpassword;
} else {
$ans = $oldpassword;
}
$state++;
}
3. Why are the constants PAM_AUTHTOK and PAM_OLDAUTHTOK not avaliable?
The PAM_AUTHTOK and PAM_OLDAUTHTOK items can be used to pass authentication tokens (passwords) from one module to another. However, they
are avaliable only to PAM modules and not to PAM applicatinos. If you have a special setup in which you really need to preset the password
from the application (e.g. using a radius server) then you can use the pam_set_authtok module avaliable from
http://www.uni-hohenheim.de/~schaefer/linux/pam/pam_set_authtok.html <http://www.uni-
hohenheim.de/~schaefer/linux/pam/pam_set_authtok.html>.
SEE ALSO
Authen::PAM
AUTHOR
Nikolay Pelov <NIKIP at cpan.org>
COPYRIGHT
Copyright (c) 1998-2005 Nikolay Pelov. All rights reserved. This file is part of the Authen::PAM library. This library is free software;
you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.14.2 2005-06-30 PAM::FAQ(3pm)