一、用户相关
1.1 用户的理解
用户:一个户口本中的一个成员
用户组:户口本中的所有成员组成的组
每个用户可以拥有多个用户组,只能有一个主组,可以有多个附属组;
每个用户组可以容纳多个用户;
1.2 用户和UID
linux系统中,每个用户都有一个默认的UID,相当于身份证号码;
root用户:UID=0
系统用户:UID=1-1000
普通用户:UID=1000-65535
1.3 用户信息相关的配置文件
用户信息文件 /etc/passwd
用户密码文件 /etc/shadow
用户通用设置文件 /etc/login.defs
1.3.1 用户信息文件 (/etc/passwd)
该文件下有7个字段:1.user_name 2.password 3.UID 4.GID 5.GECOS 6https://www.cnblogs.com/zy7941246/p/home/dir 7.shell
1.user_name:用户名
2.password:密码字段,但是不在此处显示,禁用x表示该字段为密码。以前是加密格式保存密码的位置。
现在,该列已经独立出来并存储在'/etc/shadow'的单独文件中,所以这里显示为’x‘
3.UID:用户UID
4.GID:用户GID
5.GECOS:用户描述,用户信息说明栏。字段可以是任意文本,通常是用户的实际姓名(办公电话或移动电话等)
6https://www.cnblogs.com/zy7941246/p/home/dir:用户家目录,用户的个人数据和配置文件的位置
7.shell:用户的登录shell,作为用户登入是所运行的程序,对于一个普通的用户,通常是提供给用户命令行提示符的程序。
1.3.2 用户密码文件 ( /etc/shadow)
该文件下有9个字段:1.name 2.password 3.lastchange 4.minage 5.maxage 6.warning 7.inactive 8.expire 9.blank
1.name:用户名
2.password:加密密码
3.lastchange:用户密码上次的更改时间(时间表示距离1970-01-01的天数)
4.minage:密码最小修改频率,0表示可以随意修改(天数)
5.maxage:密码有效期(天)
6.warning: 密码过期多少天会告警
7.inactive:账号失效天数
8.expire:账号有效期(以1970-01-01开始计算)
9.blank:保留
1.3.3 用户通用设置文件(/etc/login.defs)
MAIL_DIR:邮件存放目录;
PASS_MAX_DAYS:密码有效期最长时间;
PASS_MIN_DAYS:密码有效期最短时间;
PASS_MIN_LEN:密码最小长度;
PASS_WARN_AGE:密码到期提示时间;
UID_MIN:UID最小值;
ID_MAX:UID最大值;
GID_MIN:GID最小值;
GID_MAX:GID最大值;
CREATE_HOME:是否创建家目录;
UMASK:UMASK值;
USERGROUPS_ENAB:当删除用户后,同名组中不在存在用户的时候,是否删除该组。
1.4 用户的相关命令
语法:useradd 选项 用户名
选项:
实例1:
useradd -d /home/ubuntu -m ubuntu
此命令创建了一个用户ubuntu,其中-d指定主目录为/home/ubuntu,-m表示如果/home/ubuntu不存在直接创建主目录
朋友们,看到这里是不是觉得有点复杂,要记得的有点多。莫慌,下面来点简化版的!!!
1.4.1 查看用户信息
id 用户名(id root) //uid是用户uid唯一标识
1.4.2 创建用户
useradd -m 用户名 (useradd -m ubuntu) //系统不允许创建用户家目录时,-m就可以创建了;创建用户同时会创建一个同名的组,新用户默认加到这个组,即:ubuntu:ubuntu;创建用户的同时也会创建家目录
1.4.2.1 创建用户家目录
useradd -d 指定目录 用户名
useradd -d /home ubuntu (给指定的用户'ubuntu'指定家目录:/home)
1.4.3 切换用户
su 用户名
su root(注意此时要输入root用户的密码)
1.4.4 修改用户(usermod)
修改用户名: usermod 新用户名 旧用户名 (usermod ubuntu66 ubuntu)
修改用户密码: passwd 用户名 (passwd ubuntu66)
修改用户uid: usermod -u 新uid 用户名 (usermod -u 666 ubuntu66)
修改用户家目录:usermod -d 新家目录路径(usermod -d /home/ubuntu999)//默认路径为:/home/ubuntu66;意思是将原家目录'/home/ubuntu66'修改为'/home/ubuntu999'
1.4.5 锁定与解锁用户
锁定用户:usermod -L 用户名
解锁用户:usermod -U 用户名
1.4.6 删除用户
删除用户:userdel 用户名 //只会删除账号,不会删除配置文件和家目录
彻底删除用户:userdel -r 用户名 //删除账号,同时也删除用户的家目录和相关配置文件
二、组相关
组分为主要组、附属组。一个用户只能属于一个主要组,同时还可以属于多个附属组。
2.1 创建组(groupadd)
直接创建:groupadd 组名
自定义创建:groupadd -g 自定义的GID号 组名
2.2 修改组(groupmod)
修改组名:groupmod -n 新组名 旧组名
修改组gid:groupadd -g 新gid 组名
2.3 删除组(groupdel)
删除组:groupdel 组名 //主要组里面有用户删除不了,附属组里面有用户可以删
2.4 管理组用户
添加用户到主要组:useradd -g 组名 用户名
修改用户的主要组:usermod -g 组名 用户名
添加用户到附属组:useradd -G 组名 用户名
修改用户的附属组:usermod -G 组名 用户名 //修改用户的多个附属组(即用户属于多个附属组):usermod -g 组名1 组名2 用户名
追加用户到附属组:usermod -a -G 组名 用户名 //-a是append的简写
查看用户在那个组:id 用户名 //gid是所在主要组,groups所在附属组
举例:
id 用户名 的结果为:
uid=1000(ubuntu) gid=1001(dev) groups=1002(robin) 1003(tim)
结果分析:
用户名为'ubuntu', 主要组为'dev', 附属组为'robin','tim'
查看组内的所有用户:
groupmems -l 组名
2.5 组相关配置文件(/etc/group)
/etc/group有4个字段
1.group_name&group_user: 组名
2.password: x(密码段,相当于占位的作用)
3.gid: 主要组gid
4.user_name: 附属组名(可以是多个)
格式:group_name:password:gid:user_name (ubuntu:x:1000:robin)
格式分析:
组名为ubuntu,密码段为x,主要组id为1000,附属组为robin
三 、修改文件的所有者和属组
文件initial.cfg的属主:属组为:root:root
3.1 chown 所有者(属主) 文件 修改某个文件的属主/所有者
chown jerry initial.cfg
3.2 chown :(属主) 文件 修改某个文件的属组
chown :adm initial.cfg
3.3 chown 属主:属组 文件 修改某个文件的属主和属组
chown root:root initial.cfg