用户管理

一、用户管理相关文件

  1.用户特征信息:/etc/passwd

  

  2.用户密码信息:/etc/shadow

  3.用户组特征信息:/etc/group

  4.用户组密码信息:/etc/gshadow

二、用户管理相关命令

  1.useradd/adduser:添加用户命令

  -s:指定用户使用的shell信息,如/bin/bash;/sbin/nologin

  -M:指定创建用户的时候,不要有家目录(一般创建虚拟用户时使用)

  -g:指定用户属于哪个用户组(不指定的话默认为用户组跟用户名一样)

  -G:指定用户属于哪个附属的用户组(指定用户组时该用户组都必须存在)

  -u:指定用户的uid

  例:创建一个用户lxx,指定uid为888,禁止用户登录系统,不创建家目录(创建虚拟用户)

  useradd lxx -u 888 -M -s /sbin/nologin

  2.userdel:删除一个用户(单独使用时默认删除用户时不删除该用户家目录和邮箱文件)

  -r:彻底删除用户,即删除用户时同时删除家目录和邮箱文件

  注意:一般不用管该命令删除用户,会在/etc/passwd文件注释用户

  3.usermod:修改用户信息

  -g:修改用户属于哪个用户组

  -G:修改用户附属用户组

  -s:修改用户使用的shell信息

  -u:修改用户uid

  -c:修改用户注释信息

  4.passwd:设置用户密码信息(只有root用户可以给其他用户设置密码)

  1)交互方式设置密码:passwd 用户名

  2)免交互方式设置密码:echo 123456|passwd -stdin 用户名

  3)企业设置密码注意事项

  ①密码要复杂12位以上字母数字及特殊符号

  ②用软件保存好密码信息

  ③大企业用户和密码统一管理(相当于活动目录AD),例如openldap域

  ④动态密码:动态口令,第三方提供、自己开发也很简单

  ⑤利用指纹方式确保数据安全性

  md5sum test.txt >/tmp/figer.txt; md5sum -c /tmp/figer.txt

  如果test.txt未被修改,显示OK,反之,显示FAILED

  5.chown:修改文件或目录所有者或所属组

  -R:递归修改    chown -R test /test

  只修改用户所有者:chown test /test

  只修改用户所属组:chown .test /test

  同时修改用户所有者和所属组:chown test.test /test

  6.groupadd:创建用户组的命令

  useradd使用 -g 参数添加用户组时,用户组必须已经存在,这就需要groupadd命令了。但是现在一般不设置-g参数,因为默认用户组和用户所有者信息一致,所以不常用

  groupadd lxx ; useradd lxx -g lxx1

三、用户查询命令

  1.id:查询用户是否存在,查询用户uid,gid,查询用户所属组

  使用格式:id  用户名

  2.w:查看系统用户登录信息,查看系统负载,查看一个用户是否远程登录(以某一个用户的身份连接到你的系统,不是切换用户)

  

  pts --- 通过网络远程连接

  tty --- 直接服务器登录

  3.top:查看系统CPU、内存等的运行情况(实时监控)

  M:按照内存使用率排序

  P:按照CPU使用率排序

  4.uptime:查看用户登录、负载等信息

  

  5.ps -ef / ps -aux :查看系统中进程信息

  6.free:查看系统内存使用信息

  -h:以人类可读的形式显示

  7.sort:对列的信息进行排序显示

  -n:按照数字排序(默认从小到大)

  -r:反向排序

  -k:类似awk中$n,指定第几列进行排序

  -h:以人类可读方式进行排序

  使用格式:ps -aux|sort -nrk3

  8.last:用户登录信息(哪个用户在哪里什么时候远程登录你的系统)

  9.lastlog:显示linux中所有用户最近一次远程登录的信息

四、企业案例

  1.如何实现脚本开机自动运行

  方法一:将执行脚本的命令放入到/etc/rc.local

  方法二:让脚本可以被chkconfig命令管理

  1)让脚本文件具有执行权限:chmod a+x /a.sh

  2)将脚本文件放入到/etc/init.d目录中,并且让chkconfig命令能管理

  ①vim /a.sh

  #chkconfig: -  41 41

  ②cp -a /a.sh /etc/init.d

  ③chkconfig --add a.sh

  ④chkconfig a.sh on

  3)检查测试:chkconfig |grep a.sh

  

  2.利用单用户模式修改密码

  1)在启动读秒时按任意键

  2)选中要操作的内核按e键

  3)在输出信息rhgb quiet后面加空格,输入“1”或“s”或“single”都可以

  4)输入1后按回车会返回到选中页面,按b键启动系统

  5)进入到单用户模式,在命令行输入passwd即可修改密码

  3.切换用户时命令提示符显示不规范

  原因分析:当前登录用户家目录下面的隐藏文件没有了

  解决方法:cp -a /etc/skel/.bash* /home/lxx/

五、普通用户获取特殊权限

  1.普通用户获取root权限

  1)直接切换为root用户

  su -  :切换用户时更新环境变量

  su    :切换用户时不更新环境变量

  2)修改命令的权限

  chmod u+s /bin/ls

  3)用sudo给用户提权,使普通用户临时获得root权限

  2.sudo权限配置说明

  1)掌握两个命令

  ①sudo

  -l :查看当前用户的特权信息

  -k :清除当前用户的密码缓存信息

  ②visudo:进行配置编写sudo权限文件,可检测语法,类似crontab -e

  2)掌握一个文件

  /etc/sudoers:sudo权限配置文件

  vim /etc/sudoers == visodu

  3)如何编辑sudo权限文件

  ①让用户拥有多个权利:lxx  ALL=(ALL)  /bin/ls, /bin/touch

  ②让用户拥有大量权限:lxx  ALL=(ALL)  /bin/*, /usr/bin/*

  ③不输入密码使用权限:lxx  ALL=(ALL)  NOPASSWD:/bin/ls

  ④当普通用户权限过大时,如何做出一定的限制:lxx  ALL=(ALL)  /bin/*, !/bin/vi

  ⑤给一个用户组特殊权限:%lxx  ALL=(ALL)  /bin/* 

  3.sudo向文件中用echo命令追加信息的问题

  现象:提示bash拒绝,权限不够

  原因分析:sudo知识让echo有了root权限,“>”并不具有

  解决方法:

  方法一:利用 sh -c 命令,它可以让bash将后面的内容识别成一个字符串,作为完整的命令来执行

  1)编辑sudo权限配置文件:lxx  ALL=(ALL)  /bin/sh

  2)切换用户,利用sudo执行命令:sudo sh -c "echo 123 >> /test.txt

  方法二:利用tee命令,它可以从标准输入中读入信息并将其写入标准输出或文件中

  1)边间sudo权限配置文件:lxx  ALL=(ALL)  /usr/bin/tee

  2)切换用户,利用sudo执行命令:

  echo 123|sudo tee test.txt(覆盖)

  echo 123|sudo tee -a test.txt(追加)

  说明:tee命令从管道接受信息,一边向屏幕输出,一边写入文件

  方法三:利用sudo -s命令,提升shell权限,使普通用户临时完全拥有root权限

  1)编辑sudo权限配置文件:lxx  ALL=(ALL)  /bin/bash

  2)切换用户,利用sudo执行命令:sudo  -s

  补充:退回普通用户时,使用命令 "sudo su 用户名" 即可

  

原文地址:https://www.cnblogs.com/yaozhiyuan/p/9420542.html