linux服务器搭建之路13-用户/用户组管理

时间:2022-06-22
本文章向大家介绍linux服务器搭建之路13-用户/用户组管理,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

文章目录

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户/用户组管理是管理员绕不开的必备技能。

1. 与用户相关的系统文件

centos中与用户相关的系统文件有两个:/etc/passwd和/etc/shadow。前者记录用户相关的信息,后者记录用户相关口令(加密后的密码),后者只有管理员可以看见。两个文件都是一行表示一个与用户相关信息,中间用冒号(:)隔开。

1.1 /etc/passwd文件

/etc/passwd由―:分割成7个字段,每个字段的具体含义是:

  • (1) 用户名(如第一行中的root就是用户名),代表用户账号的字符串。
  • (2) 第二个字段存放的是该账号的口令。
  • (3) 这个数字代表用户标识号,也叫做uid。
  • (4) 表示组标识号,也叫做gid。
  • (5) 注释说明,该字段没有实际意义。
  • (6) 用户的家目录。
  • (7) 用户的shell。除了/bin/bash外还有/sbin/nologin比较多,它表示不允许该账号登录,建立账号时添加-s选项指定第七段的值。

1.2 /etc/shadow文件

该文件储存的密码相关的口令,只有管理员可见。分为9个字段。

  • (1) 用户名。
  • (2) 用户密码,这个密码已经加密,该文件属性设置为000,但是root账户是可以访问或更改的。
  • (3) 上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+(2012-1970)/4+1=15341。因为如果是闰年,则有366天。
  • (4) 要过多少天才可以更改密码,默认是0,即不限制。
  • (5) 密码多少天后到期。默认是99999,可以理解为永远不需要改。
  • (6) 密码到期前的警告期限。
  • (7) 账号失效期限。密码已经到期后多少天失效。
  • (8) 账号的生命周期。跟第三段一样。
  • (9) 作为保留用的,没有什么意义。

有了这些知识,就可以批量添加用户了。【待续/…】

2. 用户管理

2.1 增加用户

useradd [-options] 用户名

可选参数有: -c:加上备注文字,备注文字保存在passwd的备注栏中。

-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

-D:变更预设值。

-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.

-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

-G:指定用户所属的附加群组。

-m:自动复制到home目录下的文件所在的文件夹,默认是/etc/skel

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用的shell。默认值为/bin/bash。

-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。

最常用法:指定home目录,并从/etc/skel目录下复制home文件

useradd -d /data/liugroup/home/test1 -g LiuGroup -m -u 2000 test1

2.2 删除用户

userdel [-options] 用户名

可选参数有: -r 同时删除用户home目录 例如:

userdel -r test1

2.3 用户信息变更

usermod [-options] 用户名

可选参数有: -u 指定uid或属主名字 -g 指定gid或属组名字 -G 添加扩展组,可以一次性添加多个组,使用“,”分开 -s 指定shell -d 指定用户家目录,是会在/etc/paswd文件中修改。实际位置上的文件夹还需要自己创建

2.4 用户查看

id 用户名

例如:

id test1

3. 用户组管理

3.1 增加用户组

groupadd [-options] 组名

可选参数有: -g 指定gid 例如:

groupadd -g 5000 group1

3.2 删除用户组

groupdel 组名

4. 批量创建用户并修改密码

用倾向用python脚本调用系统命令来完成批量任务。

user_name = ['testt','tterwer']
user_id = [9000,9001]
user_dir = '/data/liugroup/home/'
for name, id in zip(user_name,user_id):
    # 创建用户
    add_cmd = 'useradd -d /data/liugroup/home/%s -g LiuGroup -m -u %d %s'%(name,id,name)
    os.system(add_cmd)
    #修改密码
    add_passwd = 'echo "nuture500" | passwd --stdin %s'%name
    os.system(add_passwd)
    path = os.path.join(user_dir,name)
    # 修改home用户目录所有者
    os.system('chown -R %s:LiuGroup %s'%(name, path))
    # 修改home用户目录权限
    os.system('chmod  700 %s'%path)

运行两个命令,第一个是useradd,添加用户,第二个是用一个技巧修改密码。"passwd123"是密码 其他批量方法: https://www.cnblogs.com/lanxuezaipiao/archive/2012/12/01/2797440.html