一、用户有哪些
-
root用户
- 定义:root用户是Linux系统中的最高权限用户,具有对系统所有资源的完全控制权。
- 特性:root用户可以执行系统中的任何操作,包括修改系统配置文件、安装软件、管理系统服务等。由于其拥有最高权限,因此root用户的误操作或恶意使用可能对系统造成严重损害。
- 安全性:为了提高系统的安全性,默认情况下,Ubuntu等Linux发行版禁用了root用户的直接登录,而是通过sudo命令来临时提升用户权限。
-
系统用户
- 定义:系统用户是指那些由系统自动创建并用于特定系统任务的用户,如运行服务、守护进程等。
- 特点:系统用户通常无法直接登录系统,它们的主要作用是支撑系统的正常运行。系统用户的UID(用户标识符)范围通常为1-499。
- 示例:常见的系统用户包括bin、nobody等,这些用户主要用于运行系统级的服务和进程。
-
普通用户
- 定义:普通用户是由系统管理员创建的,用于日常登录和操作系统的用户。
- 权限限制:普通用户的权限受到严格限制,只能访问和修改自己目录下的文件和资源。这种权限划分确保了系统的稳定性和安全性。
- 创建与管理:可以使用useradd命令创建新用户,使用usermod命令修改用户属性,如更改密码、家目录等。使用userdel命令可以删除用户账户及其主目录
二、什么是用户组
-
用户组
- 定义:用户组是一组用户的集合,它允许对多个用户应用相同的权限设置。
- 作用:通过将用户添加到组中,管理员可以轻松地为组内的所有用户设置相同的文件和目录权限。这简化了权限分配和管理的过程。
- 类型:用户组可以分为基本组和附加组。基本组是在创建用户时自动创建的同名组,而附加组则是用户可以加入的其他组。
- 管理:可以使用groupadd命令创建新组,使用groupmod命令修改现有组的属性,如更改GID(组标识符)。使用groupdel命令可以删除组。
三、查看所有用户
1、可以看到root为0:0权限是最高的,权限:用户组
2、bin、daemon为系统用户
3、yinzhen及下面的都为普通用户
4、cat是查看,/etc 根目录下的etc
权限:权限越大可以操作的文件更多,查看的内容越多
四、使用root查看用户更多信息
1、先命令su或su - ,切换到root超级用户
2、中间显示为密码,为密文
3、后面是时间戳
4、cd:返回
五、怎么添加用户?
1、useradd 选项 用户名
2、选项有哪些?
常用的使用 -d,-c, -m, -s, -u 就够了
-
-c, --comment "Comment":设置用户的注释字段,通常用于描述用户。
-
-d, --home HOME_DIR:指定用户的主目录(home目录)。例如,
useradd -d /home/newuser newuser
将创建一个名为newuser的新用户,并将其主目录设置为/home/newuser。 -
-e, --expiredate EXPIRE_DATE:设置用户帐户的过期日期,格式为YYYY-MM-DD。如果未指定,useradd将使用系统默认的过期日期或永不过期。
-
-f, --inactive INACTIVE:设置用户帐户在密码过期后多少天内被禁用。0表示立即禁用,-1表示不使用此功能。
-
-g, --gid GROUP:指定用户的初始组。组名必须已存在,组号码必须指代已存在的组。如果不指定,useradd会根据系统的默认值来设置。
-
-G, --groups GROUPS:指定用户所属的附加组列表。每个组之间用逗号分隔,没有空格。例如,
useradd -G adm,dialout newuser
将把新用户添加到adm和dialout这两个附加组中。 -
-m, --create-home:创建用户时同时创建主目录。如果主目录不存在,这个选项会创建它,并从/etc/skel目录中复制文件到新创建的主目录中。
-
-M, --no-create-home:即使系统范围的设置要求创建主目录,也不为用户创建主目录。
-
-N, --no-user-group:不要为用户创建同名组,但将用户添加到由-g选项或/etc/default/useradd中的GROUP变量指定的组。
-
-o, --non-unique:允许使用重复的UID创建用户账户。此选项仅与-u选项结合使用。
-
-p, --password PASSWORD:设置用户的密码(已加密)。注意,不推荐使用这个选项,因为加密过的密码会在命令行上可见。
-
-s, --shell SHELL:指定用户登录后使用的Shell。如果不指定,系统将使用默认的Shell。例如,
useradd -s /bin/zsh newuser
将设置新用户的登录Shell为/bin/zsh。 -
-u, --uid UID:指定用户的用户ID。如果未指定,系统将自动分配一个UID。
3、添加liming1用户,不使用选项
使用命令查看
最后添加了liming1用户
4、选项使用
以-u为例子
给定ID 1024,上面的liming1用户不给为随便分配
六、设置用户密码
1、passwd 选项 用户名
2、选项
常用的使用 -l,-u, -d, -S, -f 就够了
-
-a:显示密码的更改时间和上一次更改密码的提示。这可以帮助用户了解他们密码更改的历史记录。
-
-d:删除指定用户的密码,使用户在下次登录时需要设置新密码。这个选项常用于重置或初始化用户密码。
-
-e:使指定用户的密码立即过期,用户在下一次登录时必须更改密码。这对于要求用户定期更换密码的安全策略非常有用。
-
-f:强制执行;与
-d
选项结合使用,可以强制删除用户密码。 -
-k:设置只有在密码过期失效后,方能更新。这个选项可以用来限制用户在一定时间内不能更改密码。
-
-l:锁定用户帐号,禁止其登录。当一个用户帐户被锁定时,他将无法登录到系统。
-
-n:设置密码最小天数,防止用户在一定时间内更换密码。这样可以增加密码更改的安全性。
-
-q:静默模式,少量输出。这对于在脚本中使用passwd命令时非常有用。
-
-r:使用指定的root目录。这对于在一个具有不同root目录的系统上更改密码非常有用。
-
-S:显示密码最后修改的状态。它将显示密码过期状态以及上一次更改密码的时间。
-
-u:解锁已锁定的用户帐户。如果一个用户帐户因为某些原因被锁定了,可以使用这个选项来解锁。
-
-w:设置密码最大天数,确保用户定期更改密码。这有助于提高密码的安全性。
-
-x:设置密码的过期时间,超过该时间后用户必须更换密码。
3、为liming1用户添加密码
输入的密码是看不见的,要知道,要记住,显示无效密码,重新输入一次一样的就可以了
之后我们使用普通用户切换到 liming1 用户是需要密码验证的,root用户不需要
4、修改用户
(1)usermod 选项 参数
(2) 选项
常用:-g,-l,-L,-u,-U
-
-a:把用户追加到某些组中,仅与-G选项一起使用。
-
-c:修改用户的注释字段(/etc/passwd文件第五段comment)。例如,
usermod -c "New Comment" username
将用户名为username的用户的注释字段改为“New Comment”。 -
-d:修改用户的家目录,通常和-m选项一起使用。例如,
usermod -md /home/newdir username
将用户名为username的用户的家目录改为/home/newdir,并移动旧家目录中的内容到新位置。 -
-e:指定用户账号禁用的日期,格式YY-MM-DD。例如,
usermod -e 2024-12-31 username
将用户名为username的用户的账号禁用日期设置为2024年12月31日。 -
-f:设置密码过期后多少天禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1。例如,
usermod -f 7 username
将用户名为username的用户的密码在过期7天后禁用其账号。 -
-g:修改用户的主群组。例如,
usermod -g newgroup username
将用户名为username的用户的主群组改为newgroup。 -
-G:修改用户的附加群组。例如,
usermod -G group1,group2 username
将用户名为username的用户的附加群组设为group1和group2。 -
-l:修改用户的登录名称。例如,
usermod -l newname oldname
将原用户名为oldname的用户的登录名改为newname。 -
-L:锁定用户的密码。例如,
usermod -L username
将锁定用户名为username的用户的密码。 -
-m:移动用户的家目录,通常和-d选项一起使用。例如,
usermod -md /home/newdir username
不仅将用户名为username的用户的家目录改为/home/newdir,还会移动旧家目录中的内容到新位置。 -
-s:修改用户登录后使用的shell。例如,
usermod -s /bin/bash username
将用户名为username的用户的登录shell改为/bin/bash。 -
-u:修改用户的UID。例如,
usermod -u 5000 username
将用户名为username的用户的UID改为5000。 -
-U:解除密码锁定。例如,
usermod -U username
将解除用户名为username的用户的密码锁定状态
5、修改liming1用户的UID
UID是唯一的
修改成功
七、删除用户
1、userdel 选项 用户名
2、选项
-
-r:此选项用于在删除用户的同时,删除用户的主目录以及目录中的所有文件。这有助于确保与该用户相关的所有数据都被彻底清除,但使用此选项时应谨慎,以免误删重要数据。
-
-f:强制删除用户账号,即使用户当前正在登录或拥有正在运行的进程。这个选项非常有用,当需要删除一个可能仍在使用的账户时,可以确保操作成功进行。然而,需要注意的是,强制删除用户可能会导致系统进入不一致的状态,因为该用户已有的SSH链接不会被断开。
3、删除 liming1 用户
八、用户切换
1、su 选项 用户名
2、选项
-
-:强制使用目标用户的环境变量。当加上此选项时,切换到的用户环境将与该用户登录时的环境一致,包括工作目录、HOME、SHELL、USER等环境变量。
-
-c COMMAND:指定命令在新用户身份下执行。例如,
su -c "ls -l" root
将切换到root用户并执行ls -l
命令,之后恢复原来的身份。 -
-l 或 --login:等同于使用-选项。这个选项也会使shell成为可登录的shell,即加载目标用户的登录配置文件。
-
-m 或 -p 或 --preserve-environment:保持当前环境变量不变。使用此选项时,切换用户后不会改变当前环境变量的值。
-
-s SHELL:指定shell程序。例如,
su -s /bin/bash root
将切换到root用户并使用/bin/bash作为shell。
3、切换到Addy1,root切换不需要密码
九、查看用户的所属用户组
1、groups 用户名
2、查看Addy1 的所属用户组
这个组只有他自己这个用户
十、添加用户组
1、groupadd 选项 参数
2、选项
常用的有:-g , -r , -o
-
-f, --force:如果指定的组已经存在,此选项将使命令仅以成功状态退出。当与-g选项一起使用时,并且指定的GID(组ID)已经存在时,它会选择一个唯一的GID。
-
-g, --gid GID:指定新用户组的组ID。这个值必须是唯一的,除非使用了-o选项。默认情况下,系统会使用大于或等于GID_MIN的最小值,并且大于每个其他已存在的组的GID。
-
-K, --key KEY=VALUE:重写/etc/login.defs文件中的默认值,如GID_MIN、GID_MAX等。可以指定多个这样的选项。
-
-o, --non-unique:允许添加一个非唯一的GID值。
-
-p, --password PASSWORD:为新用户组设置加密过的密码。默认情况下,密码是禁用的。注意,不推荐使用这个选项,因为密码(或加密过的密码)可能会被列出而看到。您应该确保密码符合系统的密码政策。
-
-r, --system:创建一个系统组。新的系统组的数字标识符将在SYS_GID_MIN到SYS_GID_MAX范围内选择,这些范围定义在login.defs文件中,而不是GID_MIN到GID_MAX范围内。
-
-R, --root CHROOT_DIR:将修改应用到CHROOT_DIR目录,并使用配置。
3、创建用户组group1,指定GID为2000
这里必须使用root用户,不然会错误
十一、修改用户组
1、groupmod 选项 用户组
2、选项
常用的:-g,-n,-o
-
-g, --gid GID:指定新的组ID(GID)。此选项用于更改指定组的GID。例如,
sudo groupmod -g 2001 mygroup
将mygroup的GID修改为2001。 -
-n, --new-name NEW_GROUP:指定新的组名。此选项用于更改指定组的名称。例如,
sudo groupmod -n newgroup mygroup
将mygroup的名称改为newgroup。 -
-o, --non-unique:允许使用非唯一的GID。当与-g选项一起使用时,此选项允许指定的GID已被其他组使用。例如,
sudo groupmod -o -g 2001 existinggroup
即使2001已被其他组使用,也将existinggroup的GID修改为2001。 -
-p, --password PASSWORD:提供加密密码。虽然此选项可用于指定新密码,但请注意,不推荐使用此选项,因为密码(或加密过的密码)可能会被列出而看到。
-
-R, --root CHROOT_DIR:指定在CHROOT_DIR目录中应用更改,并使用CHROOT_DIR目录中的配置文件。这通常用于在特定环境中进行测试或管理
3、修改用户组group1的GID为3000,且改名为group2
同样的组和名必须是唯一的,否则会出现下面的情况,不任何显示说明成功
十二、删除用户组
1、groupdel 用户组名
2、删除group3的用户组
十三、管理用户组
一个用户可以属于多个用户组,一个用户组有可能存在多个用户
1、gpasswd 选项 用户名(基本组) 用户组(附加组)
2、选项
常用的:-a, -d ,-A , -r
-
-a, --add:将指定的用户添加到组中。例如,
sudo gpasswd -a username groupname
将用户名为username的用户添加到名为groupname的组中。 -
-d, --delete:从指定的组中删除用户。例如,
sudo gpasswd -d username groupname
将用户名为username的用户从名为groupname的组中删除。 -
-A, --administrators:指定组管理员。例如,
sudo gpasswd -A adminuser groupname
将adminuser设置为groupname组的管理员。 -
-M, --members:设置组成员列表,用逗号分隔。例如,
sudo gpasswd -M user1,user2,user3 groupname
将user1、user2和user3设置为groupname组的成员。 -
-r, --remove-password:删除组密码。例如,
sudo gpasswd -r groupname
将删除名为groupname的组的密码。 -
-R, --restrict:限制只有组管理员才能修改组成员列表。这个选项通常与-A选项一起使用。
-
-S, --syslog:将消息记录到syslog而不是标准输出。这有助于在需要时跟踪gpasswd命令的使用情况。
3、把Addy和itcast添加到itheima组
4、查看这个组有哪些用户
5、删除用户组中的用户
注意:我们不能删除本身,也就是基本组,成立这个组的BOSS