C++ - Problem in asking and checking user's passwd


 
Thread Tools Search this Thread
Top Forums Programming C++ - Problem in asking and checking user's passwd
# 15  
Old 08-09-2010
I was thinking to use gksudo. Is there anyway to see if these commands were successfully accomplished?
E.g.
gksudo -i > alex
And then if password confirmation will be successful, "1" or "successful" will be writen to file "alex"
Is this or something similar possible?
# 16  
Old 08-09-2010
A few things...
1) You haven't given sudo anything to do, so I don't think that will work. If you want to change the password, why not sudo -u username passwd username? That will request the user's login and, only if successful, prompt him to change the password.

2) I don't think you really want to capture the output here, do you? You want the user to see it and interact with it. Using gksudo instead of sudo in a terminal means you don't get all this nice prewritten tested-to-death software to use(no google hits for gkpasswd). Why not use it?

3) Check the program's return status, not it's output. If you're unsure what an exit status is, try this from shell:

Code:
$ true ; echo $?
0
$ false ; echo $?
1
$ true && echo 'This succeeded'
This succeeded
$ false && echo 'This succeeded'
$ true || echo 'This failed'
$ false || echo 'This failed'
This failed
$

And the following program should do this:
Code:
int main(void)
{
       return(42);
}

Code:
$ ./return42 ; echo $?
42
$

Traditionally programs return 0 on success, nonzero on failure. Just check if it returned zero and you'll know if it succeeded.

Last edited by Corona688; 08-09-2010 at 06:02 PM..
# 17  
Old 08-09-2010
Ok thx for the help. I knew that every program returns a value. How do I exactly check the returned value?
# 18  
Old 08-09-2010
Depends how exactly you ran it. How are you running it?
# 19  
Old 08-09-2010
I am thinking of using the system function at stdlib.h calling gksudo. Then writing a value to a file or something and then, through C++ check this value and decide if the access is accepted or not...
# 20  
Old 08-09-2010
From man system:

Code:
RETURN VALUE
       The value returned is -1 on  error  (e.g.   fork(2)  failed),  and  the
       return  status  of the command otherwise.  This latter return status is
       in the format specified in wait(2).  Thus, the exit code of the command
       will  be  WEXITSTATUS(status).   In case /bin/sh could not be executed,
       the exit status will be that of a command that does exit(127).

       If the value of command is NULL, system() returns non-zero if the shell
       is available, and zero if not.

To use WEXITSTATUS you should also
Code:
#include <sys/types.h>
#include <sys/wait.h>

# 21  
Old 08-09-2010
So I have
if (
WEXITSTATUS(system("gksudo")) >= 1)
cout << "Accept"
else
cout << "Denied"



Am I right???
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Big problem: shell entry in /etc/passwd corrupted for user root

did a big mistake, changing root entry of /etc/passwd to root:x:0:0:root:/root:/usr/bin/tmux split-window -v \; attach as expected, now I can't login as root anymore. sudo ed /etc/passwd etc. doesn't work. Any idea? Use code tags to increase readability and follow the rules. (4 Replies)
Discussion started by: dodona
4 Replies

2. UNIX for Dummies Questions & Answers

User info not present in passwd file

I have logged into a box with some userid,but in this box der is no entry for this userid in /etc/passwd file.this box is used by multiple users but none of them have their enteries in passwd file but for each user there is a directory in /home like for user1 /home/user1 for user2... (5 Replies)
Discussion started by: Jcpratap
5 Replies

3. Shell Programming and Scripting

Matching user alias's to their ID's in the passwd file

Hi, I've a user alias file in the below format.. I need to change all the ID's that come after the = sign (with some multiple ID's which are separated by comma's) to their respective users that are contained in the passwords file.. Whats the best way to go about this.. Some sort of sed command in... (2 Replies)
Discussion started by: Jazmania
2 Replies

4. UNIX for Advanced & Expert Users

Determining if user is local-user in /etc/passwd or LDAP user

Besides doing some shell-script which loops through /etc/passwd, I was wondering if there was some command that would tell me, like an enhanced version of getent. The Operating system is Solaris 10 (recent-ish revision) using Sun DS for LDAP. (5 Replies)
Discussion started by: ckmehta
5 Replies

5. Solaris

Force user to change passwd on first login

Hello All, How to force user to change his login passwd on his first login in solaris 10 ? while adding user do we need to set the password in theis case?? (7 Replies)
Discussion started by: saurabh84g
7 Replies

6. Shell Programming and Scripting

Unix Script to search user id in /etc/passwd

Hey all, i have to write a script in Unix that would help me in my department to search certain user ids valid in /etc/passwd file.. here goes the exact question & data to help analyze: Amend a script to tell the user to enter a user id to be searched for in the /etc/passwd file. If there are no... (7 Replies)
Discussion started by: ally_d
7 Replies

7. UNIX for Dummies Questions & Answers

How the /etc/passwd file is written when user does not have permission

Hi, /etc/passwd file has write permission only for the root user. Now when a normal user changes the its own password using passwd command, how this information has been written to the /etc/passwd file when the user is not having write permission to this file. ~santosh (2 Replies)
Discussion started by: santosh149
2 Replies

8. Shell Programming and Scripting

Looking for specific user ID's from the passwd file

Hello, My issue is that I want to look for specific users that have their first and last initial followed by four numbers. For example: ab1234 I've already got the user ID's out of the passwd file more passwd | awk -F ":" '{print $1}' > userids I just need to know how to just pick... (8 Replies)
Discussion started by: LinuxRacr
8 Replies

9. UNIX for Dummies Questions & Answers

User should not be allowed to change passwd

Hi Group, Can anyone assist me with this? I am on AIX 5.2 ML06. I create the user and assign a passwd. But I do not want the user to change the passwd at all. I like him/her to use the passwd that I have set for him/her. Any ideas would be highly appreciated!!! Thanks. (3 Replies)
Discussion started by: brookingsd
3 Replies

10. Shell Programming and Scripting

Please help me with this script meant for checking /etc/passwd if a name exists

I'm trying to create a program that includes variety of duties. One of the duties includes deleting a user if the user name exist in the /etc/passwd file. how do i make that happen. those of you that know about this shell programming, please tell me what i should do after the shell reads... (4 Replies)
Discussion started by: TRUEST
4 Replies
Login or Register to Ask a Question