目录
1.5.1 【小问题】是否会删除这个用户在其他目录里新建的文件或文件夹
一、用户和组
用户user,每个用户有唯一的uid
组group,每个组有唯一的gid
一个组里可以有多个用户
用户也可以加入多个组,用户加入组之后,会拥有这个组的权限
[root@localhost ~]# id root
uid=0(root) gid=0(root) 组=0(root)
uid 是用户的id号==》相当于身份证号
gid 是组的id号==》一个组可以理解为一个社团
一个用户至少一个组,默认情况下用户组名和用户名相同,新建一个用户时,会同时新建一个同名的组。
uid和gid会在前一个用户的基础上+1
1.1 用户和组的作用
用户和组是为Linux系统里的资源管控服务的
资源管控:文件的访问、读取、执行等操作
用户的身份会嵌入到进程里,内核对进程进行限制
用户和组绑定进程,进程操作文件,操作文件时会通过pcb检查权限
1.2 进程
进程:正在运行的程序
程序:存在在磁盘里的代码
它是计算机进行资源分配的基本单位
创建进程的两个步骤:1.向内核申请pcb空间;2.内核去查看内存里是否有空间存放程序代码。
时间片:cpu将1秒划分成很多固定的时间片段。
进程 = PCB + 程序代码 + 程序产生的数据
PCB 是进程控制块(process control block):数据结构,包括pid号,ppid号,euid,egid,程序代码在内存里的位置、优先级、程序的状态等信息==》内核管控进程的 唯一凭证
euid:有效的uid egid:有效的gid
先创建pcb,再在内存里分配空间
进程的组成核心:进程控制块(PCB)==》一个数据结构
1、pid 进程唯一标识符
2、有效用户信息 -euid,egid(通常情况下就是uid,gid)
3、程序的状态
4、程序优先级
5、程序的上下文
RUID, 用于在系统中标识一个用户是谁,当用户使用用户名和密码成功登录后一个UNIX系统后就唯一确定了他的RUID.
EUID, 用于系统决定用户对系统资源的访问权限,通常情况下等于RUID。
SUID,用于对外权限的开放。跟RUID及EUID是用一个用户绑定不同,它是跟文件而不是跟用户绑定。
########看进程属于哪个用户#############
=====第一种
[root@localhost mail]# ps -ef
UID PID PPID C STIME TTY TIME CMD
=====第二种
[root@localhost mail]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
=====第三种
[sc@localhost ~]$ python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.geteuid()
1013
>>> os.getuid()
1013
1.2.1 进程有三种最基本的状态
- 就绪(队列):创建进程的过程==》排队
- 运行:一个cpu核心,同时只能一个进程进去run
- 阻塞:有I/O请求时(阻塞队列在内存里)
I/O请求:读写文件、网络等(磁盘、网络里)
1.2.2 查看系统的进程信息
- top 动态查看(按q退出)
- pa aux 静态查看
1.3 用户账户
- 超级用户(root):安装好系统就有,不需要新建,默认存在
- 程序用户(System accounts):用来启动程序或者登录程序的用户==》很多默认就已经存在,或者安装程序时会自动新建
- 普通用户:useradd新建的用户(也可以用来启动程序)
1.3.1 uid范围
- 超级用户的uid为0 ==》在Linux里本质上只认uid
- 程序用户1-999
- 普通用户1000-60000
用户默认属性设置文件:/etc/login.defs
# 把一个普通用户变为root用户
# 实现的方法:修改用户的uid为0就可以了
[root@localhost ~]# useradd yitianming
[root@localhost ~]# id yitianming
uid=2005(yitianming) gid=2005(yitianming) 组=2005(yitianming)
[root@localhost ~]# vim /etc/passwd
yitianming:x:0:2005::/home/yitianming:/bin/bash
[root@localhost ~]# su - yitianming
上一次登录:五 4月 1 21:03:42 CST 2022从 192.168.255.1pts/0 上
[root@localhost ~]# ==》uid=0,自动识别为root用户
1.3.2 程序用户(ftp)
nginx和mysql是用来启动nginx和mysql服务的
ftp是用来登录ftp服务的
nginx:x:997:995:Nginx web server:/var/lib/nginx:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nginx
[root@localhost ~]# service nginx restart ==》重启nginx
Redirecting to /bin/systemctl restart nginx.service
[root@localhost ~]# ps aux | grep nginx
root 4297 0.0 0.0 39308 932 ? Ss 23:22 0:00 nginx: master process /usr/sbin/nginx
nginx 4298 0.0 0.0 39696 1820 ? S 23:22 0:00 nginx: worker process
nginx 4299 0.0 0.0 39696 1556 ? S 23:22 0:00 nginx: worker process
root 4303 0.0 0.0 112824 980 pts/0 S+ 23:22 0:00 grep --color=auto nginx
ftp服务
ftp是匿名用户,不需要密码就可以登录
本地用户(useradd新建的用户):需要密码
【注】centos8里vsftpd服务默认不允许匿名用户登陆
1. 使用匿名用户(ftp)登陆的话需要,修改/etc/vsftpd/vsftpd.conf里的配置 ==》anonymous_enable=YES ==》通过/anonymous查找
2. 修改完配置文件重启vsftpd服务
3. 登陆上去之后,默认读取系统中ftp这个用户的家目录文件==》ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
1.3.3 ftp登录实操
[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# ps aux | grep ftp
root 4355 0.0 0.0 53292 576 ? Ss 23:24 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 4359 0.0 0.0 112824 976 pts/0 S+ 23:24 0:00 grep --color=auto ftp
[root@localhost ~]# cat /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
==》不能ssh远程登陆系统
# ssh方式登陆的时候会去/etc/passwd文件里检查用户的shell,如果是nologin就不允许登录
# ftp方式登录时,也会去/etc/passwd文件里检查用户是否存在
[root@localhost ~]# yum install ftp lftp -y ==》安装客户端命令ftp和lftp
[root@localhost ~]# ftp 192.168.255.132 ==》登录
Connected to 192.168.255.132 (192.168.255.132).
220 (vsFTPd 3.0.2)
Name (192.168.255.132:root): ftp
331 Please specify the password.
Password: ==》直接回车
230 Login successful. ==》表示登录成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,255,132,123,99).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 6 Jun 09 2021 pub ==》看到pub文件夹
226 Directory send OK.
ftp> quit ==》退出
上述代码ls看到的pub和下面代码是一样的
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
pub
[root@localhost vsftpd]# ftp 192.168.255.132 ==》此ftp表示ftp客户端,登录ftp服务
Name (192.168.255.132:root): ftp
==》这个ftp表示ftp用户,指使用匿名用户登录
230 Login successful. ==》出现这个,表示登陆成功
ftp> ls
421 Timeout.
Passive mode refused.
ftp> ls
Not connected. ==》长时间没有操作掉线了
ftp> quit ==》退出ftp服务
ftp> put vsftpd.conf
local: vsftpd.conf remote: vsftpd.conf
227 Entering Passive Mode (192,168,255,132,240,2).
550 Permission denied. ==》权限不够
ftp常用命令:
上传文件:put
下载文件:get
查看: ls
切换路径:cd
1.3.4 Windows和Linux之间传输文件
- ssh ==》xftp
- ftp ==》使用本地用户登录
1.4 useradd新建用户
-g 主要组(主业)
-G 次要组(副业)
groupadd 新建组
groupdel 删除组
[root@localhost ~]# groupadd mingjiao ==》新建组
[root@localhost ~]# groupadd wudang
[root@localhost ~]# useradd -g mingjiao -G wudang zhangwuji
[root@localhost ~]# id zhangwuji
uid=2005(zhangwuji) gid=2006(mingjiao) 组=2006(mingjiao),2007(wudang)
[root@localhost ~]# cat /etc/passwd |grep zhangwuji
zhangwuji:x:2005:2006::/home/zhangwuji:/bin/bash
-d 指定家目录
-u 指定uid号
[root@localhost mail]# useradd -g mingjiao -G wudang -d/guangminding -u 90000 zhangwuji
[root@localhost mail]# id zhangwuji
uid=90000(zhangwuji) gid=2006(mingjiao) 组=2006(mingjiao),2007(wudang)
-c 用户描述信息
-s 指定用户登陆的bash
[root@localhost mail]# useradd -g mingjiao -G wudang -d/guangminding -u 90000 -s /sbin/nologin -c "mingjiao master" zhangwuji
[root@localhost mail]# cat /etc/passwd | grep zhangwuji
zhangwuji:x:90000:2006:mingjiao master:/guangminding:/sbin/nologin
1.5 userdel删除用户
-r 删除用户的时候,把用户的家目录和邮箱都删除(新建用户时会自动创建邮箱)
[root@localhost ~]# userdel -r zhangwuji
[root@localhost ~]# cd /var/spool/mail ==》用户邮箱的所在位置
【不使用-r命令会产生问题】
【解释】家目录文件的uid和gid还是上一个hutianying的,并没有更新为新建的这个hutianying的uid和gid(相当于遗留。由于该文件的uid和gid和hutianyi用户的uid和gid不同,所以无法删除,可以进入到相应的目录强制删除
1.5.1 【小问题】是否会删除这个用户在其他目录里新建的文件或文件夹
答:不会删除
[root@localhost lianxi]# id lihua
uid=1234(lihua) gid=1234(lihua) 组=1234(lihua)
[root@localhost lianxi]# su - lihua
[lihua@localhost lianxi]$ cd /tmp
[lihua@localhost tmp]$ mkdir China
[lihua@localhost tmp]$ ll
总用量 0
drwxrwxr-x 2 lihua lihua 6 4月 2 18:14 China
[lihua@localhost tmp]$ exit
登出
[root@localhost lianxi]# userdel -r lihua
[root@localhost lianxi]# ll /tmp
总用量 0
drwxrwxr-x 2 1234 1234 6 4月 2 18:14 China
[root@localhost lianxi]# useradd -u 1234 liming
[root@localhost lianxi]# ll /tmp
总用量 0
drwxrwxr-x 2 liming liming 6 4月 2 18:14 China ==》本质上记录的是uid号
1.6 usermod修改用户信息
-u 修改用户的uid号
[root@localhost ~]# cat /etc/passwd |grep shijunhao
shijunhao:x:1011:1011::/home/shijunhao:/bin/bash
[root@localhost ~]# usermod -u 7890 shijunhao
[root@localhost ~]# cat /etc/passwd |grep shijunhao
shijunhao:x:7890:1011::/home/shijunhao:/bin/bash
# 直接用vim修改/etc/passwd文件也一样
-L 禁用用户(lock)不能ssh登录Linux系统(但可以用su切换)
-S 锁定密码
[root@localhost ~]# echo 123 |passwd shijunhao --stdin
更改用户 shijunhao 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# cat /etc/shadow |grep shijunhao
shijunhao:$6$QUhjGcu3$FocmosHB3bFCVb2H4pmfnPZ8CbBuSdv3nNbf8OZ58R9bDDVqehIMCDTl2Eef0xo9VV9z6iQmZhHhXcDP4nn5A/:19084:0:99999:7:::
[root@localhost ~]# usermod -L shijunhao
[root@localhost ~]# passwd -S shijunhao
shijunhao LK 2022-04-02 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# cat /etc/shadow |grep shijunhao
shijunhao:!$6$QUhjGcu3$FocmosHB3bFCVb2H4pmfnPZ8CbBuSdv3nNbf8OZ58R9bDDVqehIMCDTl2Eef0xo9VV9z6iQmZhHhXcDP4nn5A/:19084:0:99999:7:::
[root@localhost ~]# usermod -U shijunhao ==》解锁
【补充】/etc/shadow
!! 表示用户没有设置没密码
* 也是表示没有设置密码
! 在该文件里,密码前面出现一个 ! 表示用户被禁用 ==》所以也可以直接修改shadow文件
1.7 passwd
密码复杂性:
-
- 密码长度
- 密码需要包含数字、字符串大小写、特殊符号其中的几种
- 不是回文(左右读相同)123321
[root@localhost ~]# useradd lihua
[root@localhost ~]# passwd lihua
更改用户 lihua 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# echo 123 |passwd lihua --stdin
更改用户 lihua 的密码 。
passwd:所有的身份验证令牌已经成功更新。
-d 清除密码==》本质上是去shadow文件里删除密码字段的内容
空密码是不允许ssh远程登陆的,但是可以本地登录
[root@localhost ~]# cat /etc/shadow |grep lihua
lihua:$6$4iDG/qeM$DOCpN7ZTakny7ZX2ei92xEXPPOKyxkugnomPynCMfGEDMqZPB98CGX6yKITLZKb9cjzkTJF2iG3boxu9IomO1.:19084:0:99999:7:::
[root@localhost ~]# passwd -d lihua
清除用户的密码 lihua。
passwd: 操作成功
[root@localhost ~]# cat /etc/shadow |grep lihua
lihua::19084:0:99999:7:::
-l 锁定用户
[root@localhost ~]# passwd -l lihua
锁定用户 lihua 的密码 。
passwd: 操作成功
[root@localhost ~]# cat /etc/shadow |grep lihua
lihua:!!:19084:0:99999:7:::
【注:区别】usermod 禁用用户,在shadow文件里密码字段加一个!
passwd 禁用用户,在shadow文件里密码字段加两个!
-S 产看用户的账户状态
[root@localhost ~]# passwd -S lihua
lihua LK 2022-04-05 0 99999 7 -1 (密码已被锁定。)
1.8 和组有关的命令
1.8.1 groupadd
新建组
格式:groupadd [-g GID] 组帐号名
删除组
groupdel命令
格式:groupdel 组帐号名
[root@localhost ~]# groupadd -g 5000 sanle
[root@localhost ~]# cat /etc/group |grep sanle
sanle:x:5000:
[root@localhost ~]# groupdel sanle
[root@localhost ~]# cat /etc/group |grep sanle
1.8.2 groupmod命令
用途:设置组名和组id
格式:groupmod [选项]... 组帐号名
常用命令选项
-n:修改组名
-g:修改组id
[root@localhost ~]# groupadd -g 5000 sanle
[root@localhost ~]# cat /etc/group |grep sanle
sanle:x:5000:
[root@localhost ~]# groupmod -n sanle1 sanle ==》将sanle组名改为sanle1
[root@localhost ~]# cat /etc/group |grep sanle1
sanle1:x:5000:
1.8.3 newgrp改变有效组
用户必须是要改变组的成员
有效组?
新建文件或者文件夹的时候,使用的gid
gid使用哪个组,哪个就是有效组
[root@localhost ~]# id sanle
uid=2012(sanle) gid=5570(sc) 组=5570(sc),5000(sanle1)
[root@localhost ~]# su - sanle
[sanle@localhost ~]$ touch a.txt
[sanle@localhost ~]$ newgrp sanle1
[sanle@localhost ~]$ touch b.txt
[sanle@localhost ~]$ ll
总用量 0
-rw-r--r-- 1 sanle sc 0 4月 9 20:36 a.txt
-rw-r--r-- 1 sanle sanle1 0 4月 9 20:37 b.txt
1.9 Linux加密
默认密码采用SHA512算法
哈希算法(Hash) ==》散列值求取
把任意长度的输入,映射成固定长度的输出,该输出就是散列值
是一种单向加密技术
hash 算法: md5 sha1 sha2 sha256 sha512
[root@localhost ~]# cat /etc/shadow |grep lihua
lihua:$6$t8DknEXN$ZQ7JE6YixE3hpa.vTrqKoM3erinF267AKzT.en33JFgMePbrijdKQOU5xg21IqXFip4pEsVsRepuvRnB5vTZx0:19091:0:99999:7:::
密码字段: $加密算法id$盐值$真正的密文
加密底层使用内核的crypt函数实现
盐值(随机产生)用于防止撞库
撞库:因为同一串字符产生的密文相同,把常用的密码密文放在一个数据库里,一个一个去比较,如果没有盐值很容易被撞出来。
#通过python使用crypt:利用密文和盐值得到加密后的密码
>>> import crypt
>>> crypt.crypt('123456','$6$t8DknEXN')
'$6$t8DknEXN$ZQ7JE6YixE3hpa.vTrqKoM3erinF267AKzT.en33JFgMePbrijdKQOU5xg21IqXFip4pEsVsRepuvRnB5vTZx0'
1.10 SELinux
是Linux操作系统里的一个安全相关子系统,但规则过于繁琐。
关闭selinux只能通过修改配置文件
setenforce 只能设置两种
0 宽容模式
1 强制模式
[root@localhost ~]# getenforce ==》获取当前SELinux的状态
Enforcing ==》强制模式,按照规则来
[root@localhost ~]# setenforce 0 ==》设定为宽容模式(临时设置)
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# vim /etc/selinux/config ==》修改配置文件,重启主机后生效
SELINUX=disabled
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# reboot
#重新连接
[root@localhost ~]# getenforce
Disabled
1.11 练习(last、lastlog)
- id 用户名
- usermod -L 用户名
passwd -l 用户名
- id
- 查看正在登录 w
last 记录最近登录系统的用户
lastlog 会记录每一个用上一次登陆的时间
二、新建一个用户背后的重要文件
/etc/passwd 存放用户信息
/etc/shadow 存放用户密码
/etc/passwd- 和/etc/shadow-是passwd和shadow备份文件,总是和源文件少一次操作(可以是新建也可以是删除)
创建用户后,会修改8个文件:
/etc/passwd;/etc/shadow;/etc/passwd-;/etc/shadow-;/etc/group;/etc/gshadow;/etc/group-;/etc/gshadow-
2.1 ⭐/etc/passwd
【一定要知道每个字段的含义】
sc:x:1013:1013::/home/sc:/bin/bash
使用冒号 : 分割
字段1: 用户名
字段2: 密码占位符,通常为"x"或者"*" (因为这个文件谁都可读,所以真正的密码存放在/etc/shadow)
[root@localhost mail]# su - sc
上一次登录:六 3月 26 17:11:29 CST 2022pts/1 上
[sc@localhost ~]$ less /etc/passwd
[sc@localhost ~]$ less /etc/shadow
/etc/shadow: 权限不够
用户登录时验证密码:
字段3: 用户id(uid)
字段4: 用户所属基本组id(一个用户可以加入很多组,这里只存基本组id)
字段5: 用户描述信息(没有添加时为空)
字段6: 家目录
字段7: 登陆shell的信息
【一个小例子】
# 找出系统中uid大于1000的用户,显示出它的名字,uid,家目录,shell
[root@localhost mail]# awk -F ':' '$3>1000 {print $1,$3,$6,$7}' /etc/passwd
2.1.1 用户的shell类型
[root@localhost ~]# useradd -s /sbin/nologin liuxiang123 ==》-s就是指定用户的shell
[root@localhost ~]# cat /etc/passwd|grep liuxiang123
liuxiang123:x:1015:1015::/home/liuxiang123:/sbin/nologin
[root@localhost ~]# su - liuxiang123 ==》本地切换登录
This account is currently not available.
远程登录
/sbin/nologin 这个用户不能登录系统。su(本地切换登录)和ssh(远程登陆)都不可以。
/bin/bash 默认的用户shell(正常的shell)
/sbin/halt 登录就关机
/sbin/sync sync是将内存里的缓存刷新到磁盘
2.1.2 awk补充
~ 内容匹配 ==》模糊匹配
例题:查找uid大于1000并且用户名里包含li,shell使用的是bash的用户信息,最终输出用户名、uid、shell这3个字段
[root@localhost ~]# cat /etc/passwd|awk -F: '$3>1000 && $1 ~ /li/ && $7 ~ /bash/ {print $1,$3,$7}'
lilanqing 1001 /bin/bash
lihua 1008 /bin/bash
liangluyao 1010 /bin/bash
lihua321 1012 /bin/bash
[root@localhost ~]# cat /etc/passwd|egrep ".*li.*bash"|awk -F: '$3>1000{print $1,$3,$7}'
lilanqing 1001 /bin/bash
lihua 1008 /bin/bash
liangluyao 1010 /bin/bash
lihua321 1012 /bin/bash
2.2 /etc/shadow
用来存放用户密码
上次修改密码的时间:是距离1970年1月1日的天数
2.3 /etc/group
组成员列表:表示这个成员的次要组有adm
[root@localhost 0402]# useradd -G wudang zhangheng
[root@localhost 0402]# id zhangheng
uid=2004(zhangheng) gid=2004(zhangheng) 组=2004(zhangheng),2007(wudang)
[root@localhost 0402]# cat /etc/group |grep wudang
wudang:x:2007:zhangheng
有效组:新建文件或者文件夹的时候,使用的gid。gid使用的哪个组,那个组就是有效组。
euid egid 有效的uid 有效的gid
因为一个用户可以同时属于多个组,但是用户只能有一个有效组(用户gid对应的组)
此时id看到的gid对应的组发生变化
2.3.1 Linux组账号
2.3.2 gpasswd
【示例】
gpasswd可以将用户添加到很多组
usermod只能有一个次要组
2.3.3 查看组内有哪些成员
######查看组中有哪些成员
[root@mysql-binary ~]# cat group_member.sh
#!/bin/bash
# 位置变量:bash group_member.sh sc1 执行脚本时后面传入的第一个参数(sc1)赋给group_name
group_name=$1
# `cmd` 表示执行cmd并且将结果赋值给变量
# -v 传变量,将外部变量传入awk命令里使用
# $3,$4为gid和把这个组作为附属组的用户名
group_msg=`awk -F: -v group_awk=$group_name '$1==group_awk{print $3,$4}' /etc/group`
# ($group_msg) 表示将group_msg放到一个数组里
group_lst=($group_msg)
# 取数组里的第一个值
group_id=${group_lst[0]}
group_user_1=${group_lst[1]}
# 得到将该组作为主要组的用户
# tr "\n" "," 表示用,替换\n
group_user_2=`awk -F: -v group_id=$group_id '$4==group_id{print $1}' /etc/passwd| tr "\n" ","`
echo $group_user_2$group_user_1
2.4 /etc/login.defs
2.5 ⭐/etc/skel
(初始化配置文件)
新建用户用户时,家目录的默认文件都是从/etc/skel目录下拷贝过来的
2.5.1 .bash_profile
用户每次登录时执行,去执行.bashrc,输出PATH变量为全局变量
2.5.2 .bashrc
每次进入新的bash环境时执行,会执行/etc/bashrc
2.5.3 /etc/bashrc
全局配置,只有root用户可以修改
定义了很多函数、环境变量、别名等
2.5.4 .bash_history
默认保存1000条命令
当用户exit注销的时候,会将再内存保存的历史命令写到.bash_history
当用户下次登录时会加载.bash_history里的历史命令到内存
在退出前使用history -c会清除保存在内存里的历史命令
2.5.5 私有变量
公有变量(环境变量)回传给子进程
export 将变量输出为全局变量(公有变量)
export meinv 将meinv变为全局变量
2.5.6 执行脚本的方法
2.5.7 ⭐(记)两种bash初始化的文件
安装软件,让所有的用户的PATH里都田间软件的sbin目录的路径:
推荐加到/etc/bashrc(这样直接敲一个bash也可以)
2.5.8 开机启动流程
三、useradd命令在后台所作的工作
3.1 手动新建用户
3.1.1 步骤:
1. 修改/etc/passwd,在末尾追加
lihua:x:5566:5566::/home/lihua:/bin/bash
2. 修改/etc/shadow,在末尾追加
lihua:!!:19083:0:99999:7:::
3. 修改/etc/group,在末尾追加
shanxi:x:5566:
4. 新建家目录
mkdir /home/lihua
5. 复制/etc/skel目录下的环境变量配置文件
[root@localhost skel]# cp /etc/skel/.bash* /home/lihua
6. 创建邮箱文件
[root@localhost skel]# touch /var/spool/mail/lihua
7. 验证lihua用户是否可以su切换登录
[root@localhost ~]# su - lihua
[lihua@localhost ~]$ pwd
/home/lihua
[lihua@localhost ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc
[lihua@localhost ~]$ mkdir lihua
mkdir: 无法创建目录"lihua": 权限不够 #因为lihua这个目录是root用户创建的,所以这个文件到拥有者和组都是root
[root@localhost ~]# cd /home
[root@localhost home]# ll
总用量 0
drwxr-xr-x 2 root root 62 4月 3 20:56 lihua
拥有者:属主user
属组:group
过户:将文件的属组或属主修改为别的用户或组
8. 使用root用户去/home/lihua文件夹的所有者为lihua,组为shanxi
chown -R lihua:shanxi /home/lihua
前面写用户名,后面写组名,中间用冒号:隔开
-R 递归修改目录里的所有文件和文件夹的所有者
[lihua@localhost ~]$ chown lihua:shanxi /home/lihua
chown: 正在更改"/home/lihua" 的所有者: 不允许的操作 #只有root用户可以使用这条命令
[lihua@localhost ~]$ exit
登出
[root@localhost home]# chown -R lihua:shanxi /home/lihua
[root@localhost home]# ll -d /home/lihua
drwxr-xr-x 2 lihua shanxi 62 4月 3 20:56 /home/lihua
9. 修改邮箱的所有者
进入/var/spool/mail目录后,输入chown lihua:mail lihua
[root@localhost home]# cd /var/spool/mail
[root@localhost mail]# chown lihua:mail lihua
[root@localhost mail]# ll
总用量 4716
-rw------- 1 lihua mail 15844 4月 3 21:11 lihua
10. 修改权限,只有用户本身具有家目录的读写执行权限,其他人和组都没有任何权限
chmod 700 /home/lihua
[root@localhost home]# ll
总用量 0
drwxr-xr-x 2 lihua shanxi 62 4月 3 20:56 lihua
# 这里别的用户也可以读和执行lihua的家目录
[root@localhost home]# chmod 700 /home/lihua
[root@localhost home]# ll
总用量 0
drwx------ 2 lihua shanxi 62 4月 3 20:56 lihua
drwx------ 2 2005 yitianming 83 4月 1 23:03 yitianming