useradd命令
[root@ikta ~]# useradd testuser4 -c "testyuser14" -d /home/testuser14 -e "2021-11-24"
命令格式: useradd [选项]
常用选项:
-c | 注释信息——设定与用户相关的说明信息(如,真实姓名、邮箱地址等)。 |
---|---|
-d | 目录——设定用户的家目录(默认为/home/用户名)。 |
-e | YYYY-MM-DD——设置用户的失效日期,此日期后将不能使用该账号。 |
-f | 天数——指定密码到期后多少天账号被禁用,若指定为0,则表示账号到期后被立即禁用;若指定为-1,则表 示账号过期后不被禁用(即密码永不过期)。 |
-g | 组名或GID号——为用户指定所属的基本组,该组在指定时必须已存在。 |
-G | 组名或GID号列表——为用户指定所属的附加组,各组在指定时已存在,附加组可以有多个,组之间用“,” 分隔。 |
- M | 不创建用户家目录。 |
-N | 不创建与用户名同名的基本组。 |
-p | 密码——指定用户的登录密码。 |
-s | shell名——指定用户登录后使用的Shell,默认是bash。 |
-u | 用户号——设置账号的UID,默认是已有用户的最大UID加1。如果同时有-o选项,则可以重复使用其他 用户的标识号。 |
-g | (后跟用户名) 加的是附加组 |
[root@ikta home]# useradd testuser11 -g testuser10
testuser10:x:1133:1134::/home/testuser10:/bin/bash
testuser11:x:1134:1134::/home/testuser11:/bin/bash
-G(后跟组ID)
[root@ikta home]# useradd testuser12 -G 1111,1123,1133
[root@ikta home]# tail /etc/group
testuser1:x:1003:
testuser2:x:1004:
testuser3:x:1005:
testuser4:x:1006:
testuser5:x:1111:testuser12
testuser6:x:1123:testuser12
testuser7:x:1133:testuser12
-M(不创建用户家目录)
[root@ikta home]# useradd testuser15 -M
[root@ikta home]# ls -l | grep testuser15
[root@ikta home]#
-s(指定SHELL类型)
[root@ikta home]# useradd testuser16 -s /bin/sh
[root@ikta home]# tail -1 /etc/passwd
testuser16:x:1137:1137::/home/testuser16:/bin/sh
groupadd命令
命令格式: groupadd [-r] 用户组名称
-g | GID——指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。 |
---|---|
-r | 建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。 |
示例:向系统中添加一个组ID为1000,组名为group1的新组。
-g (指定组ID)
[root@ikta ~]# groupadd group1 -g 1100
[root@ikta ~]# tail -1 /etc/group
group1:x:1100:
-r(添加一个1~999的系统账号)
[root@ikta ~]# groupadd -r group2
[root@ikta ~]# tail -1 /etc/group
group2:x:975:
gpasswd命令
命令格式: gpasswd [选项] [用户] [组]
只有root用户和组管理员才能够使用这个。
选项:
-a | ——把用户加入组 |
---|---|
-d | ——把用户从组中删除。 |
-M | ——可同时添加多个用户 |
-A | ——给组指派管理员。 |
示例:将testuser3用户加入group1组
[root@ikta ~]# gpasswd -a testuser3 group1
Adding user testuser3 to group group1
passwd命令
Linux的账户必须设置密码后,才能登录系统
命令格式:passwd [账户名] 常用选项:
-d | ——清空指定用户的口令。这与未设置口令的账户不同,未设置口令的账户无法登录系统,而口令为空的 账户可以。 |
---|---|
-e | ——强迫用户下次登录时必须修改口令。 |
-i | ——口令过期后多少天停用账户。 |
-l | ——锁定(停用)用户账户。 |
-n | ——指定口令的最短存活期。 |
-S | ——显示账户口令的简短状态信息(是否被锁定)。 |
-u | ——解锁用户账户。 示例1:若当前用户为root,请修改root用户的密码,并为zhang3用户设置密码 |
usermod命令
命令格式:usermod [选项] username
常用的选项包括-c,-d,-m,-g,-G,-s,-u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,还可以使用如下选项:
-l | 新用户名——更改账户的名称,必须在该用户未登录的情况下才能使用。 |
---|---|
-L | ——锁定(暂停)用户账户,使其不能登录使用。 |
-U | ——解锁用户账户。 |
示例1:将用户admin的家目录移至/home目录下。
示例2:将用户wang5的名称修改为wangwu,并暂停使用该账号。
[root@ikta home]# passwd -l testuser18 --------锁定用户账户
Locking password for user testuser18.
passwd: Success
[root@ikta home]# passwd -S testuser18 -------查看用户状态信息
testuser18 LK 2021-11-24 0 99999 7 -1 (Password locked.)
[root@ikta home]# usermod -U testuser18 --------解锁用户
[root@ikta home]# passwd -S testuser18
testuser18 PS 2021-11-24 0 99999 7 -1 (Password set, SHA512 crypt.)
groupmod命令
命令格式: groupmod 选项 用户组
常用选项:
-g | GID——为用户组指定新的组标识号。 |
---|---|
-n | 新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。 |
示例:将组group1的GID修改为2000,组名修改为group11。
userdel命令
命令格式:userdel [-r] 账户名
-r | ——在删除该账户的同时,一并删除该账户对应的主目录。 |
---|
su命令
命令格式:su [用户名]
从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的 密码且验证成功后才可切换。
su命令和su -命令区别就是:
su只是切换了root身份,但Shell环境仍然是普通用户的Shell;而su -连用户和Shell环境一起切换成root 身份了。
文件权限
第1个字符:表示该文件的类型,其类型标识符和对应的文件类型。
第2~4个字符:表示该文件的属主用户(文件的所有者)对该文件的访问权限。
第5~7个字符:表示该文件的属组用户(与属主用户同组的各成员用户)对该文件的访问权限。
第8~10个字符:表示其他所有用户对该文件的访问权限。
第11个字符:用来表示是否有一个可替换的访问控制措施应用在该文件上。当为一个空格时,表示系统没 有可替换的访问控制措施;当为“.”字符时,代表该文件使用了SElinux安全上下文,且未使用其他的访问控制 措施;当为“+”字符时,表示该文件在使用SElinux安全上下文的同时,还混用了其他访问控制措施(如:访问控 制列表ACL)。
文件的权限针对三类对象进行定义
owner 属主,缩写u
group 属组,缩写g
other 其他,缩写o
每个文件针对每类访问者定义了三种主要权限
r:Read 读
w:Write 写
x:eXecute 执行
另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
注意:root账户不受文件权限的读写限制,执行权限受限制
chmod命令
命令格式 1:chmod [-选项] [ugoa] [±=] [rwx] 文件或目录…
命令格式2:chmod [-选项] nnn 文件或目录…
其中:
ugoa——表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属 主(所有者);g(group)表示属组内的用户;o(others)表示其他任何用户;a(all)表示所有用户(即u+g+o)。
+|-|= ——表示设置权限的操作动作,+代表添加某个权限;-代表取消某个权限;=表示只赋予给定的权限,并 取消原有的权限。
rwx——用字符形式表示的所设置的权限,可以是其中字母中的一个或组合。
nnn——用三位八进制数字表示的所设置的权限。
常用的选项有:
-R | ——递归修改指定目录下所有文件、子目录的权限。 |
---|
权限值的表示方法2——使用字符串表示
命令格式 :chmod [-R] {[ugoa][±=][rwxst]} <文件名或目录名>
用户对象+|-|=权限符
用户对象
u | ——拥有者 |
---|---|
g | ——拥有者所属的用户组 |
o | ——其他用户 |
a | ——所有的 |
+ | —增加某项权限 |
- | —去掉某项权限 |
= | —赋予某项权限。 |
权限符——r、w、x、s
若通过r、w、x、s表示方式来更改权限,则只需在chmod命令中表达出权限需要改变的部分即可,该方 法可视为是相对修改法。
示例:将目录/usr/src及其下面的所有子目录和文件的权限改为所有用户对其都有读、写权限
umask
去查看系统给我们的umask值
这个是系统文件的/etc/profile
看一个式子
666和777是系统给我们的默认值,减去022就得到我们文件644目录755的默认值
同样有了suid和sgid后变为四位,万变不离其宗,一样的道理
练习题
创建下列用户、组和组成员资格:
1.创建名为 sysmgrs 的组
2.创建用户 natasha 同时指定sysmgrs作为natasha的附加组
3.创建用户 harry 同时指定 sysmgrs作为harry的附加组
4.创建用户 sarah 指定shell类型为/sbin/false(无权访问系统上的交互式 shell)
且不是 sysmgrs 的成员
5.设置natasha 、 harry 和 sarah 的密码都是 123
6.创建用户lockuser, 并指定家目录为/home/lock, 然后锁定该用户
7.创建用户limituser, gid为1555,userid为1666, 让其密码在10天后过期
8.解锁lockuser, 并设定下次登录时必须修改密码
9.让natasha具备修改 harry密码的权限(sudo)
使用命令visudo
首先在Host Aliases这一项里添加主机别名
添加用户别名AAA,即我们要使用操作的用户
然后添加一项修改密码的命令别名CHPASS ,对应是passwd命令的绝对路径,然后需要修改密码,所以再添加vim的绝对路径,和要修改内容的绝对路径
然后在这一块添加
用户别名 主机别名=(root) 命令别名
EXC退出 :wq 保存
切到natasha用户使用sudo命令(借助root的权限)执行passwd命令
输入natasha密码
输入harry的新密码
完成!
10.创建用户testuser并设置密码,修改用户名为normaluser
不推荐!因为是明文保存
11.删除lockuser
12.
755—》对应什么权限(root创建目录的时候权限)
rwxr-xr-x
600—》对应什么权限
rw-------
644—》对应什么权限(root创建文件的时候权限)
rw-r–r--