1、查看文件的信息(类似于Windows的查看文件属性)
ls filename #显示文件信息
ls -l filename #长列表显示文件信息
ls -a filename #显示所有文件包括以‘.’开头的
ls -s filename #显示文件大小
ls -S filename #文件大小排序
ls -d filename #显示目录本身
在这里可以看到:
ls -l filename 显示出的是file的文件信息 :
-rw-r--r--.1 root root 7Aug 9 10:22 file 该信息各段的含义是:
字符“-”表示该文件是一个普通文件
“r”表示读(read)
“w”表示写(write)
“1”代表权限
第一个root表示用户名
第二个root表示对文件的读写权限
该段一整段代表的含义是:文件的拥有者root对文件有读写权限,默认其他用户对文件只有读的权限,但没有写的权限。
ls -s filename 显示文件大小
其中"total 4" 表示该文件所占的空间总和是4kb.
ls -S filename 按从大到小的顺序排列
ls -R filename #递归显示 以递归的显示方式显示出来,增强层次感
2、通配符
* 匹配0~任意字符
? 匹配单个字符
[[:alpha:]] 单个字母(外层大括号:模糊匹配)
[[:upper:]] 单个大写字母
[[:lower:]] 单个小写字母
[[:digit:]] 单个数字
[[:alnum:]] 单个数字或字母
[[:space:]] 单个空格
[[:punct:]] 单个符号
{} 精确匹配字符的名称
{1..3} 1 2 3
{a..c} a b c
[1-3] 1或2或3(有就匹配,没有就不匹配)
[ac] a或c
[^ac] a和c
[!ac] 除了a和c
注意:这里只使用了 ls 文件显示命令,但是实际上文件的建立删除等都可以使用该指令,在实际使用过程中按照需求来选择使用。第二点需要说明的是通配符可以使用在任意位置,可以在文件名称的前面、中间或者后面都可以,不局限于下图。这里不一一列出演示。
3、用户的管理
1)系统中为什么要有用户(限制权利)?
最底层的安全设定:特定的人有特定的权力。
用户存在形态:系统存储的文件。
2)为什么要有组(共享权利)?
附加组(享有这个组的权利):可以决定的
初始组:无法决定和改变
4、用户的查看
whoami 查看当前用户的名称
id username 查看username的信息
id -u username 查看用户id信息
-g username 查看用户的uid
-G username 查看用户的gid
-n username 查看username对应的名字
/etc/passwd 用户信息文件
用户名称:密码:用户id:组id:用户说明:用户家目录:用户默认使用的时shell
/etc/group
组名称:组密码:组id:组附加成员
/home/username 用户家目录
注意:上面的terminal为监控信息:指令为watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo====; ls -l /home/'
其中数字“1”表示文件数据每一秒刷新一次
数字“3”表示文件显示3行。使用该指令时请根据需要来设定这两个数字
在此处为了看的清楚,故先输入了whoami,以显示当前用户名,实际上在命令行的前面已经显示了当前的用户名,可参见上一篇博客内容查看,
5、用户的建立和删除
1)用户的删除
userdel username 删除用户身份
userdel -r username 删除用户身份及用户的系统配置文件
2)用户的创建
useradd username 建立用户
/etc/login.defs 在此文件中可以指定用户的默认信息
useradd -u id username 设定用户的uid
useradd username 使用默认规则建立用户
useradd -g username 指定用户的初始组id
useradd -G username 指定用户的附加组
useradd -c username 指定用户的说明文字
userad -d username userus
useradd -s username 指定用户的shell
groupadd groupname 建立组
注意:在看此处命令时应与上面的信息进行对比,能够更容易的看到指令的作用和文件的变化。
用户的删除:(请与上图进行对比,执行了两条删除指令,删除掉了两个用户。监控命令和上面的一样,不再重复写出)
6、用户管理(改变用户信息)
usermod -l 改后名 改前名 修改用户名称
usermod -u 名称 uid
usermod -aG 名称 添加附加组
usermod -g 名称 修改初始组id
usermod -G 名称 修改附加组id(清除原来的,加入新的)
usermod -d /home/westos westos 更改家目录指向
usermod -md /home/westos lee 更改家目录指向并重命名
usermod -s /bin/tcsh westos 更改用户的shelluser
usermod -c 修改用户的说明文字
注意:此处命令只能由超级用户来执行,在执行此处命令时要根据显示出来的监控信息来输入ID等,否则会报错。
在这里需要说明一下组的概念:
组的基本定义是:同一类别,具有某些共同的属性。
组的作用:共享组成员的数据参数,初始组与附加组均可以共享数据参数。
初始组和附加组的区别:初始组是不能选择的,只能被动接受。而附加组是可以选择的。
接下来用test2来解释一下各字段的含义:
test2:x:1002:1003::/home/test2:/bin/bash
用户名称:x(组ID参数表示方式):组ID:uid::家目录:shelluser
7、用户切换
su - username 切换用户,高级用户切换到低级用户不需要密码
低级用户切换到高级或平级需要密码
注意(很重要):
1)用户在切换后退出再进入到下一个用户
2)su - 表示切换用户身份及用户环境
su 表示切换了身份,但不切换用户环境(不用)
注意:切换用户必须先保证有要切换的用户,否则系统会提示该用户不存在,切换自然是失败的。
8、用户的认证信息
/etc/shadow 用户的认证信息
用户名称:
用户密码:
passwd username 只有超级用户执行
passwd 普通用户修改自己密码
passwd -l 冻结帐号
passwd -u 解锁
passwd -d 晴空密码
密码最后一次被修改的时间:
数字为0时用户在登陆系统时会被强制修改密码
chage -d 0 test2
passwd -e wests(两个效果一致)
密码最短有效期:
chage -m 1 test2
passwd -n 3 test2
密码最长有效期:
chage -M 30 test2
passwd -x 40 test2
密码过期警告:
chage -W 2 test2
passwd -w 3 test2
密码非活跃期:
chage -I 2 test2
passwd -i 0 test2
帐号到期日:
chage -E "2018-08-08" test2
未设定用户自定义
首先使用监控指令来打开用户的认证信息,指令为将上面的监控指令的家目录改为/etc/shadow即可,其余指令不变。
在这里可以看到,超级用户可以修改普通用户的密码,但是普通用户不可以修改超级用户的密码,在这里就体现出了权限的重要性。
超级用户可冻结普通用户的账户的部分功能,比如禁止其自行修改密码。普通用户在账户修改密码权限被冻结后,则无法修改自己的密码。大一级,压死你,哈哈。。。
超级用户既然可以冻结你的账户,自然也可以给你解冻啦,普通用户账户被解冻后,当然是之前的权限都有了。可以自行修改密码了。当然在密码设置时不能太简单,否则就跟我一样了,一直给提示。
清空密码呢同样是只有超级用户可以执行,这一点需要注意。普通用户呢,就躺好就行了,被安排的妥妥帖帖的。
用下图test2用户来说明一下各字段所代表的含义(注意test2是经过修改设定了的,test用户是没有经过修改的):
test2::10:0:99999:7:::
用户名称:用户密码:密码最后一次修改时间:密码最短有效期:密码最长有效期:密码过期警告:密码非活跃期:账户到期日:未设定用户自定义
接下来解释一下各字段的含义:
用户名称不需要过多的解释;用户密码是不显示的;
密码最后一次修改时间:顾名思义就是用户最后一次修改的时间,这个可能是密码普通用户本身修改的时间,当然不用想,超级用户也是修改你的密码的,也会在这个监控控制台上显示出来。
密码最短有效期:这个数字代表的是天数,需要注意的是如果是0的话,用户在登陆的时候会首先要求修改密码。
密码最长有效期:就是我们可以看到的99999,这个时间也是天数,大概是200多年,所以可能都JJ了账户密码还在。
密码过期警告:这个举个例子来讲呢,就是说你的密码有效期是30天,也就是说30天后就不能使用了,就像爱奇艺的会员一样。但是呢,会在到期的前多少天给你提示,如test2用户设定的是7天,也就是说在还省7天过期的时候系统会给你提示你的密码即将过期。
密码非活跃期:这个呢同样用一个例子来说明,比如信用卡的还款日期。本来约定好是每个月的10号还信用卡,但是10号没有还,那么在11号或者12号还的话也是不算逾期的,当然具体的天数是根据设定来判断的,在下图呢设定的是0.也就是说超过10号就算违约了。
账户到期日:这个不需要过多的解释,即表示账户什么时候就不能用了。
未设定用户自定义:即表示用户可根据自己的需要来设定用户所个性化的东西。
密码最后一次被修改的时间:
指令是chage -d username
与它具有相同作用的是:passwd -e username
密码最短有效期:(注意同上图进行比较)
指令:chage -m 1 username
passwd -n 3 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-08-08" username
9、用户权力下放
1)配置文件
/etc/stdoers
2)配置命令
visudo 此命令提示语法检错
用户名称 主机名称=(执行程序身份)命令 当执行命令时需要用户认证
linuxx dns-s (root) user/spin/useradd
用户名称 主机名称=(执行程序身份)user/spin/useradd
测试:
su - username
sudo useradd username
用户权利下方在实际应用中非常的广泛,指的是超级用户给普通用户下放部分的权限,使普通用户可以拥有超级用户才能操作的部分权限,在这里给普通用户创建和删除用户的权限
1)首先进入监控显示台
visuo是进入配置
2)进入配置文件之后在任意行输入图中选中内容,注意,要根据自己的情况来输入:
输入格式是:
用户名称 主机名称=(执行程序身份)user/spin/useradd
这里有两张图,区别在于第一张是有密码的,第二张是没密码的,NOPASSWD代表权限。可以在第二张图中看到,NOPASSWD的范围是 ALL
3)切换回普通用户来看
4)使用普通用户进行添加和删除操作,此时test2普通用户已经拥有了这两项权限
5对比查看结果。可以看到test8被与上图比较已经被删掉了
注意:本实验只给了普通用户创建用户和删除用户的两个权限来做演示,实际上,可根据需求来给它更多的权限,方法步骤同上。