zoukankan      html  css  js  c++  java
  • 用户管理

    一、用户管理相关文件

      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 用户名" 即可

      

  • 相关阅读:
    NDK 在 Android studio如何使用(Android studio NDK)
    懒人习惯之ButterKnife Zelezny
    Android 如何在Eclipse 引入外部纯Java项目(不是打成Jar使用)
    android:ellipsize="end" 失效或者 相关的Bug
    Python 父目录获取
    RecyclerView中实现headerView,footerView功能
    Win7/Win8.1右键菜单技巧:应用程序任意加
    使用android-resource-remover优化资源使用率和lint-result.xml如果导出
    Android Studio 1.1.0版本以上 优化编译
    关于Eclipse如何加入Gradle文件与Android Studio两个平台一起开发,工作目录不发生变化
  • 原文地址:https://www.cnblogs.com/yaozhiyuan/p/9420542.html
Copyright © 2011-2022 走看看