Linux总结第二天
1.ls ##显示文件信息
详解步骤如下:
(1)在已创建的文件a中提前写入一行文字,并用“cat a“将文件a中的内容显示在shell中
(2)ls -l 以长列表显示文件信息,可显示文件中元数据
(3)ls -s 显示文件a的大小
(4)创建cc文件和隐藏文件.h文件,使用ls -S 对文件大小排序,大文件默认排在前面
(5)ls -a 显示所有文件包括以“.”开头的隐藏文件(“.文件”是隐藏文件)
对于目录:
(1)使用ls显示出桌面文件及目录,目录显示为蓝色。ls -d 显示目录本身
(2)ls -dl dir 显示目录dir的属性
(3)ls -R dir是目录dir的递归显示
2.通配符
详细步骤解析如下:
(1)创建隐藏文件.{1..5}并显示出来。{1..5} 即精确匹配1 2 3 4 5,* 即匹配0~任意字符。
使用ls -a .*即可显示出当前目录下所有的文件,包括隐藏文件
(2)删掉上面创建的文件后创建abc,dd,aaa三个文件。
? 即匹配单个字符,几个问号就代表几个字符 ,如下rm -rf ??,即删掉两个字符的文件,rm -rf ???即删掉三个字符
(1)创建fil,file文件,删除该目录下与fil匹配且后缀含有单个字母的文件,即file。
[[:alpha:]] 匹配单个字母
(2)创建file和File后,删除首字母为大写字母的文件,即File
[[:upper::]] 匹配单个大写字母
(3)创建FILE后删除首字母为小写字母的文件,即file
[[:lower:]] 匹配 单个小写字母
(4)创建file1~3,filea~d,先显示出末尾为数字的文件,最后显示出末尾为单个数字或字母的文件。
[[:digit:]] 匹配单个数字
[[:alnum:]] 单个数字或字母
(5)先创建“fi le”,“[email protected]”文件,显示含有空格的文件即“fi le”,最后显示含有“@”的文件,即“[email protected]”。
[[:space:]] 匹配 单个空格
[[:punct:]] 匹配单个符号
(6)先显示所有末尾为数字1或2的文件,再显示末尾为a或c的文件,最后显示末尾不是abc的文件
{a..c} #a b c
[1-3] #1或2或3模糊匹配
[ac] #a或c
[^ac] #除了a和c
(7)创建如下图的文件,并显示出其中既不含空格也不含特殊符号的文件,即file
[!ac] #不是a也不是c,同上。
3.用户的管理
1.系统中为什么要有用户
这是最底层的安全设定用来回收权力支配权力的,组是用来共享权力的
2.用户存在形态
初始组无法更改,所有用户都有初始组,附加组是超级用户给其他用户附加的
3.用户配置文件
/etc/passwd 是用户信息文件,使用vim打开该文件,截取下图:
对应的是“用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认使用的shell“
/etc/group 是用户组信息,vim打开如下,截部分图如下:
每行对应的是“组名称:组密码:组id:附加组成员“
/home/username 是用户家目录
/etc/skel.* 是用户骨文件(用户环境配置模板,在用户建立时会自动复制到家目录中)
4.用户的查看
whoami #查看当前用户名称
id username #查看用户的id信息
id -u username #查看用户的uid
id -g username #查看用户gid
id -G username #用户所在的所有组id
id -n username #以名称显示信息
id -Gn #用户所在的所有组名称
id -gn #用户初始组名称
5.用户的建立及删除
步骤:
1.使用如下指令观察/etc/passwd文件 和/etc/group文件的后四行,以及根下的家目录每一秒的变化。
注意:uid和gid在用户建立时是一致的,先创建组才能指定初始组给用户,删除该用户时则也删除该组
指定附加组以后,则有初始组和附加组两个组。
/etc/login.defs 在此文件中可以设定建立用户的默认信息
2.建立删除用户,并在上述指令打开的shell中观察变化
useradd username 使用默认规则建立用户,规则参看/etc./login.defs
ueserdel username 仅仅删除用户身份
userdel -r username 删除用户身份及用户的系统配置文件
若没有执行则执行rm -fr /home/username
useradd -u username 指定用户的uid
useradd -g username 指定用户的初始组id
groupadd -g gid groupname 创建组并给出组id
useradd -G username 指定用户的附加组
useradd -c username 指定用户的说明文字
useradd -d username 指定用户的家目录
useradd -s username 指定用户shell(可以用shell在/etc/shells中查看可用shell)
可以使用如下指令一次性创建用户并进行设置
6.用户管理
修改步骤类似于用户的创建和删除。
usermod -l 新名称 原名称 修改用户名
usermod -u uid username 修改用户uid
usermod -g 修改初始组id
usermod -G 更改附加组
usermod -aG 增加附加组
usermod -G “” 清除所有附加组
usermod -c 改变用户说明文字
usermod -d /home/username 仅仅改变/etc/passwd下的字符串,不改变家目录
usermod -md /home/其他名称 连同家目录一起改变
usermod -s 改变用户shell
7.用户切换
su - username 切换用户,高级用户切换到低级用户不需要密码,低级用户切换到高级用户或者切换到平级用户需要后者密码
注意:
1.用户切换后即使退出再进入下一个用户,不退出,来回切换会使shell出问题
2.su - 表示切换用户身份及用户环境,su 只切换用户身份,环境变量不改变
可用echo $PATH 查看环境变量
8.用户认证信息
passwd 普通用户改自己密码
/etc/shadow 记录用户的认证信息,格式如下:
用户名称:用户密码:密码最后一次被修改时间:密码最短有效期:最长有效期:密码过期警告期:密码非活跃期:帐号到期日:未设定,用户自定义
详解如下:
用户密码:(md5(对称加密)sha512)
(passwd username是root用户修改密码)
usermod -L 冻结帐号
usermod -U 解锁
passwd -l 冻结(强指令)
passwd -u 解锁(强指令)
passwd -d 清空 密码
密码最后一次被修改时间:(若改为0则用户第一次登录时必须改密码。chage -d 0 username有此效果)
密码最短有效期:
chage -m 1 username
passwd -n 3 username
最长有效期:chage -M 30
passwd -x
密码过期警告期(密码过期前几日进行提醒):
chage -W
passwd -w
密码非活跃期(密vi码过期后延缓密码修改天数):
chage -I
passwd -i 1 username,取消改为-1
帐号到期日:
chage -E 2018-11-11
:未设定,用户自定义
注:passwd 参数 -1 username 取消修改
9.用户权力下放
1.配置文件
/etc/sudoers
2.配置命令
普通用户默认是没有新建或删除用户的权限的,但可通过修改配置文件赋予普通用户所没有的权限。
用visudo 此命令修改配置文件,因为该提供语法检测,出错会提醒修改。
执行此命令后,进入插入模式,将光标定位至100行,有如下图内容,将
“用户名 主机名=(执行程序身份) 命令“添加至“root.....“下面,并保存退出。当执行命令时需要用户验证输入密码。
例:hhh localhost=(root) /usr/sbin/useradd
用户名 主机名=(执行程序身份) NOPASSWD;命令1, 命令2 。保存退出后,执行命令时无需用户密码验证
例:hhh localhost=(root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
测试:
su - linux
sudo useradd hello
10.暴力修改密码
开机时不停上下移动,按e,进入如下界面:
修改配置文件如下:
ctrl-x进入如下界面,执行下图指令