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

    ## 用户管理
    #### 开机启动脚本
    ##### 方法一:通过/etc/rc.loacl里添加脚步或命令
    ##### 方法二:通过chkconfig管理
        #第一步:必须把脚本放在/etc/init.d/下面,注:在第一行必须要写上# chkconfig: 2345(表示在什么运行级别开机启动) 99(表示启动的顺序,最大99) 99(表示关闭的顺序)
        [root@web02 ~]# vim /etc/init.d/test
        [root@web02 ~]# cat /etc/init.d/test
        # chkconfig: 2345 99 99
        echo 'hello'
        #第二步:给这个脚本加上执行权限
        [root@web02 ~]# chmod +x /etc/init.d/test
        [root@web02 ~]# ll /etc/init.d/test
        -rwxr-xr-x. 1 root root 36 Jan 18 21:41 /etc/init.d/test
        #第三步:将脚本添加到chkconfig中进行管理
        [root@web02 ~]# chkconfig --add test
        #第四步:查看脚本是否在chkconfig中
        [root@web02 ~]# chkconfig |grep test
        test               0:off    1:off    2:on    3:on    4:on    5:on    6:off

    #### 用户分类与用户文件
    ##### 用户分类
        root用户:uid为0
        虚拟用户:uid为1-499,不能登陆系统,用户的命令解析器为/sbin/nologin
        普通用户:uid为500+
    ##### 用户相关的配置文件
        /etc/passwd:存放用户的信息
        /etc/shadow:存放用户的密码信息
        /etc/group:存放用户组的信息
        /etc/gshadow:存放用户组密码信息
    ##### 用户相关的目录
        /etc/skel:存放新用户的模板(新用户家目录的样子)
        /etc/skel/.bash_logout:用户退出会运行里面的命令
        /etc/skel/.bash_profile:同等于/etc/profile
        /etc/skel/.bashrc: 同等于/etc/bashrc
    ##### 例子:请问如下登录环境故障的原理及解决办法?-bash-4.1$
        原因:出现这个问题是因为家目录下面的.bash*开头的文件全部被删除了
        故障重现:先删除.bash*开头的文件,然后退出重新登陆就会发现变成了-bash-4.1$
        [alex77@web02 ~]$ ll /home/alex77/.bash*
        -rw-r--r--. 1 alex77 alex77  18 Mar 23  2017 /home/alex77/.bash_logout
        -rw-r--r--. 1 alex77 alex77 176 Mar 23  2017 /home/alex77/.bash_profile
        -rw-r--r--. 1 alex77 alex77 124 Mar 23  2017 /home/alex77/.bashrc
        [alex77@web02 ~]$ rm -f /home/alex77/.bash*
        [alex77@web02 ~]$ ll /home/alex77/.bash*
        ls: cannot access /home/alex77/.bash*: No such file or directory
        [alex77@web02 ~]$ logout
        [root@web02 ~]# su - alex77
        -bash-4.1$ 
        解决方法一:从/etc/skel/下面把.bash*开头的文件复制过来,然后退出重新登陆
        -bash-4.1$ cp /etc/skel/.bash* .
        -bash-4.1$ logout
        [root@web02 ~]# su - alex77
        解决方法二:从其它用户家目录复制过来,会遇到权限问题,可以先使用root用户给需要复制的家目录添加r_x权限,复制完后再还原权限
        -bash-4.1$ cp /home/alex/.bash* .
        cp: cannot stat `/home/alex/.bash*': Permission denied
        -bash-4.1$ su - root
        Password: 
        [root@web02 ~]# chmod +rx /home/alex
        [root@web02 ~]# ll /home/alex
        total 0
        [root@web02 ~]# ll -d /home/alex
        drwxr-xr-x. 2 alex alex 4096 Jan 18 19:21 /home/alex
        [root@web02 ~]# su - alex77
        -bash-4.1$ cp /home/alex/.bash* .
        cp: cannot open `/home/alex/.bash_history' for reading: Permission denied
        -bash-4.1$ logout
        [root@web02 ~]# su - alex77

    #### 用户相关的命令
    ##### useradd:添加用户
        -u:指定用户的UID号
        -g:指定用户的GID号
        -s:指定用户使用的shell(默认是/bin/bash,虚拟用户:/sbin/nologin)
        -c:指定用户的说明信息
        -M:表示用户不创建家目录,一般创建虚拟用户的时候使用
        例子1:添加一个uid是888的虚拟用户alex999
        [root@web02 ~]# useradd -u 888 alex9999
        [root@web02 ~]# id alex9999
        uid=888(alex9999) gid=888(alex9999) groups=888(alex9999)
        例子2:添加一个用户alex666指定uid为999 禁止用户登录系统 不创建家目录
        [root@web02 ~]# useradd -u 999 -s /sbin/nologin -M alex666
        [root@web02 ~]# id alex666
        uid=999(alex666) gid=999(alex666) groups=999(alex666)
        [root@web02 ~]# su - alex666
        su: warning: cannot change directory to /home/alex666: No such file or directory
        This account is currently not available.
        [root@web02 ~]# ls /home/
        alex  alex77  alex9999  oldboy  www
    ##### usermod:修改用户信息
        -s:修改用户使用的shell
        -g:修改用户的用户组
        -G:添加多个用户组
    ##### userdel:默认不删除用户的家目录和邮箱
        -r:删除用户所有相关的信息(不推荐使用)
        在/etc/passwd中注释用户(推荐使用)
    ##### passwd:设置用户的密码
        --stdin:从管道中获取用户的密码(非交互式)
        [root@web02 ~]# echo '12345'|passwd --stdin alex
        Changing password for user alex.
        passwd: all authentication tokens updated successfully.
    ##### 使用软件KeePass来保存密码
    ![](9e83b790-98fa-4103-ac38-ddfac40d77d4_files/ae4fd31a-be2d-424b-b279-a13d9f275832.png)
    #### 如何让系统更安全1
        1.最小化安装系统
        2.禁止root用户登陆
        3.修改远程端口22
        4.给系统常用命令+i和系统配置文件+a
        5.给重要的文件添加指纹或命令做一个指纹,或者做个定时任务+md5sum定时检查
        #生成一个md5
        [root@web02 oldboy]# md5sum oldboy.txt 
        917b9d05644c82592b6707a7b624b3e1  oldboy.txt
        #将生成好的md5定向到指定的md5库中
        [root@web02 oldboy]# md5sum oldboy.txt > test.txt 
        [root@web02 oldboy]# cat test.txt 
        917b9d05644c82592b6707a7b624b3e1  oldboy.txt
        #使用md5sum -c 来对比文件有没有被修改,没有被修改会输出ok
        [root@web02 oldboy]# md5sum -c test.txt 
        oldboy.txt: OK
        #文件修改后再次对比,会输出failed
        [root@web02 oldboy]# echo '123' >> oldboy.txt 
        [root@web02 oldboy]# md5sum -c test.txt 
        oldboy.txt: FAILED
        md5sum: WARNING: 1 of 1 computed checksum did NOT match
    ##### 如何让系统更安全2(摘自李导博客)
    ##### 原因分析
        因为linux下的木马通常是通过web的上传目录方式来上传木马到服务器上的,可根据从恶意者访问网站开始-->Linux系统-->HTTP服务-->中间件服务-->程序代码-->DB-->存储,层层设卡防护

    ##### 从用户访问角度解答
        1.开发程序代码对上传文件类型做限制,例如不能上传.php程序(JS及后端代码控制)。
        2.对上传的内容(包括文本和文件)检测,检测方式可通过程序、Web服务层(中间件层)、数据库等层面控制。
        3.控制上传目录的权限以及非站点目录的权限(Linux文件目录权限+Web服务层控制)。
        4.传上木马文件后的访问和执行控制(Web服务层+文件系统存储层)。
        5.对重要配置文件、命令和WEB配置等文件做md5指纹及备份。
        6.安装杀毒软件clamav等,定期监测查杀木马。
        7.配置服务器防火墙及入侵检测服务。
        8.监控服务器文件变更、进程变化、端口变化、重要安全日志并及时报警。

    ##### 从内部管理人员角度:防止被提权
        1.***管理服务器或Web化管理服务器。
        2.ssh监听内网。
        3.采用跳板机、操作审计。
        4.sudo集权管理、锁定关键文件。
        5.站点目录、上传目录权限属组控制。
        6.做系统及站点文件备份指纹监控报警。
        动态口令认证。

  • 相关阅读:
    CF1480
    网络编程中常见地址结构与转换(IPv4/IPv6)
    inet_pton, inet_ntop
    mktime 夏令时
    C/C++中volatile关键字详解
    STL之vector容器详解
    Linux学习--gdb调试
    Linux编程基础——GDB(设置断点)
    FTP模式简式:PORT/PASV/EPRT/EPSV
    strchr和strstr 函数
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10336239.html
Copyright © 2011-2022 走看看