## 命令格式与目录处理命令ls
### 命令格式
“`properties
命令格式:命令 [-选项][参数]
例:ls -la /etc
说明:1) 个别命令使用不遵循此格式
2) 当有多个选项时,可以写在一起
3) 简化选项与完整选项
-a 等于 –all
“`
### 目录处理命令ls
“`properties
命令名称:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald][文件或目录]
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
文件权限标志
-rw-r–r–
–> 文件类型(-文件 d目录 l软链接文件)
–> rw– r– r–
u g o
u所有者 g所属组 o其他人
r读 w写 x执行
“`
## 关机重启命令
### shutdown命令(推荐)
“`properties
[root@localhost ~]#shutdown [选项] 时间
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 取消前一个关机命令
“`
### 其他关机命令
“`properties
[root@localhost ~]#halt
[root@localhost ~]#poweroff
[root@localhost ~]#init 0
“`
### 其他重启命令
“`properties
[root@localhost ~]#reboot
[root@localhost ~]#init 6
“`
### 系统运行级别
“`properties
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户
4 未分配
5 图形界面
6 重启
[root@localhost ~]#cat /etc/inittab
#修改系统默认运行级别
id:3:initdefault:
#查询系统运行级别
[root@localhost ~]#runlevel
“`
### 退出登录命令
“`properties
#注销用户
[root@localhost ~]#logout
#退出控制台
[root@localhost ~]#exit
#logout和exit的区别
logout 注销用户
exit 退出控制台,对于多层shell,用于逐层退出,到最顶层shell,作用就和logout相同。
如果没有切换过用户的话,这两个命令都是退出控制台了。
如果切换过用户的话,这两个命令都是注销当前用户,返回上一个用户
“`
## 链接命令
### ln链接命令
“`properties
命令名称:ln
命令英文原意:link
命令所在路径:/bin/ln
执行权限:所有用户
语法:
ln -s [原文件] [目标文件]
-s 创建软链接
ln 创建硬链接
功能描述:生成链接文件
示例
#创建文件/etc/issue的软链接/tmp/issue.soft
[root@localhost ~]#ln -s /etc/issue /tmp/issue.soft
#创建文件/etc/issue的硬链接/tmp/issue.hard
[root@localhost ~]#ln /etc/issue /tmp/issue.hard
“`
### 软链接和硬链接的区别
“`properties
#软链接特征:类似Windows快捷方式
1、lrwxrwxrwx l 软链接
软链接文件权限都为rwxrwxrwx
2、文件大小-只是符号链接
3、/tmp/issue.soft -> /etc/issue
箭头指向原文件
#硬链接特征:
1、拷贝cp -p + 同步更新
echo “this is a test” >> /etc/motd
2、可通过i节点识别
3、不能跨分区
4、不能针对目录使用
“`
## 文件处理命令
### touch创建文件命令
“`properties
命令名称:touch
命令所在路径:/bin/touch
执行权限:所有用户
语法:
touch [文件名]
功能描述:创建空文件
#示例:
[root@localhost ~]#touch demo.txt
“`
### cat查看文件内容命令
“`properties
命令名称:cat
命令所在路径:/bin/cat
执行权限:所有用户
语法:
cat [文件名]
功能描述:显示文件内容
-n 显示行号
#示例:
[root@localhost ~]#cat demo.txt
hello!
linux
[root@localhost ~]#cat -n demo.txt
1 hello!
2 linux
“`
### more查看长文件内容命令
“`properties
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
语法:
more [文件名]
(空格)或f 翻页
(Enter) 换行
q或Q 退出
功能描述:分页显示文件内容
示例:
[root@localhost ~]#more /etc/services
“`
### less查看长文件内容命令
“`properties
命令名称:less
命令所在路径:/usr/bin/less
执行权限:所有用户
语法:
less [文件名]
功能描述:分页显示文件内容(可向上下翻页↑↓)
示例:
[root@localhost ~]#less /etc/services
“`
### head查看文件前几行命令
“`properties
命令名称:head
命令所在路径:/usr/bin/head
执行权限:所有用户
语法:
head [文件名]
功能描述:显示文件前面几行
-n 指定行数
示例:
[root@localhost ~]#head -n 20 /etc/services
“`
### tail查看文件后面几行命令(动态日志查看)
“`properties
命令名称:tail
命令所在路径:/usr/bin/tail
执行权限:所有用户
语法:
tail [文件名]
功能描述:显示文件后面几行
-n 指定行数
-f 动态显示文件末尾内容
示例:
[root@localhost ~]#tail -n 20 /etc/services
[root@localhost ~]#tail -f /tomcat/logs/catalina.out
“`
## vim编辑器
### vim常用操作
#### vim简介
vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。
**vim没有菜单,只有命令**
#### vim工作模式
![vim工作模式](D:\Linux\vim工作模式.png)
#### 插入命令
命令 作用
a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新的一行
O 在光标上插入新的一行
#### 定位命令
命令 作用
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
$ 移至行尾
0 移至行首
#### 删除命令
命令 作用
x 删除光标所在处的字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
n1,n2d 删除指定范围的行
#### 复制和剪切命令
命令 作用
yy 复制当前行
nyy 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p 粘贴在当前光标所在行下
P 粘贴在当前光标所在行上
#### 替换和取消命令
命令 作用
r 取代光标所在处字符
R 从光标所在处开始替换字符,按Esc结束
u 取消上一步操作
#### 搜索和搜索替换命令
命令 作用
/string 搜索指定字符串
搜索时忽略大小写:set ic
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在指定范围内替换指定字符串
#### 保存和退出命令
命令 作用
:w 保存修改
:w new_filename 另存为指定文件
:wq 保存修改并退出
ZZ 快捷键,保存修改并退出
:q! 不保存修改退出
:wq! 强制保存修改并退出(文件所有者及root可使用)
### vim使用技巧
1. 导入文档中的内容 r 文件名
示例:r demo.txt
2. 导入命令执行结果:r !命令
示例:r !date
2017年 07月 17日 星期一 10:14:36 CST
3. 自定义快捷键:map 快捷键 触发命令 (命令可以任意组合)
示例:map ^P I#<ESC> 注释
:map ^B 0x 取消注释
4. 连续行注释:n1,n2s/^/#/g
:n1,n2s/^#//g
:n1,n2s/^/\/\/g //(java中的单行注释)
5. 替换:ab syso System.out.println(“”); (eclipse中快捷键syso)
6. 自定义快捷键,电脑重启之后,设置的快捷键需要重新设置,如果需要自定义的编辑模式永久生效,需要在用户根目录(root用户[/root] 普通用户[/home/fei])配置.vimrc文件
示例:cd ~ 打开根目录
touch .vimrc 创建配置文件
vim .vimrc 编辑配置文件
set nu 显示行号
map ^P I#<ESC> 注释
:wq 退出并保存
## 软件包管理简介
### 1、软件包分类
– 源码包
脚本安装包
– 二进制包
RPM包
系统默认包
### 2、源码包
源码包的优点:
1. 开源,如果有足够的能力,可以修改源码
2. 可以自由选择所需的功能
3. 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
4. 卸载方便
源码包的缺点:
1. 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
2. 编译过程时间较长,安装比二进制安装时间长
3. 因为是编译安装,安装过程中一旦报错新手很难解决
### 3、RPM包
二进制包的优点:
1. 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2. 安装速度比源码包安装快的多
二进制包的缺点
1. 经过编译,不再可以看到源代码
2. 功能选择不如源码包灵活
3. 依赖性
## RPM包管理-rpm命令管理
### 1、RPM包命名规则
“`properties
举例:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台
i686 适合的硬件平台
rpm rpm包扩展名
“`
### 2、RPM包依赖性
– 树形依赖:a→b→ c
– 环形依赖:a→b→c→a
– 模块依赖:模块依赖查询网站
www.rpmfind.net
### 3、包全名与包名
“`properties
#包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
#包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
“`
### 4、RPM安装
“`properties
rpm -ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性
“`
### 5、RPM包升级
“`properties
rpm -Uvh 包全名
选项:
-U(upgrade) 升级
“`
### 6、卸载
“`properties
rpm -e 包名
选项:
-e(erase) 卸载
–nodeps 不检查依赖性
“`
### 7、查询是否安装
“`properties
[root@localhost ~]# rpm -q 包名
#查询包是否安装
选项:
-q 查询(query)
[root@localhost ~]# rpm –qa
#查询所有已经安装的RPM包
选项:
-a 所有(all)
“`
### 8、查询软件包详细信息
“`properties
[root@localhost ~]# rpm –qi 包名
选项:
-i 查询软件信息(information)
-p 查询未安装包信息(package)
“`
### 9、查询包中文件安装位置
“`properties
[root@localhost ~]# rpm –ql 包名 选项:
-l 列表(list)
-p 查询未安装包信息(package)
“`
### 10、查询系统文件属于哪个RPM包
“`properties
[root@localhost ~]# rpm –qf 系统文件名 选项:
-f 查询系统文件属于哪个软件包(file)
“`
### 11、RPM包校验
“`properties
[root@localhost ~]# rpm –V 已安装的包名 选项:
-V 校验指定RPM包中的文件(verify)
#验证内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否 改变)
D 设备的中,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
“`
“`properties
#文件类型
1 c 配置文件(config file)
2 d 普通文档(documentation)
3 g “鬼”文件(ghost file),很少见,就是该文件不 应该被这个RPM包包含
4 l 授权文件(license file)
5 r 描述文件(read me)
“`
### 12、RPM包中文件提取
“`properties
[root@localhost ~]# rpm2cpio 包全名 | \ cpio -idv .文件绝对路径
#将rpm包转换为cpio格式的命令
rpm2cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio
[root@localhost ~]# cpio 选项 < [文件|设备]
#选项:
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程
#示例
#查询ls命令属于哪个软件包
[root@localhost ~]# rpm -qf /bin/ls
#将ls命令移动到/tmp文件夹,造成ls命令误删除假象
[root@localhost ~]# mv /bin/ls /tmp/
#提取RPM包中ls命令到当前目录的/bin/ls下
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils- 8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
#把ls命令复制会/bin/目录,修复文件丢失
[root@localhost ~]# cp /root/bin/ls /bin/
“`
## RPM包管理-yum在线管理
### 1、IP地址配置和网络yum源
#### 1.1 IP地址配置
“`properties
[root@localhost ~]# setup
#使用setup工具
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
把ONBOOT=“no” 改为
ONBOOT=“yes“
#启动网卡
[root@localhost ~]# service network restart
#重启网络服务
“`
#### 1.2 网络yum源
“`properties
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
[base] 容器名称,一定要放在[]中
name 容器说明,可以自己随便写
mirrorlist 镜像站点,这个可以注释掉
baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务 器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地 址
enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成
enable=0就是不生效
gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
gpgkey 数字证书的公钥文件保存位置。不用修改
“`
### 2、yum命令
#### 2.1 查询
“`properties
1)查询
[root@localhost yum.repos.d]# yum list
#查询所有可用软件包列表
[root@localhost yum.repos.d]# yum search 关键字
#搜索服务器上所有和关键字相关的包
“`
#### 2.2 安装
“`properties
2)安装
[root@localhost yum.repos.d]# yum –y install 包名 选项:
install 安装
-y 自动回答yes
“`
#### 2.3 升级
“`properties
[root@localhost yum.repos.d]# yum -y update 包名 选项:
update 升级
-y 自动回答yes
注意:升级一定要加包名,否则linuk系统全盘升级,一般很牛逼的人都不会轻易去尝试。
“`
#### 2.4 卸载
“`properties
[root@localhost yum.repos.d]# yum -y remove 包名 选项:
remove 卸载
-y 自动回答yes
注意:尽量不要使用yum卸载,因为它会自动把依赖包也卸载掉,但是有些依赖包不仅仅是一个软件在使用,其他软件也在使用这个依赖包。
“`
#### 2.5 yum软件组管理命令
“`properties
[root@localhost ~]# yum grouplist
#列出所有可用的软件组列表
[root@localhost ~]# yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
[root@localhost ~]# yum groupremove 软件组名
#卸载指定软件组
“`
### 3、光盘yum源搭建
#### 3.1 光盘yum源搭建步骤
“`properties
1)挂载光盘
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)让网络yum源文件失效
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Debuginfo.repo Centos-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
3)修改光盘yum源文件
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file///mnt/cdrom
#地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RRM-GPG-KEY-CentOS-6
注意:一般配置文件有严格的格式限制,不能多加空格或者注释。
“`
## 源码包管理
### 1、源码包与RPM包的区别
“`properties
1、区别
安装之前的区别:概念上的区别
安装之后的区别:安装位置不同
#RPM包安装位置
是安装在默认位置中
#RPM包默认安装路径
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
#源码包安装位置
安装在指定位置当中,一般是
/usr/local/软件名/
#安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管 理命令(service)来管理,例如RPM包安 装的apache的启动方法是:
/etc/rc.d/init.d/httpd start
service httpd start
#而源码包安装的服务则不能被服务管理命 令管理,因为没有安装到默认路径中。所 以只能用绝对路径进行服务的管理,如:
/usr/local/apache2/bin/apachectl start
“`
### 2、源码包的安装过程
#### 2.1 安装准备
“`properties
#安装C语言编译器
[root@localhost ~]# yum –y install gcc
#下载源码包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
“`
#### 2.2 安装注意事项
“`properties
#源代码保存位置:/usr/local/src/
#软件安装位置:/usr/local/
#如何确定安装过程报错:
a.安装过程停止
b.并出现error、warning或no的提示
“`
#### 2.3 源码包安装过程
“`properties
#下载源码包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
#解压缩下载的源码包
[root@localhost ~]# tar -xvf httpd-2.2.34.tar.gz /usr/local/apache2
#进入解压缩目录
[root@localhost ~]# cd /usr/local/apache2/httpd-2.2.34
#定义安装位置
[root@localhost httpd-2.2.34]# ./configure –prefix=/usr/local/apache2
“`
#### 2.4 ./configure 软件配置与检查
“`properties
Ø 定义需要的功能选项。
Ø 检测系统环境是否符合安装要求。
Ø 把定义好的功能选项和检测系统环境的信息 都写入Makefile文件,用于后续的编辑。
“`
#### 2.5 源码包的编译与安装
“`properties
#编译解压后的源码包
[root@localhost httpd-2.2.34]# make
#清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
[root@localhost httpd-2.2.34]# make clean
#将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
[root@localhost httpd-2.2.34]# make install
“`
#### 2.6 测试是否安装成功
“`properties
#启动apache服务
[root@localhost httpd-2.2.34]# /usr/local/apache2/bin/apachectl start
#在浏览器输入
localhost:80
#浏览器显示内容
It works!
“`
#### 2.7 源码包的卸载
“`properties
#不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件
“`
## 脚本安装包
### 1、 脚本安装包简介
“`properties
# 脚本安装包并不是独立的软件包类型,常见 安装的是源码包。
# 是人为把安装过程写成了自动安装的脚本, 只要执行脚本,定义简单的参数,就可以完 成安装。
# 非常类似于Windows下软件的安装方式
“`
### 2、 Webmin的作用
“`properties
#Webmin 是一个基于 Web 的 Linux 系统管 理界面。您就可以通过图形化的方式设置 用户帐号、Apache、DNS、文件共享等服 务。
“`
### 3、Webmin安装过程
“`properties
#创建文件夹webmin
[root@localhost ~]# mkdir /usr/local/webmin
#进入/usr/local/webmin
[root@localhost ~]# cd /usr/local/webmin
#下载软件
[root@localhost webmin]# wget https://sourceforge.net/projects/webadmin/files/webmin/1.850/webmin-1.850.tar.gz/download
# 解压缩,并进入解压缩目录
[root@localhost webmin-1.850]# tar -xvf webmin-1.850.tar.gz
# 执行安装脚本
[root@localhost webmin-1.850]# ./setup.sh
注意:安装过程中,键盘enter键,就表示执行下一步;
:安装过程中,需要设置登录名和密码
小技巧:Ctrl+Backspace(退格键) 删除
# 安装完之后,测试是否安装成功
# 开启防火墙10000端口
[root@localhost webmin-1.850]# /sbin/iptables -I INPUT -p tcp –dport 10000 -j ACCEPT
[root@localhost webmin-1.850]# /etc/rc.d/init.d/iptables save
# 浏览器测试,输入linux Ip+端口号(10000)
成功的话,会进入一个登陆界面
“`
## 用户和用户组管理
### 1、用户管理简介
“`properties
# 越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和 服务器操作规范。
# 在Linux中主要是通过用户配置文件来查 看和修改用户信息
“`
### 2、用户配置文件
#### 2.1 用户信息文件/etc/passwd
“`properties
#查看用户信息配置文件信息
[root@localhost ~]# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
demo:x:500:500::/home/demo:/bin/bash
liqi:x:501:501::/home/liqi:/bin/bash
mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
ucenter:x:502:502::/ucenter:/bin/bash
[root@localhost ~]# man 5 passwd
#看主要内容 The field descriptions are:
accout
password
UID
…
#第1字段:用户名称
#第2字段:密码标志
#第3字段:UID(用户ID)
0: 超级用户
1-499: 系统用户(伪用户)
例如:mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
500-65535: 普通用户
例如:demo:x:500:500::/home/demo:/bin/bash
#第4字段:GID(用户初始组ID)
#第5字段:用户说明
#第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
#第7字段:登录之后的Shell
//shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流(一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。),“非登陆shell(/bin/nologin 就是一个非登陆shell)”无法让用户与计算机交流。
“`
#### 2.2 初始组和附加组
“`properties
#初始组:就是指用户一登录就立刻拥有这 个用户组的相关权限,每个用户的初始组 只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
#附加组:指用户可以加入多个其他的用户 组,并拥有这些组的权限,附加组可以有 多个。
“`
#### 2.3 Shell是什么
“`properties
#Shell就是Linux的命令解释器。
#在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin(用户禁用),/usr/bin/passwd等。
“`
### 3、影子文件/etc/shadow
#### 3.1 影子文件/etc/shadow
“`properties
[root@localhost ~]# cat /etc/shadow
root:$6$CDD56Ji0/1P8TRCD$9QaqGR9Jpy6v9tYbs12rnhMynPdyYy2Y.AEsfUbh4bEgc7aF5UvIWB5DjYc6owmWsHus0WAfTOzJPTWAfp2.b/:17350:0:99999:7:::
“`
**配置文件详解**
“`properties
#第1字段:用户名
#第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是“!!”或“*”代表没有密码,不能登 录
# 第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳 加1
//改密码提示 it is based on a dictionary word(它是基于字典的词) is too similar to the old one(和之前设置的密码太相似)
# 第4字段:两次密码的修改间隔时间(和 第3字段相比)
# 第5字段:密码有效期(和第3字段相比)
# 第6字段:密码修改到期前的警告天数( 和第5字段相比)
# 第7字段:密码过期后的宽限天数(和第5 字段相比)
0:代表密码过期后立即失效
-1:则代表密码永远不会失效。
# 第8字段:账号失效时间
要用时间戳表示
# 第9字段:保留
“`
#### 3.2 时间戳换算
“`properties
#把时间戳换算为日期
date -d “1970-01-01 16066 days”
# 把日期换算为时间戳
echo $(($(date –date=”2017/07/29″ +%s)/86400+1))
注意:时间 +%s 有个空格 一定要加上
“`
### 4、组信息文件/etc/group和组密码文件/etc/gshadow
#### 4.1 组信息文件/etc/group
“`properties
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
demo:x:500:
liqi:x:501:
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
“`
#### 4.2 组密码文件/etc/gshadow
“`properties
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
demo:!::
liqi:!::
第一字段:组名
第二字段:组密码
第三字段:组管理员用户名
第四字段:组中附加用户
“`
### 5、 用户管理相关文件
#### 5.1 用户的家目录
“`properties
# 普通用户:/home/用户名/,所有者和所属
组都是此用户,权限是700
# 超级用户:/root/,所有者和所属组都是
root用户,权限是550
[root@localhost ~]# cd /home
[root@localhost home]# ll
总用量 24
drwx——. 4 demo demo 4096 7月 6 23:45 demo
drwx——. 4 liqi liqi 4096 7月 6 09:32 liqi
drwx——. 2 root root 16384 7月 4 02:36 lost+found
“`
#### 5.2 用户的邮箱
“`properties
# /var/spool/mail/用户名/长度
[root@localhost ~]# cd /var/spool/mail
[root@localhost mail]# ll
总用量 8
-rw-rw—-. 1 demo mail 0 7月 24 08:22 demo
-rw-rw—-. 1 liqi mail 609 7月 6 01:55 liqi
-rw——-. 1 root mail 1215 7月 6 01:57 root
-rw-rw—-. 1 rpc mail 0 7月 4 02:43 rpc
-rw-rw—-. 1 ucenter mail 0 7月 7 01:51 ucenter
“`
5.3 用户的模板目录
“`properties
# /etc/skel ,每创建一个用户时,系统会按照模板文件给新得生成对应的文件
[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2
示例:
[root@localhost skel]# touch warning.txt
[root@localhost skel]# vim warning.txt
随便写点内容
#创建一个用户
[root@localhost skel]# useradd user1
#为用户设置密码
[root@localhost skel]# passwd user1
更改用户 user1 的密码 。
新的 密码:
无效的密码: 过于简单化/系统化
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
#切换到use1用户
[root@localhost user1]# su user1
[user1@localhost ~]$ ls -a
. .bash_logout .bashrc warning.txt
.. .bash_profile .gnome2
我们可以看到这个用户的家目录生成了warning.txt
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92923