1.用户管理:
(1)超级用户:拥有操作系统的最高权限,可以进行任何操作.默认是root.
它的Uid,gid都是0
(2)普通用户:是有管理员创建的用户,权限有限,只对自己的家目录拥有完整权限
Centos 7的Uid是从1000开始.
(3)虚拟用户:(程序用户===>植物人),一般用来运行服务时候指定的用户,不能登录操作系统.
系统的默认用户:
Centos6之前是1—499;
Centos7开始是1—999;
2.用户和组管理的重要文件
(1)用户管理配置文件:/etc/passwd
haha ❌1000:1000:haha:/home/haha:/bin/bash
dhcpd ❌177:177:DHCP server:/:/sbin/nologin
第一列:用户名;
第二列:密码占位符
第三列:uid(user id用户唯一标识)
第四列:gid (group id)
第五列:全名
第六列:用户家目录
第七列:是否允许登录操作系统./bin/bash允许登录系统;/sbin/nologin不允许登录系统.
(2)用户的密码文件:/etc/shadow
haha:
6
6
6gBMaK.xDoFH6LksE
D
H
t
W
/
I
r
z
j
A
I
S
.
f
y
o
S
g
.
j
a
i
Q
I
d
.
l
v
i
Y
r
H
H
8
a
U
5
m
G
i
O
J
u
r
7
k
s
E
Q
g
C
Q
x
D
1
C
K
I
8
g
s
Z
a
k
w
6
s
D
w
m
z
V
k
1
o
W
n
z
F
9
N
Y
o
A
h
.
:
18116
:
0
:
99999
:
7
:
:
:
第
一
列
:
用
户
名
第
二
列
:
用
户
加
密
后
的
密
码
,
用
S
H
A
加
密
第
三
列
:
密
码
的
修
改
时
间
,
距
离
1970
−
01
−
01
的
时
间
第
四
列
:
密
码
的
最
短
有
效
期
,
如
果
为
0
,
表
示
无
限
制
第
五
列
;
密
码
的
最
长
有
效
期
第
六
列
:
提
前
7
天
提
醒
第
七
列
:
账
号
的
失
效
时
间
第
八
列
:
未
定
义
(
3
)
组
相
关
:
/
e
t
c
/
g
r
o
u
p
j
i
s
h
u
b
u
:
x
:
2000
:
第
一
列
:
组
名
第
二
列
:
组
密
码
占
位
符
第
三
列
:
g
i
d
(
组
I
D
)
第
四
列
:
组
成
员
3.
用
户
管
理
的
命
令
:
u
s
e
r
a
d
d
/
u
s
e
r
m
o
d
(
1
)
命
令
的
基
本
格
式
:
u
s
e
r
a
d
d
[
参
数
−
G
/
−
g
/
−
d
/
−
s
/
−
u
]
[
参
数
的
值
]
操
作
的
用
户
u
s
e
r
n
a
m
e
举
例
:
u
s
e
r
a
d
d
x
i
a
o
m
i
n
g
/
/
创
建
一
个
用
户
,
默
认
会
创
建
一
个
同
名
的
组
,
这
个
用
户
就
属
于
同
名
组
.
i
d
x
i
a
o
m
i
n
g
/
/
检
查
用
户
的
u
i
d
/
g
i
d
和
基
本
组
信
息
u
s
e
r
m
o
d
−
G
h
e
i
h
e
i
x
i
a
o
m
i
n
g
/
/
−
G
是
给
一
个
用
户
指
定
一
个
"
附
加
组
"
;
i
d
x
i
a
o
m
i
n
g
u
i
d
=
1002
(
x
i
a
o
m
i
n
g
)
g
i
d
=
1002
(
x
i
a
o
m
i
n
g
)
组
=
1002
(
x
i
a
o
m
i
n
g
)
,
1001
(
h
e
i
h
e
i
)
/
/
x
i
a
o
m
i
n
g
是
基
本
组
,
h
e
i
h
e
i
是
附
加
组
u
s
e
r
a
d
d
x
i
a
o
h
u
a
i
d
x
i
a
o
h
u
a
u
s
e
r
m
o
d
−
g
h
e
i
h
e
i
x
i
a
o
h
u
a
/
/
−
g
是
指
定
用
户
的
基
本
组
,
把
x
i
a
o
h
u
a
的
基
本
组
设
置
为
h
e
i
h
e
i
u
s
e
r
a
d
d
−
d
/
a
d
m
i
n
−
g
j
i
s
h
u
b
u
−
G
r
o
o
t
a
d
m
i
n
/
/
创
建
一
个
用
户
a
d
m
i
n
,
−
d
指
定
家
目
录
,
−
g
指
定
基
本
组
;
−
G
指
定
附
加
组
g
r
o
u
p
a
d
d
−
g
2001
c
a
i
w
u
b
u
/
/
创
建
一
个
组
叫
c
a
i
w
u
b
u
,
同
时
指
定
g
i
d
W
i
e
2001
u
s
e
r
a
d
d
−
u
2001
−
g
2001
−
d
/
t
e
s
t
b
b
b
b
b
b
/
/
创
建
一
个
用
户
b
b
b
,
同
时
指
定
u
i
d
=
g
i
d
=
2001
,
指
定
(
同
时
会
创
建
)
家
目
录
为
/
t
e
s
t
b
b
b
;
默
认
普
通
用
户
的
家
目
录
在
/
h
o
m
e
/
用
户
名
u
s
e
r
a
d
d
−
s
/
s
b
i
n
/
n
o
l
o
g
i
n
−
M
w
w
w
/
/
创
建
一
个
虚
拟
用
户
(
植
物
人
)
,
用
户
名
叫
w
w
w
,
−
M
是
不
指
定
家
目
录
;
−
s
指
定
用
户
登
录
的
s
h
e
l
l
.
/
s
b
i
n
/
n
o
l
o
g
i
n
表
示
不
允
许
登
录
系
统
.
(
2
)
p
a
s
s
w
d
给
用
户
设
置
密
码
p
a
s
s
w
d
x
i
a
o
m
i
n
g
/
/
给
小
明
设
置
密
码
P
a
s
s
w
d
−
d
a
a
−
−
−
−
−
−
−
清
空
a
a
用
户
的
密
码
p
a
s
s
w
d
−
l
x
i
a
o
m
i
n
g
/
/
锁
定
x
i
a
o
m
i
n
g
p
a
s
s
w
d
−
u
x
i
a
o
m
i
n
g
/
/
给
x
i
a
o
m
i
n
g
解
锁
p
a
s
s
w
d
−
S
x
i
a
o
m
i
n
g
/
/
查
看
小
明
的
状
态
(
3
)
批
量
创
建
用
户
举
例
:
f
o
r
n
i
n
1..20
;
d
o
u
s
e
r
a
d
d
u
s
e
r
DHtW/IrzjAIS.fyoSg.jaiQId.lviYrHH8aU5mGiOJur7ksEQgCQxD1CKI8gsZakw6sDwmzVk1oWnzF9NYoAh.:18116:0:99999:7::: 第一列:用户名 第二列:用户加密后的密码,用SHA加密 第三列:密码的修改时间,距离1970-01-01的时间 第四列:密码的最短有效期,如果为0,表示无限制 第五列;密码的最长有效期 第六列:提前7天提醒 第七列:账号的失效时间 第八列:未定义 (3)组相关:/etc/group jishubu:x:2000: 第一列:组名 第二列:组密码占位符 第三列:gid(组ID) 第四列:组成员 3.用户管理的命令:useradd/usermod (1)命令的基本格式: useradd [参数-G/-g/-d/-s/-u] [参数的值] 操作的用户username 举例: useradd xiaoming //创建一个用户,默认会创建一个同名的组,这个用户就属于同名组. id xiaoming //检查用户的uid/gid和基本组信息 usermod -G heihei xiaoming //-G是给一个用户指定一个"附加组"; id xiaoming uid=1002(xiaoming) gid=1002(xiaoming) 组=1002(xiaoming),1001(heihei) //xiaoming是基本组,heihei是附加组 useradd xiaohua id xiaohua usermod -g heihei xiaohua //-g是指定用户的基本组,把xiaohua的基本组设置为heihei useradd -d /admin -g jishubu -G root admin //创建一个用户admin,-d指定家目录,-g指定基本组;-G指定附加组 groupadd -g 2001 caiwubu //创建一个组叫caiwubu,同时指定gidWie2001 useradd -u 2001 -g 2001 -d /testbbb bbb //创建一个用户bbb,同时指定uid=gid=2001,指定(同时会创建)家目录为/testbbb; 默认普通用户的家目录在/home/用户名 useradd -s /sbin/nologin -M www //创建一个虚拟用户(植物人),用户名叫www,-M是不指定家目录;-s 指定用户登录的shell./sbin/nologin表示不允许登录系统. (2)passwd给用户设置密码 passwd xiaoming //给小明设置密码 Passwd -d aa -------清空aa用户的密码 passwd -l xiaoming //锁定xiaoming passwd -u xiaoming //给xiaoming解锁 passwd -S xiaoming //查看小明的状态 (3)批量创建用户举例: for n in {1..20};do useradd user
DHtW/IrzjAIS.fyoSg.jaiQId.lviYrHH8aU5mGiOJur7ksEQgCQxD1CKI8gsZakw6sDwmzVk1oWnzF9NYoAh.:18116:0:99999:7:::第一列:用户名第二列:用户加密后的密码,用SHA加密第三列:密码的修改时间,距离1970−01−01的时间第四列:密码的最短有效期,如果为0,表示无限制第五列;密码的最长有效期第六列:提前7天提醒第七列:账号的失效时间第八列:未定义(3)组相关:/etc/groupjishubu:x:2000:第一列:组名第二列:组密码占位符第三列:gid(组ID)第四列:组成员3.用户管理的命令:useradd/usermod(1)命令的基本格式:useradd[参数−G/−g/−d/−s/−u][参数的值]操作的用户username举例:useraddxiaoming//创建一个用户,默认会创建一个同名的组,这个用户就属于同名组.idxiaoming//检查用户的uid/gid和基本组信息usermod−Gheiheixiaoming//−G是给一个用户指定一个"附加组";idxiaominguid=1002(xiaoming)gid=1002(xiaoming)组=1002(xiaoming),1001(heihei)//xiaoming是基本组,heihei是附加组useraddxiaohuaidxiaohuausermod−gheiheixiaohua//−g是指定用户的基本组,把xiaohua的基本组设置为heiheiuseradd−d/admin−gjishubu−Grootadmin//创建一个用户admin,−d指定家目录,−g指定基本组;−G指定附加组groupadd−g2001caiwubu//创建一个组叫caiwubu,同时指定gidWie2001useradd−u2001−g2001−d/testbbbbbb//创建一个用户bbb,同时指定uid=gid=2001,指定(同时会创建)家目录为/testbbb;默认普通用户的家目录在/home/用户名useradd−s/sbin/nologin−Mwww//创建一个虚拟用户(植物人),用户名叫www,−M是不指定家目录;−s指定用户登录的shell./sbin/nologin表示不允许登录系统.(2)passwd给用户设置密码passwdxiaoming//给小明设置密码Passwd−daa−−−−−−−清空aa用户的密码passwd−lxiaoming//锁定xiaomingpasswd−uxiaoming//给xiaoming解锁passwd−Sxiaoming//查看小明的状态(3)批量创建用户举例:fornin1..20;douseraddusern;done //基本格式:for ;do 执行的命令;done
(4)删除用户和家目录
userdel aaa //删除用户,家目录还在
userdel -r aaa //删除用户的同时,删除家目录
(5)组管理的命令:
groupadd xiaoshoubu //创建一个组,叫xiaoshoubu
groupadd -g 2001 caiwubu //创建一个组叫caiwubu,同时指定gidWie2001
groups xiaoming //查看xiaoming这个用户,属于的组
gpasswd -d szy szy //把szy这个用户,从szy这个组里-d移除
gpasswd -d xiaoming heihei //把xiaoming这个用户,从heihei这个组里删除
groupdel szy //删除szy这个组
gpasswd -a zhangsan root ---------将zhangsan加入root组
gpasswd -M aa,bb,cc,dd jishubu -------------将aa bb cc dd 四个用户同时加入jishubu组
说明:如果有某个用户把这个组作为基本组,那么这个组就无法删除.----->要么直接把用户删除;要么直接把用户移走.
课堂练习:
1.创建组叫 jishubu caiwubu
2.创建用户aaa,指定用户的uid=gid=2000;
3.创建用户xiaoming,xiaohua
4.把xiaoming加入附加组到jishubu;把xiaohua加入到附加组caiwubu;
5.批量创建20个用户叫user1,user2,user3…命名;并查看/etc/passwd检查结果;
6.删除20个用户和他们的家目录
7.创建shichangbu的组
8.创建用户aaa,bbb,ccc;把多个用户都加入到shichangbu这个组中.
9.创建用户ddd,把ddd加入到shichangbu这个附加组里;
10.创建user这个组,再删除.给出命令
4.添加一个用户后,useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件都是隐藏的.
文件包括三个:
- .bash_logout ----文件中的命令将会在每次退出登录时执行
- .bash_profile -----文件中的命令将会在用户每次登录时被执行
- .bash_bashrc -----文件中的命令将会在每次加载bash时候执行
alias kaobei=‘cp -i’
kaobei user1.txt user2.txt
/etc目录下也有bashrc这个文件,这里面的文件是面对所有用户(全局配置)
Part2:文件属性
1.查看文件属性;
[root@cent7 test]# ls -lhi //-l是以长格式显示;-h是以人们易读的方式显示;-i是inode节点号.
操作系统为了读取效率更高,会给每个文件创建一个inode节点号.
total 196K
102353779 -rw-r–r-- 1 root root 11 Aug 12 09:40 date.txt
1478308 -rw-r–r-- 1 root root 5.1K Aug 12 15:38 eee.txt
第一列:inode节点号;
第二列:第一个位表示文件类型;
-
普通文件;
d 目录文件;
l 连接文件;
后边的9位表示文件的权限信息,每3位分为一组,分别代表:属主user/属组group/其他other
权限分为:r(read,读取;权限用4表示)
w(write,写入,权限用2表示)
x(excute,执行,权限用1表示):前提是一个可执行文件.用./文件名来执行.
默认在Linux中,目录的权限是755,文件权限默认是644.
第三列:1表示的是文件的硬链接数.每创建一个硬链接,数值会加1.
第四列:属主
第五列:属组
第六列:文件大小
第七列—第九列:表示时间
第十列:文件名
ln -s aaaaaaaaaaaaaaaaa.txt a.txt //给aaaaaaaaaaaaaaaaa.txt源文件,创建一个软连接(之前不能存在)
ln aaaaaaaaaaaaaaaaa.txt a.txt //给aaaaaaaaaaaaaaaaa.txt源文件,创建一个硬连接
ln 直接创建的叫做硬链接文件,硬链接文件是源文件的另外一个入口.和源文件是同一个文件.
特别说明:ln -s 参数是创建一个软连接,软连接和源文件不是同一个文件.
如果删除源文件,软连接会无法访问;但是硬链接还正常.
2.修改文件权限:
方式一:使用英文字母的方式修改权限
chmod [u/g/o][+/-/=][rwx] 文件名
chmod a+x aa.txt //给aa.txt的所有人添加可执行权限
chmod u+x aa.txt //给aa.txt的属主添加可执行权限
chmod u=rwx aa.txt //给aa.txt的属主赋予"读,写,执行权限"
方式二:直接使用数字方式来修改权限
chmod 700 aa.txt //给aa.txt的属主所有权限;属组和其他人没有任何权限
chmod 755 aa.txt //给aa.txt的属主所有权限,属组和其他人有"读取和执行的权限"
常用参数:chmod -R 644 nload-0.7.4 //针对nload目录,-R递归修改权限为644.
3.修改文件的属主和属组:
chown root.root nload-0.7.4/* //把nload-0.7.4下的所有文件的属主和属组都修改为root
chown root.root nload-0.7.4 //把nload-0.7.4目录的属主和属组都修改为root
属主:属组
ls -l //检查权限是否修改成功
练习:
(1)在/test目录下创建一个文件aaaaaaaa.txt ;并写入内容为This is test for aaaaa.txt.
(2)给aaaaaaaa.txt这个文件创建软连接为a.txt;
(3)给aaaaaaaa.txt文件创建硬链接文件hard.txt;
(4)使用ls -lhi 来查看3个文件的inode节点号的区别;
(5)删除源文件aaaaaaaa.txt,看a.txt和hard.txt是否还能正常访问;
(6)在/test/下创建一个可执行文件,叫ls.txt ,写入内容:
#!/bin/bash #声明脚本的解释器
ifconfig ens33
echo 123456 > ls.txt
echo 678910 >> ls.txt
(7)给这个文件赋予可执行权限,并查看结果.
修改为英文字符集:
[root@cent7 /]# cat /etc/locale.conf //编辑"字符集"配置文件
#LANG=“zh_CN.UTF-8”
LANG=“en_US.UTF-8”
[root@cent7 /]# source /etc/locale.conf //重新加载配置文件
[root@cent7 /]# echo $LANG //查看字符集的环境变量
en_US.UTF-8
今日单词:
username 用户名
Password 密码
locked 锁定
remove 移除
directory 目录
cd=change directory //切换目录
执行文件命令:./aa.txt