Linux基础(2)
ls及其选项的介绍
ls 显示文件的信息
ls -l 长列表显示文件信息
ls -a 显示文件包括以"."开头的(以"."开头表示这个文件是隐藏文件)
ls -s 显示文件大小
ls -S 以文件大小排序
ls -d 显示目录
ls -R 递归显示
举例:
通配符
* 匹配0~任意字符
? 匹配单个字符(一个?表示一个字符)例如:rm -rf ????(删除文件名有四个字符的文件)
[[:alpha:]] 单个字母
[[:upper:]] 单个大写字母
[[:lower:]] 单个小写字母
[[:digit:]] 单个数字
[[:alnum:]] 单个数字或者字母
[[:space:]] 单个空格
[[:punct:]] 单个字符注意:
这两种形式是错误的:rm -rf [[:alpha:]]{2}
rm -rf [[:alpha:]] \ { 2 \ }
不能使用java的形式表示两个字母,如果要表示需要写两个:[[:alpha:]]
举例:* 通配符:删除文件名为file和文件名后面是以file开头的文件
- 删除前:
- 删除后:
举例:? 通配符:删除文件名为四个字符的文件
- 删除前:
- 删除后:
举例:单个字母,单个数字以及特殊字符
- 删除前:删除文件结尾为小写字母+数字的文件
- 删除后:
1、绝对匹配:
{1 . . 3} 表示1和2和3
{a . . c} 表示a和b和c
举例:将文件file1,file2和file3复制到 /mnt/目录中
- 复制前:
- 复制后:
2、模糊匹配:
[ac] a或者c
[^ac] 既不是a也不是c
[!ac] 既不是a也不是c
举例:删除文件名为file后的字符不为 1 的文件
- 删除前:
- 删除后:
用户的管理
1、系统为什么要有用户
用户:系统底层的安全设定(限制权利)
- 举例:你的杯子你可以用,你的父母可以用,但是外人用就不行,因为你有使用你杯子的权利,别人没有
2、用户存在的形态
组:共享权利
- 自己能决定的组:附加组(举例:你认了个干爹,这个你可以决定,也可以认多个干爹)
- 自己不能决定的组:初始组(举例:相当于你刚出生是自己的亲生父母,这个不能改变)
3、用户配置文件
- /etc/passwd 用户信息文件
- 用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认使用的shell
- 文件打开截图:
- /etc/group 用户组信息
- 组名称:组密码(一般以x表示):组id:附加组成员
- 打开文件截图:
- /home/username 用户家目录
- 用户家目录截图:当前用户为westos
- /etc/skel.* 用户骨文件(用户环境配置模板,在用户建立时会自动被复制到家目录中)
用户的查看
- whoami 查看当前用户的名称
- id username 查看用户的id信息
- id -u username 查看用户的id
- id -g username 查看用户组的id
- id -G username 查看用户所在的所有组的id
- id -n username 以名称显示信息
举例:
用户的建立与删除
- watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo====;ls -l /home' 用来展示用户的各项参数,直观
举例:
- /etc/login.defs 在此文件中可以设定建立用户的默认信息
- useradd username 使用默认规则建立用户(查看/etc/login.defs)
- useradd -u 6666 username 指定用户的id
- useradd -g 6666 username 指定用户的初始组id(前提是6666这个组存在)
- useradd -G username 指定用户的附加组
- useradd -c username 指定用户的说明文字
- useradd -d username 指定用户的家目录
- useradd -s username 指定用户的shell(系统可用的shell可在/etc/shells中查看)
举例:建立一个名为hello的用户
举例:建立一个名为hello1的用户,并指定该用户的id
举例:建立一个名为hello1的用户,并指定该用户的附加组
- userdel username 删除用户身份(如果没有加-r需要在home下删除username文件)
- userdel -r username 删除用户身份以及用户的系统配置文件
举例:删除用户名为hello2的用户,不使用选项 -r
但是这样删不干净,还需要进入home目录删除对应的文件
举例:在选项上加上 -r 一步到位删除用户
- groupadd groupname 建立一个组
- groupadd -g groupname 建立指定组id
- groupdel groupname 删除组
举例:建立用户组
举例:删除用户组
- kill -9 占用进程 如果删除的用户正在被占用,那么需要先杀死这个进程,在执行删除
用户的管理
- usermod -l newusername oldusername 更改用户名称
- usermod -u newuid username 更改用户id
- usermod -g newgroupid username 更改初始组id
- usermod -G newgroup username 更改附加组
- usermod -aG newgroup username 增加附加组
- usermod -c newtext username 更改用户说明
- usermod -d newhome username 更改用户家目录指向
- usermod -md newhome username 更改用户家目录指向并重命名家目录
- usermod -s newshell username 更改用户的shell
更改用户的参数前:使用默认参数
更改各项参数后:
用户的切换
su - username 切换到username用户,高级用户到低级用户不需要密码;
低级切换到高级或者平级用户需要后者密码;
注意:
1.用户切换后及时退出在切换到下一个用户(exit:表示退出)
2.su - 表示切换用户身份及用户环境; su 表示切换到当前用户但是用户环境不变
用户的认证信息
- watch -n 1 'tail -n 1 /etc/shadow' 每隔一秒执行一次这个命令
- /etc/shadow 用户的认证信息(只有超级用户才能进入)
- 用户名称:
- 用户密码: md5 sha512 对称加密(加密和解密相同,比如都是指纹)
passwd username 只有超级用户可以执行
passwd 普通用户修改自己密码
usermod -L 冻结帐号
usermod -U 解锁
passwd -l 冻结帐号(更加安全)
passwd -u 解锁
passwd -d 清空密码举例:冻结帐号
举例:解冻
- 密码最后一次被修改的时间: 这个值为0时,那么用户在登陆系统时被强制修改密码
chage -d 0 username
passwd -e username举例:
- 密码最短有效期:
chage -m 1 username
passwd -n 0 username举例:
- 密码最长有效期:
chage -M 30 username
passwd -x 40 username举例:
- 密码过期警告:当到达了最长有效期还有多少天时,这个天数是你设定的,那么系统就会开始提醒你该密码
chage -W 2 username
passwd -w 3 username举例:
- 密码非活跃期:当到达最长有效期时,系统不会冻结,当过了这个非活跃期才会进行冻结
chage -I 2 username
passwd -i 0 username举例:
- 帐号到期日:到了这个日期系统自动冻结
chage -E 2018-11-11 username
- 未设定用户自定义
用户权利下放
- (普通用户建立用户(默认不能),用户默认id是1000)
- 配置文件 /etc/sudoers
- 配置命令 visudo 此命令提供语法检测
- 主集名称 hostname
- 用户名称 主机名称=(执行程序身份) 命令 ##当执行命令时需要用户验证
linux11 dns-server.example.com=(root) /usr/sbin/useradd
- 用户名称 主机名称=(执行程序身份) NOPASSWD: 命令1, 命令2 ##当执行命令时不要用户验证
linux11 dns-server.example.com=(root) NOPASSWD: /usr/sbin/useradd, /uer/sbin/userdel
- 测试:
su - linux11
sudo useradd hello举例:
- 首先创建一个新的用户名为linux11,并且进入这个用户
- 在这个用户下在创建一个新的用户,发现会报错(Permission denied :拒绝访问,权限不够)
- 那么需要从超级用户进入并更改/etc/sudoers中的配置,进入后在浏览模式输入:100,在这里开始编辑
- 然后创建就能成功了,但是需要输入密码,我不想输入密码怎么办
- 那么还是要进入这个/etc/sudoers这个文件进行编辑
- 然后创建文件就可以了,不需要输入密码
- 但是我要删除怎么办,输入删除命令会显示权限不够
- 那么还是要进入刚才编辑的那个文件进行编辑
- 之后进行删除就可以删除了
- 如果需要进行别的操作,那么还需要重复上述步骤进行编辑,之后才能进行相应的操作