Diffstat (limited to 'noncore/settings/usermanager/passwd.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/settings/usermanager/passwd.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/noncore/settings/usermanager/passwd.cpp b/noncore/settings/usermanager/passwd.cpp index 310cef8..5063661 100644 --- a/noncore/settings/usermanager/passwd.cpp +++ b/noncore/settings/usermanager/passwd.cpp | |||
@@ -8,12 +8,13 @@ | |||
8 | ***************************************************************************/ | 8 | ***************************************************************************/ |
9 | 9 | ||
10 | #include "passwd.h" | 10 | #include "passwd.h" |
11 | 11 | ||
12 | // Needed for crypt_make_salt(); | 12 | // Needed for crypt_make_salt(); |
13 | #include <sys/types.h> | 13 | #include <sys/types.h> |
14 | #include <sys/stat.h> | ||
14 | #include <unistd.h> | 15 | #include <unistd.h> |
15 | #include <time.h> | 16 | #include <time.h> |
16 | 17 | ||
17 | Passwd::Passwd() { | 18 | Passwd::Passwd() { |
18 | } | 19 | } |
19 | 20 | ||
@@ -136,22 +137,24 @@ bool Passwd::findUser(const char *username) { | |||
136 | 137 | ||
137 | bool Passwd::findUser(int uid) { | 138 | bool Passwd::findUser(int uid) { |
138 | QRegExp userRegExp(QString(":%1\\:").arg(uid)); | 139 | QRegExp userRegExp(QString(":%1\\:").arg(uid)); |
139 | return searchUser(userRegExp); | 140 | return searchUser(userRegExp); |
140 | } | 141 | } |
141 | 142 | ||
142 | bool Passwd::addUser(QString pw_name, QString pw_passwd, int pw_uid, int pw_gid, QString pw_gecos,QString pw_dir, QString pw_shell, bool createGroup=true) { | 143 | bool Passwd::addUser(QString pw_name, QString pw_passwd, int pw_uid, int pw_gid, QString pw_gecos,QString pw_dir, QString pw_shell, bool createGroup) { |
143 | QString tempString; | 144 | QString tempString; |
144 | if((createGroup) && (!(findGroup(pw_gid)))) addGroup(pw_name,pw_gid); | 145 | if((createGroup) && (!(findGroup(pw_gid)))) addGroup(pw_name,pw_gid); |
145 | pw_passwd = crypt(pw_passwd, crypt_make_salt()); | 146 | pw_passwd = crypt(pw_passwd, crypt_make_salt()); |
146 | tempString=pw_name+":"+pw_passwd+":"+QString::number(pw_uid)+":"+QString::number(pw_gid)+":"+pw_gecos+":"+pw_dir+":"+pw_shell; | 147 | tempString=pw_name+":"+pw_passwd+":"+QString::number(pw_uid)+":"+QString::number(pw_gid)+":"+pw_gecos+":"+pw_dir+":"+pw_shell; |
147 | passwdStringList.append(tempString); | 148 | passwdStringList.append(tempString); |
148 | // Make home dir. | 149 | // Make home dir. |
149 | QDir d; | 150 | QDir d; |
150 | if(!(d.exists(pw_dir))) { | 151 | if(!(d.exists(pw_dir))) { |
151 | d.mkdir(pw_dir); | 152 | d.mkdir(pw_dir); |
153 | chown(pw_dir,pw_uid,pw_gid); | ||
154 | chmod(pw_dir,S_IRUSR|S_IWUSR|S_IXUSR); | ||
152 | } | 155 | } |
153 | return 1; | 156 | return 1; |
154 | } | 157 | } |
155 | 158 | ||
156 | bool Passwd::updateUser(QString login) { | 159 | bool Passwd::updateUser(QString login) { |
157 | QRegExp userRegExp(QString("^%1\\:").arg(login)); | 160 | QRegExp userRegExp(QString("^%1\\:").arg(login)); |