Linux用户与用户组管理

来源:互联网 发布:go并发编程实战 编辑:程序博客网 时间:2024/06/05 11:59

一、用户配置文件

    在Linux中主要是通过用户配置文件来查看、修改用户信息。

1. 用户信息文件/etc/passwd

这里写图片描述

root:x:0:0:root:/root:/bin/bash

第一字段:用户名称
第二字段:密码标记
           表明用户有密码,但因为所有用户都有该文件的读权限,所以密码并不会在这,而是在/etc/shadow中
第三字段:UID(用户ID)
           0 超级用户(Linux只认UID,而不是root这个用户名,如果把某个用户的UID改为0,那么系统就会将其当作管理员)
           1-499 系统用户
           500-65535 普通用户
第四字段:GID(用户初始组ID)
           初始组:用户一添加就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和用户名相同的组名
           附加组:用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个
第五字段:用户说明
第六字段:家目录
第七字段:登陆后的Shell(命令的解释器)
           普通用户的标准Shell为/bin/bash,系统用户一般都是/sbin/nologin

2. 影子文件/etc/shadow

这里写图片描述

root:…op.:17324:0:99999:7:::

第一字段:用户名
第二字段:加密密码
           加密算法升级为SHA512
           密码位如果为”!!”或”*”代表没有密码不能登陆
第三字段:密码最后一次修改时间(时间戳表示,天数++)
第四字段:两个密码的修改间隔,如3则表明三天之后才能修改密码
第五字段:密码有效期
第六字段:到期前的警告时间
第七字段:密码过期后的宽限天数,如果为-1表明密码永远都不会失效
第八字段:账号失效时间(时间戳)
第九字段:保留

3. 组信息文件/etc/group与组密码文件/etc/gshadow

这里写图片描述

root:x:0:

第一字段:组名
第二字段:组密码标志
第三字段:GID(组ID)
第四字段:组中附加用户

这里写图片描述

root:::

第一字段:组名
第二字段:组密码
第三字段:组管理员用户名

二、用户管理相关文件

1. 用户家目录(初始登录位置)

普通用户:/home/用户名,所有者和所属组都是此用户,权限700
超级用户:/root/,所有者和所属组都是root用户,权限550

2.用户邮箱

/var/spool/mail/用户名

3.用户模板目录

/etc/skel
      用户创建后会自动生成一些文件或目录如家目录等,/etc/skel中就可以添加一些文件如readme.txt,创建的新用户的家目录下就会出现readme.txt

三、用户管理命令

1. 用户添加

语法:useradd [-udcgGs] 用户名
          -u 指定用户UID
          -d 指定用户家目录
          -c(comment) 指定用户说明
          -g 指定用户初始组
          -G 指定用户附加组
          -s 指定用户登录shell,默认/bin/bash
例子:useradd -u 777 -G root,bin -d /home/dw -c “test add user” -s /bin/bash sc
注意:用户默认值配置文件/etc/default/useradd和/etc/login.defs

2. 修改用户密码

语法:passwd [-Slu’–stdin’] [用户名]
          -S 查询用户密码的密码状态(仅root可使用)
          -l 暂时锁定用户(仅root可使用,就是在shadow文件中的密码前加入了!!)
          -u 解锁用户(仅root可使用)
          –stdin 通过管道符输出的数据作为用户的密码

3. 修改用户信息与密码状态

语法: usermod [-ucGLU] 用户名
          -u 修改用户的UID
          -c 修改用户的说明信息
          -G 修改用户的附加组
          -L 临时锁定用户
          -U 解锁用户


语法:chage [-ldmMWIE] 用户名
          -l 列出用户的详细密码状态
          -d 修改密码最后一次更改时间
          -m 两次密码修改间隔
          -M 密码有效期
          -W 密码过期前警告天数
          -I 密码过期后宽限天数
          -E 账号失效时间
例子:chage -d 0 username 将密码修改日期改为0,这样用户一登陆就要修改密码

4. 删除用户

语法:userdel [-r] 用户名
          -r 删除用户的同时删除用户家目录

5. 用户切换

语法:su [-][-c] 用户名
          - 只使用-表明连带用户的环境变量一起切换
          -c 只执行一次命令而不切换用户身份
注意:如果只使用su root,那么使用env查看环境变量时仍然是原有的登录用户而不是root,需要添加-
例子:su - root -c “useradd username” 不切换为root,但是指定useradd命令添加用户

四、用户组管理命令

1. 添加用户组

语法:groupadd [-g] 组名
          -g 指定组ID

2. 修改用户组

语法:groupmod [-gn] 组名
          -g 修改组ID
          -n 新组名

3. 删除用户组

语法:groupdel 组名
注意:如果该组是某个用户的初始组就不能删除,如果仅仅是用户的附加组则可以删除

4.用户添加入组或从组中删除

语法:gpasswd [-ad] [用户名] [组名]
          -a 把用户加入组
          -d 把用户从组中删除

原创粉丝点击