我使用带有CPAN模块Unix::Passwd::File
的Perl脚本创建了一个新的debian用户(我使用过此模块,因为我被要求创建用户而不使用adduser
或{{1 }})。
此模块通过添加以下行来创建用户:
useradd
/etc/passwd
/etc/shadow
/etc/group
然后Perl脚本使用:
创建主目录/etc/gshadow
在此之后我尝试登录并收到以下错误消息:
mkdir $directory;
chown $user, $directory;
我在这里缺少什么?
提前致谢。
答案 0 :(得分:1)
chown
失败了,因为你没有给它正确的参数。返回值是已修改的文件数,因此您可以使用它来检查是否成功:
chown "user", "file" or die "Couldn't chown";
chown
的正确参数是:
chown $uid, $gid, @filenames;
e.g。
chown 123, 456, "/home/user";
chown 123, -1, "/home/user"; # Don't change the group id
可以从Unix::Passwd::File::add_user
的结果中提取新创建的用户的用户和组ID:
my $result = add_user( ... );
if ($result->[0] == 200) { # Success
my $uid = $result->[2]->{'uid'};
my $gid = $result->[2]->{'gid'};
...
}