作用:保存用户名称、宿主自录、登录Sell等基本信息,每一行对应一个用户的帐号记录
文件位置:
/etc/passwd
基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改。在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一 定的安全隐患。后来经改进后,将密码转存入专门的shadow文件中, 而passwd文件中仅保留密码占位符“x”。
某条记录格式:root:x:0:0:root:/root:/bin/bash
/etc/shadow
root:$6$LOm1iAJRGPY5SRjO$GbpwoyzdV6Gqf6FX14R6vRosIqm.xHScEcGp80r5w3T19U3k.p6nH7B1YEy2LPYch.8XOF1ga3KcXOrHgKHX30::0:99999:7:::
普通用户忘记密码怎么办?passwd 用户名
格式:useradd [选项]... 用户名
使用useradd添加账户完成以下任务:
常用选项:
选项 | 作用 |
---|---|
-u | 指定用户的UID号,要求该UID号码未被其他用户使用 |
-d | 指定用户的宿主目录位置(当与-M一起使用时,不生效)只能用绝对路径指定目录,且不需要事先创建目录 |
-e | 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 |
-g | 指定用户的基本组名(或使用GID号),对应的组名必须已存在 |
-G | 指定用户的附加组名(或使用GID号),对应的组名必须已存在 |
-M | 不建立宿主目录。(一般用于系统用户账号) |
-s | 指定用户的登录Shell,(比如/bin/bash为可登陆系统,Isbin/nologin和/bin/false为禁止用户登陆系统) |
示例:
[root@yxp ~]# useradd red
//添加名为red的用户
[root@yxp ~]# tail -1 /etc/passwd
red:x:1004:1004::/home/red:/bin/bash
//显示/etc/passwd 末尾一行,看有没有添加成功
[root@yxp ~]# tail -1 /etc/shadow
red:!!:18873:0:99999:7:::
//显示/etc/shadow 末尾一行
[root@yxp home]# ls
red susan test test1 test2 yxp
//可以看到red家目录在/home
[root@yxp home]# cd red
[root@yxp red]# ls -a
. .. .bash_logout .bash_profile .bashrc .mozilla
//都是隐藏文件
[root@yxp red]# ls -A
.bash_logout .bash_profile .bashrc .mozilla
[root@localhost ~]# useradd -u 2000 test1
//添加名为test1,UID号为2000的普通用户
[root@localhost ~]# id test1
uid=2000(test1) gid=2000(test1) 组=2000(test1)
//可以看到UID变成了2000,GID默认和UID一致
[root@localhost opt]# useradd -d /opt/rr test2
//添加名为test2,并指定宿主目录位置在/opt/rr下
[root@localhost opt]# tail -2 /etc/passwd
//显示/etc/passwd 末尾2行
test1:x:2000:2000::/home/test1:/bin/bash
test2:x:2001:2001::/opt/rr:/bin/bash
//可以看到test2用户的宿主目录在/opt/rr下
[root@localhost opt]# useradd -e 2021-9-5 test3
//添加普通用户名称为test3
[root@localhost opt]# tail -1 /etc/shadow
test3:!!:18874:0:99999:7::18875:
//显示/etc/passwd 末尾2行,可以看到字段8:帐号失效时间是18875,从1970年后的18875天
[root@localhost opt]# useradd -g test1 kyky
//添加普通用户名称为kyky,指定用户的基本组名test1,指定的属组必须存在
[root@localhost opt]# id kyky
uid=2002(kyky) gid=2000(test1) 组=2000(test1)
//可以看到属组添加成功
[root@localhost opt]# tail -1 /etc/passwd
kyky:x:2003:2000::/home/kyky:/bin/bash
//GID组号变成2000,如果不指定,默认是和UID一样为2003
[root@localhost opt]# useradd -G test2 kyky1
//添加普通用户名称为kyky,指定用户的附加组名test2,指定的属组必须存在
[root@localhost opt]# id kyky1
uid=2003(kyky1) gid=2003(kyky1) 组=2003(kyky1),2001(test2)
[root@localhost opt]# cd /home/
[root@localhost home]# useradd -M test3
//添加名为test3的用户,但是不创建宿主目录
[root@localhost home]# ls
kyky kyky1 test1 user1
文件来源
新建用户帐号时,从**/etc/skel**目录中复制而来,比如默认bin/bash,默认家目录
主要的用户初始配置文件**(对用户有效)**
PS:
1.修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
2.修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效;
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码。
普通用户却只能执行单独的“passwd"命令修改自己的密码。
格式
passwd 用户名
例如:
[root@yxp red]# passwd red
更改用户 red 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
选项 | 功能 |
---|---|
-d | 清空指定用户的密码,仅使用用户名即可登录系统 |
-l | 锁定用户账户,锁定的用户账号将无法再登录系统。(一定要事先设好密码) |
-S | 查看用户账户的状态(是否被锁定)。 |
-u | 解锁用户账户 |
[root@localhost home]# echo "123123" | passwd --stdin kyky5
更改用户 kyky5 的密码 。
passwd:所有的身份验证令牌已经成功更新。
//设置密码
[root@localhost home]# passwd -d kyky5
清除用户的密码 kyky5。
passwd: 操作成功
//清除用户密码
[root@localhost home]# passwd -l kyky5
锁定用户 kyky5 的密码 。
passwd: 操作成功
//锁定用户账户,锁定的用户账号将无法再登录系统。(一定要事先设好密码)
[root@localhost home]# passwd -S kyky5
kyky5 LK 2021-09-04 0 99999 7 -1 (密码已被锁定。)
//查看用户kyky5用户的状态
[root@localhost home]# passwd -uf kyky5
解锁用户 kyky5 的密码。
passwd: 操作成功
格式:usermod [选项]... 用户名
选项 | 作用 |
---|---|
-u | 修改用户的UID号 |
-d | 修改用户的宿主目录位置 |
-e | 修改用户的账户失效时间,可使用YYYY–MM-DD的日期格式 |
-g | 修改用户的基本组名(或使用GID号) |
-G | 修改用户的附加组名(或使用GID号) |
-M | 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录 |
-s | 指定用户的登录Shell |
以上上面选项与useradd命令中的含义相同 | |
-l | 更改用户账号的登录名称 格式:usermod -l 新名称 旧名称 |
-L | 锁定用户账户 |
-u | 解锁用户账户 |
[root@localhost home]# usermod -l yxp1 test1
//修改用户名test1称改为yxp1
[root@localhost home]# id yxp1
uid=2000(yxp1) gid=2000(test1) 组=2000(test1)
[root@localhost home]# usermod -u 11000 yxp1
//修改用户UID号
[root@localhost home]# id yxp1
uid=11000(yxp1) gid=2000(test1) 组=2000(test1)
[root@localhost home]# usermod -L yxp1
//锁定账户yxp1
[root@localhost home]# passwd -S yxp1
yxp1 LK 2021-09-04 0 99999 7 -1 (密码已被锁定。)
//查看用户状态
[root@localhost home]# passwd -S yxp1
yxp1 LK 2021-09-04 0 99999 7 -1 (密码已被锁定。)
[root@localhost home]# passwd -uf yxp1
解锁用户 yxp1 的密码。
passwd: 操作成功
[root@localhost home]#
[root@localhost home]# usermod -g test2 -G wheel yxp1
//修改用户yxp1基本组为test2和附加组为wheel
[root@localhost home]# id yxp1
uid=11000(yxp1) gid=2001(test2) 组=2001(test2),10(wheel)
//wheel比root权限小,比用户权限大
[root@localhost home]#
[root@localhost home]# cat /etc/passwd |grep yxp1
yxp1:x:11000:2001::/opt/yxp1:/bin/bash
[root@localhost home]# usermod -s /sbin/nologin yxp1
//修改用户yxp1登录shell
[root@localhost home]# cat /etc/passwd |grep yxp1
yxp1:x:11000:2001::/opt/yxp1:/sbin/nologin
//从/bin/bash变为/sbin/nologin
格式: userdel [-r] 用户名 //结合-r可以删除宿主目录
[root@yxp red]# userdel test1
//删除用户,此时家目录里的宿主目录不会被删除,结合-r可以一次性删除
[root@yxp red]# ls -a /home
. .. red susan test test1 test2 yxp
[root@yxp red]# rm -rf test1
[root@yxp red]# ls -a /home
. .. red susan test test1 test2 yxp
[root@yxp red]#
[root@localhost home]# cd /home/
[root@localhost home]# ls
kyky kyky1 kyky5 test1 user1
[root@localhost home]# userdel -r kyky5
//结合-r可以一次性删除家目录下的宿主目录
[root@localhost home]# ls
kyky kyky1 test1 user1
文件位置:
格式:
[root@yxp red]# head /etc/group
root:x:0:
bin:x:1:
格式:
groudadd [-g GID] 组账号名
示例:
[root@yxp ~]# groupadd -g 1800 admin //添加一个组号1800名称为admin的组
[root@yxp ~]# tail -2 /etc/group //查看末尾两行组号信息
red:x:1004:
admin:x:1800: //添加成功
==设置组账号密码,但是该功能极少使用,实际上更多的管理用户成员、添加/删除组成员
- 格式: gpasswd [选项]...组账号名
常用选项:
选项 | 作用 |
---|---|
-a | 向组内添加一个用户 |
-d | 从组内删除一个用户成员 |
-M | 定义组成员列表,以逗号分隔**(重新定义,不是追加)** |
示例1:
格式:groupdel 组账号名
格式:groups [用户名]
示例:
[root@yxp ~]# groups user1
user1 : user1 mask
格式:id [用户名]
示例:[root@yxp ~]# id user2
uid=1007(user2) gid=1007(user2) 组=1007(user2),2000(mask)
PS:需要先安装finger安装包
格式:finger [用户名]
示例:
[root@yxp ~]# finger yxp
Login: yxp Name: yxp
Directory: /home/yxp Shell: /bin/bash
Last login 五 9月 3 11:12 (CST) on pts/0
No mail.
No Plan.
w [选项] 用户名
第一行信息输出内容包含的信息说明如下:
第二行信息包括如下字段说明:
在Linux文件系统的安全模型中,为系统中的文件赋予了两个属性:访问权限和文件所有者,简称**“权限”和“归属”**。其中访问权限包括读取、写入、可执行三种基本类型,归属包括属主(拥有该文件的用于账号)、属组(拥有该文件的组账号)。Linux系统根据文件和目录的访问权限、归属来对用户访问数据的过程进行控制。
[yxp@yxp root]$ ll /etc/passwd
-rw-r--r--. 1 root root 2387 9月 3 22:57 /etc/passwd
格式:
字符形式: chmod [ugoa···][+-=][rwx] 文件...
数字形式: chmod nnn 文件/目录...
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
---|---|---|---|---|---|---|---|---|---|
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
权限分配 | 文件所有者 | 文件所属组 | 其他用户 | ||||||
八进制数表示 | 7 | 7 | 7 |
在表示属主、属组用户或者其他用户对该文件的访问权限时,主要使用了三种不同的权限字符,权限字符也可以分别表示为八进制数字4、2、1,表示一个权限组合时需要将数字进行累加。
各自含义如下:
常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件
字符组合“[ugoa···][+ - =][rwx]”或者数字组合“nnn”的形式表示要设置的权限模式,其中“nnn”为需要设置的具体权限值,如“755”、“644”等,而“[guoa···][+ - =][rwx]”的形式中,三个组成部分的含义及用法如下所述:
示例:不指定ago,默认所有都设置
示例:
格式:
chown/chgrp 属主 文件或目录
chown/chgrp :属组 文件或目录
chown/chgrp 属主:属组 文件或目录
常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)
示例:
我们新建一个新的文件或者目录时,它的默认权限时什么呢,这个与umask有关。
1 .unmask作用:
格式:
umask查看: umask
umask设置: umask 000
mg-PvQ2G6ku-1630747401616)]
示例:
[外链图片转存中…(img-JaKE7YDT-1630747401617)]
格式:
chown/chgrp 属主 文件或目录
chown/chgrp :属组 文件或目录
chown/chgrp 属主:属组 文件或目录
常用选项: -R:递归修改指定目录下所有子项的权限(包括目录中的文件)
示例:
[外链图片转存中…(img-l9WuoXBE-1630747401617)]
[外链图片转存中…(img-TxDR7h1j-1630747401618)]
[外链图片转存中…(img-juJdMd97-1630747401618)]
我们新建一个新的文件或者目录时,它的默认权限时什么呢,这个与umask有关。
1 .unmask作用:
格式:
umask查看: umask
umask设置: umask 000