linux常见操作指令2
##用户的管理
1:系统中为什么要有用户?
答:用户是系统最底层安全机制,用来限制权力,组是为方便管理,更重要的是用来共享权力的,组有两个信息:附加组(合法)/初始组(不能更改)所有用户都有初始组,附加组就不一定,是由超级用户附加给用户的,
2:用户和组在系统中以什么形态存在?
答:文字形式存放在表中或表格所对应的若干系统文件中
ls ##显示文件信息
ls -l filename ##长列表显示文件信息
下图事先建立了一个名为test的文件夹,并在文件夹内部建立了三个分别名为testfile1 testfile2 testfile3的文件,现进行如下操作:
ls -a filename ##显示所有文件包括以“.”开头的(以“.”开头的文件一般都是隐藏文件,用-a可查看隐藏文件)
ls -s filename ##显示文件大小(如下图所示,不仅显示文件夹大小,内包含文件大小都会显示)
ls -d filename ##显示目录(如下图显示文件所在文件夹)
ls -R filename ## 递归显示
##通配符
* ##匹配0到任意字符(如下图所示,建立file文件和 ,file 文件,因为“.file”文件是隐藏文件,因此在使用ls显示文件信息时,隐藏文件并不显示,故用用“-a”显示隐藏文件,用“.*”显示所有带“.”文件如两个带“.”文件)
? ##匹配单个字符(如下图所示,建立不同字节长度的文件名,用“?”的个数来匹配要删除的文件,下图中分别建立4个长度、3个长度、5个长度的文件名,用4个“?”来删除文件名为4个字节的文件)
[[:alpha:]] ##单个字母(如下图所示:分别建立名为“file” “fiAle” “fiale” “fi3le” “fi*le” “fi le”这六个文件,用[[:alpha:]] 来匹配file中间存在字符的文件,并且删除,结果如下)
[[:upper:]] ##匹配单个大写字母(如下图所示,用"fi[[:upper:]]le"来匹配文件中间字符为单个大写字母的文件并且删除 )
[[:lower:]] ##匹配单个小写字母(如下图所示,用"fi[[:lower:]]le"来匹配文件中间字符为单个小写字母的文件并且删除)
[[:digit:]] ##匹配单个数字(如下图所示,用"fi[[:digit:]]le"来匹配文件中间字符为单个数字的文件并且删除)
[[:alnum:]] ##单个数字或字母(如下图所示,用"fi[[:alnum:]]le"来匹配文件中间字符为单个数字或字母的文件并且删除)
[[:space:]] ##匹配单个空格(如下图所示,用"fi[[:space:]]le"来匹配文件中间字符为单个空格的文件并且删除)
[[:punct:]] ##匹配单个符号(如下图所示,用"fi[[:punct:]]le"来匹配文件中间字符为单个符号的文件并且删除)
(如下图所示左右两边的“*”表示匹配0到任意字符,[[:punct:]] ##匹配单个符号,“!”表示取反)
(如下入所示:最后一条语句表示删除file中间非单个字符和数字的文件)
{} ##精确匹配字符名称
{1..3} ##输入此命令会精确匹配到文件1 文件2 文件3
{a..c} ##与上相同 a b c
[] ##模糊匹配字符名称
[1..3] ##输入此命令输出文件1或文件2或文件3
[ac] ##a或c
[^ac] ##除了ac
[!ac] ##除了ac
3:用户配置文件
vim /etc/passwd 用户信息文件(如下入所示,用户信息文件都包含7个字段)
用户名称:用户密码:用户id:组id:用户说明(用户家目录):用户默认所使用的事(和系统交互所用软件)
例如:text:X:666:666::/home/test:/bin/bash
vim /etc/group ##显示用户组信息(组名称:组密码:组id:附加成员)
vim /home/username ##用户家目录
/etc/skel.* ##用户的骨文件(用户环境配置,用户建立时自动复制到用户家目录)
#4.用户的查看
whoami ##查看当前用户名称
id username ##查看用户id信息
id -u username ##查看用户的uid
id -g username ##查看用户的gid
id -G username ##查看用户所在的组id
id -n username
(注:man useradd 查看系统所有组,用/u查询-u的命令 用键盘n向下)
5:用户的建立及删除
watch -n 1 ‘tain -n 4 /etc/passwd /etc/group;ls -1 /home' ##此命令查看用户信息
(注: kill -9 ##截至当前的工作)
/etc/login.defs ##此文件中可以设定建立用户的默认信息
groupadd mmdemo ##创建一个名为mmdemo的组
useradd username ##使用默认规则建立用户(规则参看/etc/login.defs)
userdel username ##删除用户身份
userdel -r username ##删除用户身份及用户的系统配置文件
useradd -u username ##指定用户的uid
useradd -g username ##指定用户的初始组id(如下图指定用户初始组的ID为1003)
useradd -G username ##指定用户的附加组ID(下图指定用户的附加组ID为1005)
useradd -c username ##指定用户的说明文字(对比上下两张图片可发现此语句指定用户的说明文字为“测试”)
useradd -d username ##指定用户的家目录(对比上下两张图可发现此语句将用户家目录/home/ymtext更改为/mnt/ymtext下)
useradd -s username ##指定用户的shell(系统可以用shell在etc/login.defs中指定)(对比上下两张图可看出:将用户的shell从/bin/bash改为/bin/tcsh)
groupadd groupname ##创建组(如下图所示:创建了一个名为mmtext的组)
groupadd -g groupname ##建立组并指定组ID
groupdel groupname ##删除组(如下图删除组名为mmtext的组)
6:用户的管理
usermod username
usermod -l username ##修改用户名称 (如下图将用户组名称ymtext更改为linux)
usermod -u username ##更改用户id(对比上下两图,下图语句将用户组ID从1004改为50)
usermod -g username ##初始组id (对比上下两图,可知下语句将初始组ID从1006更改为30)
usermod -G username ##更改附加组(如下图所示,将Linux与附加组hello绑定)
usermod -aG username ##增加附加组(下图语句为Linux在原附加组为hello时增加了一个为test的附加组)
usermod -c username ##更改用户说明(如下图所示,将用户说明更改为"我喜欢")
usermod -d username ##更改用户家目录指向(对比上下两幅图所示将用户家目录/home/ademo更改为/home/lee)
usermod -md username ##更改用户家目录指向并重命名家目录
usermod -s username ##更改用户的shell
#7.用户的切换
su - username ##切换用户,高级用户切换到低级用户不需要密码(由下图可看出,此命令由高级命令root切换到低级用户ademo)
##低级用户切换到高级用户或者切换到平级用户需要后者的密码
注意:
1:用户切换后及时退出再切换到下一个用户
2:su - 表示切换用户身份及用户环境
8:用户的认证信息
/etc/shadow ##显示用户的认证信息(如下图所示head -n 1表示显示开头前一行信息)
(上图中的“tail -n 1 ”表示显示末尾最后一行信息)
可用语句watch -n 1 ‘tail -n 1 /etc/shadow 来进行实时监控(出现如下监控界面)
用户的认证信息包括9段(如上图可看出用户信息被“:”分隔成9段):
用户名称(即上图第一部分root):
用户密码:
md5 sha512 对称加密(加密解密用同一串字符 指纹识别)
passwd username ##只有超级用户在执行(如下图是在超级用户root时使用此语句修改的密码)
usermod -L ##冻结账户(如下图所示root后出现“!”即说明帐号被锁住)
usermod -U ##解锁(如下图所示,输入此命令时root后冻结符号“!”去除)
passwe ## 普通用户修改自己的密码 (与上类似,不再赘述)
passwd -L ##冻结帐号
passwd -U ##解锁
passwd -d ##清空密码
密码最后被修改时间:
当此位数字为0时,用户登陆系统会被强制改密码
chage -d 0 westos(如下图所示,对比上下图密码被最后修改的时间从17754被重新设置为0,用户登陆时必须先修改密码,只在第一次重新登陆时修改)
passwd -e westos
密码最短有效期:
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
帐号到期日:
chage -E “2018-11-11” filename ##(如下图所示17846减去0为现在到2018-11-11的时间)
未设定用户自定义(为最后一个“:”后面的内容)
#9:用户权力下放
1:配置文件时
/etc/sudoers ##使用vim /etc/sudoers打开配置文件如下图所示
2:配置命令
visudo ##此命令提供语法检测(如下图所示当有异常时会报错)
用户名称 主机名称=(执行程序身份) 命令 ##当前执行需要用户验证
例句1:linux11 dns-server.example.com=(root) /usr/sbin/useradd
例句2:如下图黑色部分所示,使linux11能够执行增加用户功能并且不需要密码
用户名称 主机名称=(执行程序身份) NOPASSWD:命令1,命令2 ##当前执行不需要用户验证
例句:linux11 dns-server.example.com=(root) /usr/sbin/useradd, /usr/sbin/userdel ##下放增加用户和删除用户的权力给linux11
测试
su - linux11
sudo useradd hellodemo ##如下两图所示,可以通过linux11可以添加新的用户,并进行删除用户组操作
(如下图用户组中的hellodemo已经被删除)