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

    /etc/skel目录:

    作用:

    /etc/skel目录是用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下;默认情况下,/etc/skel目录下的所有文件都是隐藏文件(以点.开头的文件);通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。

    面试题:

    请问如下登录环境故障的原理及解决办法?

    -bash-4.1$

    -bash-4.1$

    -bash-4.1$

    -bash-4.1$

    -bash-4.1$

    这是因为用户家目录下缺少了.bashrc文件,去其他用户家目录下或/etc/skel目录下拷贝一份到此用户家目录下,退出重新登录即可。

    解决过程:

    -bash-4.1$ cp -a /etc/skel/.bashrc .

    -bash-4.1$ exit

    logout

    [root@web01 yangrz]# su - yangrz

    /etc/login.defs文件:

    作用:

    是否使用邮件,默认密码有效期、家目录权限等配置

    [yangrz@web01 ~]$ cat /etc/login.defs|egrep -v "^#|^$"

    MAIL_DIR /var/spool/mail

    PASS_MAX_DAYS 99999

    PASS_MIN_DAYS 0

    PASS_MIN_LEN 5

    PASS_WARN_AGE 7

    UID_MIN 500

    UID_MAX 60000

    GID_MIN 500

    GID_MAX 60000

    CREATE_HOME yes

    UMASK 077

    USERGROUPS_ENAB yes

    ENCRYPT_METHOD SHA512

    /etc/default/useradd文件:

    作用:

    创建用户的时候去哪儿拷东西/etc/skel、默认bash等

    [root@web01 ~]# cat /etc/default/useradd

    # useradd defaults file

    GROUP=100

    HOME=/home #把用户的家目录建在/home中

    INACTIVE=-1 #是否启用账号过期停权,-1表示不启用

    EXPIRE= #账号终止日期,不设置表示不启用。

    SHELL=/bin/bash #新用户默认所用的shell类型

    SKEL=/etc/skel #配置新用户家目录的默认文件存放路径。即,当我们新建用户时,用户家目录下的文件都是从这里拷贝的。

    CREATE_MAIL_SPOOL=yes #创建mail文件。

    实例:创建yangrz用户,设置注释为HandsomBoy,UID为806,属组为root,登录bash为/bin/sh,设置家目录为/yangrz

    [root@web02 ~]# useradd -c HandsomeBoy -u 806 -G "root" -s /bin/sh -d /yangrz yangrz

    usrdel -r 连家目录一起删除,

    生产场景中,请不要轻易用-r参数,这会在删除用户的同事删除用户家目录下的所有文件,目录。如果非要删除家目录,当用户家目录下有重要文件时,那么在删除前请先备份。操作前进行备份,在任何场合都是一个优秀运维人员的好习惯。

    生产环境中比较好的删除用户的办法:

    1. 在/etc/passwd文件中注释用户。

    2. 把登录bash改成/sbin/nologin

    3. passwd -l命令锁定用户,或者usermod -e设定过期时间

    用户管理命令小结:

    1、和用户相关的配置文件知识点:

    /etc/passwd账号文件及不同列内容

    /etc/shadow账号文件及不同列内容

    /etc/group组文件及不同列内容

    /etc/gshadow组密码文件及不同列内容

    2、用户管理命令

    useradd -u -g -G -s –M -e -c -d

    对应/etc/shkl,/etc/default/useradd,/etc/login.defs

    userdel –r

    usermod -u -g -G -s -M -e -c -d -L -U -l

    id

    chage -l -E -M -W -m -n

    passwd --stdin -n -i -w -x

    su

    sudo

    visiudo

    3.组管理命令

    groupadd -g

    groupdel

    groupmod

    查看用户登录信息:

    [root@web02 ~]# ll /var/log/secure*

    -rw------- 1 root root 718 Nov 29 15:01 /var/log/secure

    -rw------- 1 root root 12962 Nov 12 20:52 /var/log/secure-20151112

    -rw------- 1 root root 1594 Nov 13 19:31 /var/log/secure-20151115

    -rw------- 1 root root 6031 Nov 22 12:09 /var/log/secure-20151122

    -rw------- 1 root root 11016 Nov 29 10:31 /var/log/secure-20151129

    [root@web02 ~]# ll /var/log/messages

    -rw------- 1 root root 143 Nov 29 11:46 /var/log/messages

    [root@web02 ~]# ls /var/log/lastlog

    id、last、lastb、w、who、users、groups、newgrp

    su命令:

    - 切换shell环境

    -c 用某个用户来执行命令(su - yangrz -c pwd)

    sudo的原理:

    clip_image002

    sudo授予su命令权限,很危险,这样就能切到root用户了。

    clip_image003

    [oldboy@web02 ~]$ sudo -l

    Matching Defaults entries for oldboy on this host:

    requiretty, !visiblepw, always_set_home, env_reset,

    env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR

    LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG

    LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",

    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER

    LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS

    _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

    User oldboy may run the following commands on this host:

    (ALL) NOPASSWD: ALL

    sudo -l 查看用户有什么sudo权限。

    sudo -K 让时间戳信息失效,下次还要输入密码

    visudo 可以检查配置文件,如果配置错误,就无法保存,

    如果用vim /etc/sudoers就没有这个功能,如果出错就不能用sudo的功能了,这时可以用visudo -c来检查配置文件的正确与否。

    visudo=====vi /etc/sudoers

    详细讲解sudo配置文件:

    clip_image005

    格式:

    user MACHINE=COMMANDS

    oldboy ALL=(ALL) NOPASSWD:/bin/rm

    oldboy ALL= (ALL) NOPASSWD :/bin/rm

    User_Alias Host_Alias= (Runas_Alias) Cmnd_alias

    Host_Alias FILESERVERS = fs1, fs2

    User_Alias ADMINS = oldboy,oldgirl,%sa(sa组的所有用户)

    Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/pin

    g, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcom

    m, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

    Runas_Alias OP = root, oldboy(角色别名,sudo可以切换到的角色)

    Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/pin

    g, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcom

    可以用来续行

    sudo配置文件/etc/sudoers授权规则注意事项总结:

    1. 授权规则中的所有ALL字符串必须为大写字母。

    2. 经测试,命令是从后往前生效的,比如让用户可以使用所有的/sbin/*命令,但排除/sbin/useradd可以把!/sbin/useradd写到后边。

    3. 一行内容超长可以用“”斜线换行。

    4. !表示非,!/bin/ifconfig,不能使用此命令

    有关sudo参考资料:

    1)/etc/sudoers

    2)man sudoers

    3)man sudo

    sudo配置注意事项:

    1. 命令别名下的成员必须是文件或目录的绝对路径。

    2. 别名名称是包含大写字母、数字、下划线,如果是字母都要大写

    3. 一个别名下有多个成员,成员与成员之间,通过半角“;”号分隔;成员必须是有效实际存在的。

    4. 别名成员受别名类型Host_Alias、User_Alias、Runas_Alias、cmnd_Alias的制约,定义什么类型的别名,就要有什么类型的成员相匹配。

    5. 别名规则是每行算一个规则,如果一个别名规则一行容不下时,可以通过“”来续行。

    6. 指定切换的用户要用()括号括起来。如果省略括号,则默认为root用户;如果括号里是ALL,则代表能切换到所有用户。

    7. 如果不需要密码直接运行命令的,应该加NOPASSWD参数。

    8. 禁止某类程序或命令执行,要在命令动作前面加上”!”号,并且放在允许执行命令的后面。

    9. 用户组前面必须加%号。

  • 相关阅读:
    《Linux shell变量总结回顾》RHEL6(转)
    20个最受欢迎的Linux命令(转)
    如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(转)
    妻共贫贱难,夫共富贵难
    [置顶] 阅读Oracle官方文档指南
    Java实现 蓝桥杯 算法训练 递归求二项式系数
    Java实现 蓝桥杯 算法训练 数字三角形
    Java实现 蓝桥杯 算法训练 数字三角形
    Java实现 蓝桥杯 算法训练 数字三角形
    Java实现 蓝桥杯 算法训练 数字三角形
  • 原文地址:https://www.cnblogs.com/yangruizeng/p/5156432.html
Copyright © 2011-2022 走看看