目录
一.管理用户账号和组账号
1.用户账号和组账号概述:
(1)用户账号:基于身份对资源访问进行控制
【1】超级用户:root,是 Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
【2】普通用户:由root或其他管理员创建的用户,默认只具有低权限。
【3】程序用户:用于给应用程序运行的低权限用户,一般不允许登录系统。
(2)组账号:用户账户的集合,用于组织用户账户
【1】基本组:用户加入的第一个组(基本组账号只有一个)
【2】附加组:除了基本组以外用户额外加入的的组
(3)UID和GID:是用户或组的ID
【1】UID:用户账户的ID
【2】GID:组账户的ID
【3】UID和GID的范围
root的UID和GID都固定为0
程序用户默认的UID/GID范围:centos7以前为 1~499;从centos7开始为 1~999
普通用户默认的UID/GID范围:centos7以前为 500~60000;从centos7开始为 1000~60000
2.用户账号文件
(1)/etc/passwd :保存用户名称、宿主目录、登录Shell 等基本信息
【1】文件位置:/etc/passwd ;
【2】每一行对应一个用户的账号记录
【3】7个字段的含义
root :x :0 :0 :root: /root: /bin/bash
1用户名
2密码占位符
3UID
4GID
5用户说明
6家目录
7登录shell的许可
允许登录系统/bin/bash
不允许登录系统/sbin/nologin或/bin/false
(2)/etc/shadow:保存用户的密码、账号有效期等信息
【1】文件位置:/etc/shadow;
【2】每一行对应一个用户的密码记录
【3】9个字段的含义
root: $6$VyOUGqOC$v5HlLM1wagZC/FwGfnrtJFnlT :18445 :0 :99999 :7 : : :
1用户名
2.密码字符串
3.上一次修改密码的时间
4.密码最短有限期
5.密码最长有限期
6.密码过期提前告警的时间
7.密码过期禁用用户的时间
8.账号失效的时间
9.空(保留字段)
从1970.1.1开始算起 默认为0不限制 默认为99999永不过期 默认为7
3.添加用户账号-useradd
useradd/adduser [选项]... 用户名
常用选项
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell
比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统
[root@192 ~]# useradd lxp -u 1314 #指定lxp的UID为1314
[root@192 ~]# id lxp #GID和组默认为1314(没有对应的组)
uid=1314(lxp) gid=1314(lxp) 组=1314(lxp)
[root@192 ~]#
[root@192 ~]#useradd abc -u 9527 -M -s /sbin/nologin
abc:x:9527:9527::/home/abc:/sbin/nologin
#设置 abc 的UID/GID为9527且设置不给登录和步建立宿主目录
[root@192 home]# useradd lll -G lxp
[root@192 home]# id lll
uid=9528(lll) gid=9528(lll) 组=9528(lll),1314(lxp)
[root@192 home]#
设置lll的附加组为 lxp 的组
[root@192 home]# useradd lisi -M -s /sbin/nologin -e 2025-04-14
[root@192 home]# ls
liu lll lx
[root@192 home]# vi /etc/passwd
lisi:x:9529:9529::/home/lisi:/sbin/nologin
指定用户的账户失效时间为2025年4月14号,且设置不给登录和不建立宿主目录
4.设置,更改用户口令-asswd
root用户可以指定用户名作为参数,对指定账号的密码进行管理;不指定用户名时,修改当前账号的密码;普通用户却只能执行单独的“passwd”命令修改自己的密码。
passwd [选项]... 用户名
常用选项
passwd -d:清空指定用户的密码,仅使用用户名即可登录系统。
passwd -l:锁定用户账户,锁定的用户账号将无法再登录系统。
passwd -S:查看用户账户的状态(是否被锁定)。
passwd -u:解锁用户账户
[root@192 ~]# passwd lisi #更改Lisi 的密码
更改用户 lisi 的密码 :
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@192 ~]# passwd #不指定用户,修改 root 的密码
更改用户 root 的密码 :
新的 密码:
无效的密码: 密码少于 8 个字符
passwd:所有的身份验证令牌已经成功更新
[root@192 ~]# passwd -d lisi #清空lisi的密码
清除用户的密码 lisi
passwd: 操作成功
[root@192 ~]# passwd -l lisi #锁定lisi用户
锁定用户 lisi 的密码
passwd: 操作成功
[root@192 ~]# passwd -u lisi #解锁lisi用户
解锁用户 lisi 的密码。
passwd: 操作成功
[root@192 ~]# passwd -S lisi
lisi PS 2024-04-14 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@192 ~]#
#查看用户锁定状态
echo 'XXXX' | passwd --stdin 用户名
echo 用户名:密码 | chpasswd 也可以设置用户密码
5.修改用户账户的属性-usermod
usermod [选项]... 用户名
常用选项
usermod -u:修改用户的 UID 号。
usermod -d:修改用户的宿主目录位置。
usermod -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
usermod -g:修改用户的基本组名(或使用 GID 号)。
usermod -G:修改用户的附加组名(或使用 GID 号)。
usermod -s:指定用户的登录 Shell。
usermod -l:更改用户账号的登录名称。
usermod -L:锁定用户账户。
usermod -U:解锁用户账户
[root@192 ~]# usermod lisi -l liwu #修改用户名 lisi 为 liwu
[root@192 ~]# vi /etc/passwd
liwu:x:9529:9529::/home/lisi:/sbin/nologin
[root@192 ~]# usermod liwu -u 4567 -g 9527 #修改用户UID为4567,组账户名为9527
[root@192 ~]# vi /etc/passwd
liwu:x:4567:9527::/home/lisi:/sbin/nologin
其余用法和useradd 命令用法一样
6.删除用户账号-userdel
uesrdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@192 ~]# useradd ppp -u 1516 #创建用户ppp 指定 UID 为1516
[root@192 ~]# vi /etc/passwd
ppp:x:1516:1516::/home/ppp:/bin/bash
[root@192 ~]# userdel -r ppp #删除用户ppp和他的目录
7.用户账号的初始配置文件
(1)文件来源
useradd命令添加一个新的用户账号后会在该用户的宿主目录中建立一些初始配置文件
(2)用户账号的主要初始配置文件
【1】系统环境初始化配置文件 /etc/profile /etc/bashrc 对所有用户有效
【2】用户环境初始化配置文件 ~/.bash_profile ~/.bashrc ~/.bash_logout 只对当前用户有效
/etc/profile ~/.bash_profile 设置用户每次登录时要执行的命令
/etc/bashrc ~/.bashrc 设置切换shell环境时(包括登录系统时)要执行的命令
~/.bash_logout 设置退出登录或shell环境时执行的命令
PATH变量用于设置可执行程序的默认搜索路径
PATH 生效的原理:
每次启动系统的时候会初始化命令,会执行/etc/profile和~/.bash_profile。/etc/profile会将路径/usr/local/bin 、/usr/bin、/usr/local/sbin 、/usr/sbin 追加到PATH中去。然后调用 /etc/profile.d 目录下的脚本。
9.组账号文件
与用户账号文件相似
/etc/groupp:保存组账号基本信息
有4个字段:
root :x :0 :
1组账号名
2x占位符
3GID号
4组账号成员
/etc/gshadow:保存组账号的密码信息(一般不给组设置密码)
10.添加组账号-groupadd
groupadd [-g GID] 组账号名
[root@192 ~]# groupadd test1 #创建组test1
[root@192 ~]# groupadd test2 -g 1314 #创建组test2,并指定GID号为1314
[root@192 ~]# vi /etc/group
test1:x:1001:
test2:x:1314:
11.添加删除组成员-gpasswd
管理组账号的成员
gpasswd [选项] ...组账号名
常用选项
gpasswd -a 向组内添加一个用户
gpasswd -d 从组内删除一个用户
gpasswd -M 定义组成员列表,以逗号分隔
【1】gpasswd -a
[root@192 ~]# gpasswd test1 -a lll
正在将用户“lll”加入到“test1”组中
[root@192 ~]# gpasswd test1 -a xxx
正在将用户“xxx”加入到“test1”组中
[root@192 ~]# gpasswd test1 -a ppp
正在将用户“ppp”加入到“test1”组中
[root@192 ~]# gpasswd test1 -a sss
正在将用户“sss”加入到“test1”组中
[root@192 ~]# vi /etc/group
test1:x:1001:lll,xxx,ppp,sss
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
【2】gpasswd -d
[root@192 ~]# gpasswd test1 -d lll
正在将用户“lll”从“test1”组中删除
[root@192 ~]# gpasswd test1 -d xxx
正在将用户“xxx”从“test1”组中删除
[root@192 ~]# vi /etc/group
test1:x:1001:ppp,sss
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
【3】gpasswd -M
[root@192 ~]# gpasswd test1 -M lll,xxx
[root@192 ~]# vi /etc/group
test1:x:1001:lll,xxx
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
12.删除组账号-groupdel
groupdel 组账号名
[root@192 ~]# groupdel test1 #删除组test1
[root@192 ~]# vi /etc/group
13.查询账号信息
(1)groups查询用户所属的组
groups [用户名]
[root@192 ~]# groups lll #查询 lll 组的信息
lll : lll test1
[root@192 ~]#
(2)id查询用户身份的ID
id [用户名]
[root@192 ~]# id xxx
uid=1002(xxx) gid=1002(xxx) 组=1002(xxx),1316(test1)
[root@192 ~]#
(3)finger查询用户账号的登录属性(需要先安装finger软件包)
finger [用户名]
[root@192 ~]# finger ppp
Login: ppp Name:
Directory: /home/ppp Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@192 ~]#
(4)w、who、users 查询已登录到主机的用户信息
拓展:通常使用tty来简称各种类型的终端设备,Centos7系统,tty1表示图形界面,tty2-tty6表示文字界面,可以用 Ctrl+Alt+F1-F6切换。按Ctrl+Alt+F2登陆,执行w 命令,查看使用的终端就是tty2
二.查看文件/目录的权限和归属
1.ls -l 查看文件的属性
第一字段的文件类型和权限位、第二字段的属主和第三字段的属组
2.设置文件和目录权限的-chmod
chmod [u、g、o、a] [+、-、=] [rwx] 文件或目录
ugoa属主、属组、其他用户、所有用户
+-=增加、去除、重新定义权限
rwx读、写、运行权限
或
chmod nnn 文件类型
nnn 三位8进制数
常用选项
chmod -R 递归修改指定目录下所有子项的权限
chmod -R 权限位 文件/目录:表示递归修改文件和目录及子目录和文件的权限
(1)第一种
[root@192 opt]# ll
总用量 0
----------. 1 root root 0 4月 14 20:23 lll
----------. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# chmod u+rwx lll
[root@192 opt]# ll
总用量 0
-rwx------. 1 root root 0 4月 14 20:23 lll
----------. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# ll
总用量 0
-rwx------. 1 root root 0 4月 14 20:23 lll
-rwxrwxrwx. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# chmod a-rw ppp
[root@192 opt]# ll
总用量 0
-rwx------. 1 root root 0 4月 14 20:23 lll
---x--x--x. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# ll
总用量 0
-rwx------. 1 root root 0 4月 14 20:23 lll
---x--x--x. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# chmod a=rw rh
[root@192 opt]# ll
总用量 0
-rwx------. 1 root root 0 4月 14 20:23 lll
---x--x--x. 1 root root 0 4月 14 20:23 ppp
-rw-rw-rw-. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]#
(2)第二种
[root@192 opt]# ll
总用量 0
----------. 1 root root 0 4月 14 20:23 lll
----------. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
[root@192 opt]# chmod 666 lll
[root@192 opt]# chmod 555 ppp
[root@192 opt]# ll
总用量 0
-rw-rw-rw-. 1 root root 0 4月 14 20:23 lll
-r-xr-xr-x. 1 root root 0 4月 14 20:23 ppp
----------. 1 root root 0 4月 14 20:23 rh
----------. 1 root root 0 4月 14 20:23 xxx
3.设置文件和目录的归属-chown
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
常用选项
chown -R 递归修改指定目录下所有文件、子目录的归属
[root@192 opt]# chown aaa 1.txt
[root@192 opt]# ls -l
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt 属主变成aaa
----------. 1 root root 0 4月 14 20:55 2.txt
----------. 1 root root 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown :bbb 2.txt
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt 属组变成bbb
----------. 1 root root 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown aaa :bbb 3.txt
chown: 无法访问":bbb": 没有那个文件或目录
[root@192 opt]# chown aaa:bbb 3.txt
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt
----------. 1 aaa bbb 0 4月 14 20:56 3.txt 属主和属组变成aaa和bbb
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown -R aaa.bbb rh
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt
----------. 1 aaa bbb 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 aaa bbb 36 4月 14 21:05 rh
[root@192 opt]# ll -R rh
rh:
总用量 0
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 aa
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 bb
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 cc
[root@192 opt]#
修改 rh 下的子目录的属主和属组
4.设置目录和文件的默认权限-umask
(1)作用:
控制新建的文件或者目录的权限;
默认权限去除 umask 的权限为新建的文件或者目录的权限
(2)查看和命令格式
umask xxx 设置默认权限
umask 查看默认权限
xxx为三位8进制数
文件的最大默认权限为 6 目录的最大默认为 7
新建的文件/目录的默认权限 = 最大默认权限 - umask值
[root@192 opt]# umask 555 #设置默认权限为555
[root@192 opt]# umask
0555
[root@192 opt]# touch a.txt
[root@192 opt]# ll
总用量 0
--w--w--w-. 1 root root 0 4月 14 21:18 a.txt
[root@192 opt]# umask 666 #设置默认权限为666
[root@192 opt]# umask
0666
[root@192 opt]# mkdir abc
[root@192 opt]# ll
总用量 0
d--x--x--x. 2 root root 6 4月 14 21:19 abc
--w--w--w-. 1 root root 0 4月 14 21:18 a.txt
[root@192 opt]#
三.总结
要了解一下命令
用户账号管理(useradd、passwd、usermod、userdel)
组账号管理(groupadd、gpasswd、groupdel)
用户账号文件与组账号文件
查询账号相关信息的命令(groups、id、finger、w)
设置目录与文件权限(chmod)
设置目录与文件归属(chown)