Linux的基本文件操作及用户管理
首先接上篇博客,继续讲文件的操作,然后再讲对用户的操作。
文件操作
显示文件相关信息
ls <option> 显示文件信息,这里的参数不是必选项,可以根据自己的需求选择,当然参数也不局限于以下几个,只是这几个参数相对而言用的比较多。
-l 长列表显示文件信息
-a 显示所有文件包括以.结束的文件,隐藏
-s 显示文件大小
-S 以文件大小排序
-d 显示目录
-R 递归显示
-l:此时将显示当前位置的所有文件,如下图所示,显示此时desktop中共有8个文件,且包含文件的相关信息。
-a:显示所有文件包含隐藏文件,首先利用touch .wang命令创建一个文件名为wang的隐藏文件,此时桌面上并不显示有此文件,利用ls -a命令可以看到系统中已经存在了这个文件
-s:显示文件大小
-S:以文件大小排序
-d:显示目录
-R:递归显示目录
通配符
* 匹配0~任意字符
? 匹配单个字符 rm -fr ????
ls -d *.:输出所有desktop下的所有以.什么结束的文件名
rm -fr ????:删除desktop下的所有四个字符的文件
[[:alpha:]] 单个字母
[[:upper:]] 单个大写字母
[[:lower:]] 单个小写字母
[[:digit:]] 单个数字
[[:alnum:]] 单个数字或字母
[[:space:]] 单个空格
[[:punct:]] 单个符号
首先创建了fiAle,fiale,fi le,fi3le,[email protected]五个文件,rm -fr fi[[:upper:]]le代表删除fi和le中间时大写字母的文件,rm -fr fi[![:space:]]le代表删除除了fi le 文件之外的所有匹配文件
精准匹配:
{} 精准匹配的字符名称
{1..3} 代表1,2,3
{a..c}代表a,b,c
模糊匹配:
[1..3] 代表1或2或3
[ac] 代表a或c
[^ac] 代表除了a,c
[!ac] 代表除了a,c
首先精准匹配创建file{1..3},此时file1,file2,file3都会被创建,删除file2,再使用模糊匹配删除file[1..3],由于是模糊匹配,所以有就删除没有就不操作,并不会报错
用户的管理
1.系统中为什么要有用户?
用户:系统最底层的安全设定,用来限制权力
组:用来共享权力
就比如说我有一个水杯,这个水杯理论上只能被我使用,如果随便来一个人是不能用我的杯子喝水的,那么就相当于我限制了杯子的使用权,但如果来的人是我的父母,我们处于同一个家庭组,那么他们就可以用我的杯子喝水了,处于同一个组的用户可以共享权力。
初始组:相当于生身父母
附加组:相当于认的干爹干妈
2.用户存在的形态
用户和组在系统中是以字符的形式存在的
3.用户配置文件
/etc/passwd 存储用户信息文件
用户名:密码:用户uid:初始组id:用户说明:用户家目录:默认用户所使用的shell
/etc/group 存储用户组信息
组名称:组密码:组id:附加组成员
/home/username 用户家目录
/etc/skel.* 用户骨文件 用户环境配置模板,在用户建立时会自动复制到家目录中
4.用户的查看
whoami 查看当前用户的名称
id username 查看用户的所有id信息
id -u username 查看用户的uid
-g username 查看用户的gid
-G username 查看用户的所在的所有的组的id
-n username 以名称显示信息
5.用户的建立和删除
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home/' 用此命令可以实时 监控配置文件的变化,建议先打开这个命令,再重新打开一个shell来进行用户建立和删除等操作。
userdel username 用户的删除(只删除用户身份,不删除配置文件)
userdel -r username 删除用户身份及所涉及的配置文件
如果在删除过程中忘记删除用户的配置信息,但此时用户已经被删除,可以使用rm -fr /home/username/手动删除该用户的配置信息。
useradd username 使用默认规则建立用户(规则看/etc/login.defs)
-u 指定用户的uid
-g 指定用户的初始组id
-G 指定用户的附加组
-c 指定用户的说明文字
-d 指定用户的家目录
-s 指定用户的shell(系统可以用shell可在/etc/shells中查看)
useradd wang:此时使用默认信息创建用户,可以看出用户id和组id默认是一样的
useradd -u wang:此时用户id变为自己指定的id
useradd -g username:此时组id变为指定的id,但此时的组id必须为系统中已经有的,否则得先创建组
useradd -G username:添加附加组
useradd -c:指定说明文字
useradd -d:指定家目录
useradd -s:指定用户的shell
groupadd groupname 建立组
-g 建立组指定组id
groupdel groupname 删除组
group与上面useradd方法一致,这里就不再赘述。
6.用户的管理
usermod <option> username
-l 用户名称
-u uid
-g 初始组id
-G 更改附加组
-aG 增加附加组
-c 更改用户说明
-d 更改用户家目录指向
-md 更改用户家目录指向并重新命名家目录
-s 更改用户的shell
这里的用户管理与用户创建方法一致,这里仅提供方法,具体的演示就不再提供了。
7.用户切换
用户切换的前提是得有其他的用户
方法:
su - username 切换用户,高级用户切换到低级用户不需要密码
低级用户切换到高级用户或平级用户需要后者密码
注意:重要
1.用户切换后及时退出再切换到下一个用户 exit
2.su - 表示切换用户身份及用户环境 echo $path
如果是su username的话仅仅切换用户身份,但环境并不会改变。举例: su - 刘诗诗 表示当前用户变成刘诗诗且在刘诗诗所在的环境里,相当于完全变成了刘诗诗,而su 刘诗诗仅仅代表变成刘诗诗但我还在当前自己所处的环境中。
8.用户的认证信息
/etc/shadow 用户的认证信息
用户名:
用户密码:
md5 sha512位加密 典型对称加密 vim /etc/login.defs
passwd username 只有超级用户执行
passwd 普通用户修改自己密码
usermod -L 冻结帐号
usermod -U 解锁
passwd -l 冻结帐号,更强
passwd -u 解锁
passwd -d 清空密码
对称加密:加密和解密是同一个东西 如指纹加密
非对称加密:加密和解密是同一个东西,如传统的锁
密码最后一次被修改的时间:(数字可以自己改)
当此位数字为0时用户在登录系统时会被强制改密码
chage -d 0 westos
passwd -e westos
若改为0,则在登陆时强制改密码
密码最短有效期:多久不能改密码(数字可以自己改)
chage -m 1 westos
passwd -n 3 westos
密码最长有效期:密码多长时间后必须被更改(数字可以自己改)
chage -M 30 westos
passwd -x 40 westos
密码过期警告:(数字可以自己改)
chage -W 2 westos
passwd -w 3 westos
密码非活跃期:(数字可以自己改)
chage -I 2 westos
passwd -i 0 westos(-1)
帐号到期日:(数字可以自己改)
chage -E 2018-11-11 westos
未设定用户自定义
9.用户权力下放
普通用户默认不能新建用户,若想新建用户,则需:
1.配置文件
vim /etc/sudoers
用户名称 主机名称=(执行程序身份) 命令 ##当执行命令时需要用户验证
linux11 dns-server.example.com=(root) /usr/sbin/useradd
用户名称 主机名称=(执行程序身份) NOPASSWD: 命令1, 命令2 ##当执行命令时不要用户验证
2.配置命令
visudo 此命令
测试:
su - linux11
sudo useradd hello
此时就可以在普通用户下创建用户了。