请教:增加用户的shell小程序

marq0123 2009-09-29 09:09:59
下面的程序在组class1中添加30个用户,用户名形式为stdxx,其中xx从1到30
for i in {9901..9930}  #此处为什么要从9901-9930,下面再用sed命令去掉99,直接用01-30不可以吗?
do
xx=`echo $i | sed 's/99//g'`
useradd -g class1 std$xx
done


我是新的用户,社区积分200,但不知道为什么不能给帖子加分,抱歉!
...全文
53 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
steptodream 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 netxuning 的回复:]
引用 5 楼 marq0123 的回复:
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?


如果楼主想自动设置些密码的话也可以如此这般:
Perl code#!/bin/shfor i in {9901..9930}do
xx=`echo$i| sed's/99//g'`
acc=std$xx
pass=pass$xx
useradd-g class1 std$xx
echo-e"$pass\n$pass"| passwd$acc
done
[/Quote]
正确
netxuning 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 marq0123 的回复:]
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?
[/Quote]

如果楼主想自动设置些密码的话也可以如此这般:

#!/bin/sh

for i in {9901..9930}
do
xx=`echo $i | sed 's/99//g'`
acc=std$xx
pass=pass$xx
useradd -g class1 std$xx
echo -e "$pass\n$pass" | passwd $acc
done
steptodream 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 marq0123 的回复:]
引用 6 楼 steptodream 的回复:
引用 5 楼 marq0123 的回复:
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?

是处于没有设置密码的状态!

那怎么用他们登录啊,提示无法验证用户
[/Quote]
没有密码 直接登录的话是无法登陆的 除非你给他们设密码
通过ssh的密钥登陆的话 是可以登录的
marq0123 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 steptodream 的回复:]
引用 5 楼 marq0123 的回复:
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?

是处于没有设置密码的状态!
[/Quote]
那怎么用他们登录啊,提示无法验证用户
steptodream 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 marq0123 的回复:]
引用 3 楼 superever 的回复:
我想应该是这样的原因:
1、01-30在循环里面是数字,所以,01这个数字取到的字符串将会是"1",而不是"01",如果取9901的话,就不会,因为虽然i这个变量是作为数字的,但是在$i就是作为字符串处理的了,如果这个原因成立,那么99也可以换成88
2、useradd中指定uid参数,useradd -g class1 std$xx -u$i,但在代码中没有看到-u参数,不知是否遗漏

谢谢两位~!
回楼上,为什么需要uid,不可以采用系统默认的吗?

[/Quote]
uid也可以采用系统默认的 为了管理方便可以自己设
steptodream 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 marq0123 的回复:]
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?
[/Quote]
是处于没有设置密码的状态!
marq0123 2009-09-29
  • 打赏
  • 举报
回复
还有一个问题请教下:我新建的这些用户,他们的登录密码是多少呢?
marq0123 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 superever 的回复:]
我想应该是这样的原因:
1、01-30在循环里面是数字,所以,01这个数字取到的字符串将会是"1",而不是"01",如果取9901的话,就不会,因为虽然i这个变量是作为数字的,但是在$i就是作为字符串处理的了,如果这个原因成立,那么99也可以换成88
2、useradd中指定uid参数,useradd -g class1 std$xx -u$i,但在代码中没有看到-u参数,不知是否遗漏
[/Quote]
谢谢两位~!
回楼上,为什么需要uid,不可以采用系统默认的吗?
superever 2009-09-29
  • 打赏
  • 举报
回复
我想应该是这样的原因:
1、01-30在循环里面是数字,所以,01这个数字取到的字符串将会是"1",而不是"01",如果取9901的话,就不会,因为虽然i这个变量是作为数字的,但是在$i就是作为字符串处理的了,如果这个原因成立,那么99也可以换成88
2、useradd中指定uid参数,useradd -g class1 std$xx -u$i,但在代码中没有看到-u参数,不知是否遗漏
steptodream 2009-09-29
  • 打赏
  • 举报
回复
给帖子加分的话 左上角帖子管理->帖子加分 就可以了
steptodream 2009-09-29
  • 打赏
  • 举报
回复
要是直接用01-30 只能是1-30 比如std01 和 std1 是有区别的吧

23,117

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧