ڼС
梦回起点
做你害怕做的事,你会发现:不过如此
本站基于WordPress—主题by 设计窝
冀ICP备15003737号
梦回起点
Copyright © 2015-2024 All rights reserved.

useradd,password,usermod,userdel,chsh,chfn,groupadd,groupmod,su,sudo-linux账号与身份管理-鸟哥的Linux私房菜基础版本(第二版)笔记11

Linux的账号与用户组
用户识别UID与GID
     每个登陆用户至少会获得两个ID一个是用户ID(UID)一个是组ID(GID)
用户账号:/etc/passwd  /etc/shadow(使用man 4 passwd/shadow 查看帮助)
     /etc/passwd
    
         每一行代表一个账号,里面很多有很多账号本来就是系统必要的,称为
         系统账号 如 bin daemon adm nobody 系统正常工作需要这些账号
         root        😡        :0   :0  :root            :/root :/bin/bash
         账户名称    密码    UID  GID 用户信息说明  家目录    默认shell
         密码:早期的unix密码放在这里因为安全问题换地儿了
        
                     UID的限制
         ID范围                该ID用户的限制
         0                代表这个账号是 “系统管理员”(不一定是root)
         1-499            系统保留的ID,供系统使用,只是一个习惯问题
                         默认1-99给系统使用100-499供一些服务来使用
         500-65535        给一般用户使用,2.6以上的内核支持4294967295个UID
        
         用户信息说明栏:用来解释这个账号的含义
         shell:有一个shell可以代替让账号无法登陆的命令 /sbin/nologin
     /etc/shadow
         /etc/passwd 权限必须设置为 -rw-r--r--
         shadow以:作为分隔符
         duxing   :$1$gSQJIRYN$AyqWHAMFif9Dpbh.PlW/61    :16740  
         账户名称    密码                            最近更改日期
         :0                    :99999                    :7               
         密码不可更改的天数  密码需要重新更改的天数    密码期限前警告天数
         :                        :                    :
         密码过期的宽限天数        账号时效日期        保留
        
         这个文件的第一栏是账号名称,与passwd对应
         密码:经过编码之后的密码,如果密码栏第一个为!或*表示并不会
                 用来登录,加个*就无法登录了
         最近更改密码日期:1970年1月1日作为1
         密码需要重新更改的天数:必须要在这个时间之内重新设置
         密码更改期限前警告日期:当密码快到到上面的日期发出警告
         密码过期的宽限时间:密码失效后用户可以在这个时间之内用
                             这个过期的密码登录
         账号时效日期:与第三个字段一样,到了这个日期账号就无法使用了
         保留:以后可能会有新功能
关于用户组:有效与初始用户组,group,newgrp
     /etc/group
         root        😡            :0        :
         用户组名称    用户组密码    GID        支持账号名称
         用户组密码:通常不需要设置,密码是记录在gshadow文件中的
         支持的账号名称:加入这个用户组里的所有账号多个可以加",duxing"
                         注意不要有空格
     有效用户组(effective group)与初始用户组(inital group)
         在passwd文件中的第四栏GID就是初始用户组,用户的初始用户组,
         不需要加入/etc/group文件中
        
         groups指令可以查询用户登录的用户在哪些用户组中
         其中第一个输出的为有效用户组(建立文件时文件所属的用户组)
         可以使用newgrp更改有效用户组,更改后等于登录一个新shell,离开
         新的有效用户组可以使用exit
     /etc/gshadow
         adm            :*        :                :syslog,duxing
         用户组名称  密码   用户组管理员账号 该用户组所属的成员账号
账号管理
     新增与删除用户:useradd、相关设置文件,passwd,usermod,userdel
        useradd 新增用户
             useradd [-u UID] [-g initial_group] [-G other_group] \
             > -[Mm] [-c 说明栏] [-d home] [-s shell] username
         选项:
             -u 后面接UID 直接给该账号指定一个UID
             -g 后面可以接的用户组名称就是初始用户组passwd第四个字段
             -G 后面接的用户组名称是这个账号支持的用户组 会修改group文件
             -M 强制,不要建立用户家目录
             -m 强制,要建立家目录
             -c 这个是passwd第五栏的内容,随便填写
             -d 制定一个目录成家目录,而不要使用默认值
             -r 建立一个系统账号,这个账号的UID会有限制
             -s 后面接一个shell,默认是/bin/bash
         可以通过passwd更改密码
     相关设置文件
         使用useradd去增加用户时,一些在/etc/passwd中的值会参考
             /etc/default/useradd文件 文件内容大致如下:
             GROUP=100            默认的用户组
             HOME=/home            默认的家目录所在
             INACTIVE=-1            /etc/shadow第七栏
             EXPIRE=                /etc/shadow第八栏
             SHELL=/bin/bash        默认的shell
             SKEL=/etc/skel        用户家目录的内容数据参考目录
     关于用户组的建立机制
         不同系统不同处理有的
         建立账户时若无指定初始用户组,则系统自动创建与账户名相同的组
         有的
         不创建新的而是/etc/default/useradd GROUP设置值
     关于用户家目录的参考/etc/skl/*
         可以通过更改这个目录下的内容,达到新建用户的设置与你设置的相同
     关于UID/GID的设置
         与密码及UID/GID有关的设置文件在/etc/login.defs中
         MAIL_DIR /var/spool/mail   用户默认的邮件信箱放置目录
         PASS_MAX_DAYS    99999        /etc/shadow内第五栏
         PASS_MIN_DAYS    0            /etc/shadow内第四栏
         PASS_MIN_LEN    5            /密码最短的长度
         PASS_WARN_AGE      7            /etc/shadow内的第六栏
         UID_MIN            500            用户最小的UID
         ...
         CREATE_HOME        yes            在不加-M及-m时是否主动建立用户家目录
         useradd -r  -r参数会查找500以下最大的UID在此基础上+1创建新用户
     passwd
         新建立的账号是不能登录的要通过passwd设置密码
         想修改自己的密码后面不需要加参数,修改别人的密码加上用户名
     选项:
         -l 将用户的密码锁住
         -u 解锁
         -n 后面可以接天数 最短天数 /etc/shadow 第四栏
         -x 后面可以接天数 最长天数 /etc/shadow 第五栏
         -w 后面可以接天数 警告天数 /etc/shadow 第六栏
         -S 显示当前用户的相关信息
     usermod 修改错误的设置数据
     选项 :
         -c    后面可以接账号的说明,即/etc/passwd第五栏的说明符
         -d  后面接账号的家目录,即,修改/etc/passwd第六栏
         -e  后面可以接日期,格式:YYYY-MM-DD /etc/passwd第八个字段
         -g  后面接group name /etc/passwd GID字段
         -G     后面接group name 修改用户能够支持的组 修改/etc/group文件
         -l  后面接账号名称,修改账号名称
         -s  后面接shell的实际文件例如 /bin/bash
         -u  后面接UID数字
         -L  暂时将用户的密码冻结,让他无法登录
         -U  将/etc/shadow密码栏!去掉 即解冻
     userdel    删除用户
     选项:
         -r 连同用户家目录一起删除
用户功能:chfn chsh
     chsh 更改用户的shell
     选项:
         -l 列出当前系统上可用的shell,就是/etc/shells内容
         -s 设置修改自己的shell
         注:在我的ubuntu中无法使用这两个选项
     chfn
     选项:
         -f 后面可以接完整的名字
         -o 办公室的房间号码
         -p 办公室的电话号码
         -h 家里的电话号码
     finger
     选项:
         -s 使用长串数据输出格式
         在自己的home目录下建立.plan内容可以显示在最后一项中
新增与删除用户组
     groupadd
     选项:
         -g 后面接某个特定的GID 用来直接给予某个GID
         -r 建立系统用户组 与 /etc/login/defs内的GID_MIN有关
     groupmod
     选项:
         -g 修改已有的GID数字   groupmod -g 1001 test
         -n 修改已有的用户组名称  groupmod -n newname oldname
    groupdel
     选项:
         必须确定没有任何用户属于这一个用户组才可以删除这个用户组
     gpassed
     root可用
         gpasswd groupname
         gpasswd [-A user1,...] [-M user3,user4...] groupname
         gpasswd [-rR] groupname
         选项:
             没有任何选项表示给groupname一个密码
             -A 将groupname的主动权交给后面的用户管理
             -M 将某些账号加入这个用户组
             -r 将groupname的密码删除
             -R 让groupname的密码栏失效,所以newgrp就不能使用了
     组管理员可用
         gpasswd [-ad] user groupname
         选项:
             -a 将某用户加入到groupname用户组中
             -d 将某个用户从groupname用户组中删除(管理员可以删除管理员)
         newgrp 会额外以另一个login来让用户登陆shell,并将有效用户改为
                 后面的参数
     密码管理:passwd
切换用户身份
     su
     选项:
         - 如果执行su - 表示该用户想要变换身份成为root 且使用root的环境
         -l 可使用变换者身份的环境
         -m=-p 使用当前环境设置,而不去读取新用户的设置文件
         -c 仅执行一次命令
         su后面不加用户默认是root
     sudo
         使用sudo系统会去/etc/sudoers文件查看用户是否具有sudo的权限
         root执行sudo 不需要输入密码
     选项:
         -u 后面可以接用户的账号名称,或者UID 如:sudo -u #500
         sudo 和 su一起使用 sudo su -
     visudo
         用户账号 登陆的主机 = (可以变换的身份) 可以执行的命令
         %开头表示用户组,这个用户组里的所有成员都会具有该权限
         比如让wheel用户组里的用户使用sudo不用输入密码可以如下输入:
         %wheel ALL = (ALL) NOPASSWD: ALL
用户的特殊shell与PAM模块
特殊的shell、/sbin/nologin
     /sbin/nologin  或者 /usr/sbin/nologin 可以让用户不能登录
     /etc/nologin.txt可以修改提示信息(我的UBUNTU不是这么修改)
PAM模块:/etc/nologin/ /etc/securetty
     重要信息:
         PAM相关的设置文件一般放在:/etc/pan.d
         更多的环境相关设置放在/etc/security/*中
         PAM是通过自己提供的相关模块来进行验证,
         模块放在/lib/security/*中
     PAM的设置文件设置规范
         /etc/pan.d/passwd
         每个动作都分成四段:
         验证的类别   验证的控制标准   使用的PAM模块  该模块能使用的参数
         验证类别分成4种:
             auth        用来进行用户的身份验证,通常是需要密码来检验
             account        检验用户是否具有正确的权限
             session        管理用户正确使用该程序时的环境设置
             password    提供验证的修改工作
         验证的控制标准
             required    这种状态,模块的验证必须成功,否则传回failure
                         信息,不论是否成功,下面的工作都继续
             optional    显示信息,不是用在验证方面
             sufficent    顺利通过验证时立刻给原程序发送信息,并中断PAM
     /etc/securetty
         主要功能是预防不安全的登录环境,主要针对root用户的身份
         将/etc/pam.d/login中关于pam_securetty.so模块的行注释掉
         或者将/etc/securetty文件删除可以支持telnet使用root
     /etc/nologin
         如果这个文件存在,那么所有的用户都无法登录,并且会看到这个文件
         的内容提示,一直到这个文件被删除
     /etc/security/*
         更多的PAM模块设置放在这里
lINUX系统的用户对话与邮件的使用
查询用户:w who last lastlog
     lastlog 会去读取/var/log/lastlog文件
用户对话:talk mesg write wall
     可以使用mesg y 开启write发送的消息
用户邮件信箱:mail
     mail
     P311
手动新增用户
一些检查工具
     pwck 检查/etc/passwd账号设置文件的信息 以及实际家目录是否存在
          还可以检查/etc/passwd /etc/shadow的信息是否一致
          如果/etc/passwd文件内的字段错误,还会提示用户修改
          直接使用没有参数
     pwconv 将/etc/passwd内的账号与密码移到/etc/shadow中
             用useradd创建的用户没有任何效果,但是手动设置的账号有用
     pwunconv 将shadow内的密码栏数据写会passwd 这个命令最好不要用,
              因为它会删除/etc/shadow
     chpasswd 读入未加密前的密码,并且经过加密后,将加密后的数据写入
                 /etc/shadow中,常用在大量建立账号的情况可以由标准输入
                 读入数据,每个数据的格式是“username:passwd”
                 例如“test:12345678”
             -m 可以使用md5加密
手动建立特殊账号,如:纯数字账号的建立(不建议使用纯数字账号)
     步骤:
         1.建立所需要的用户组(vi /etc/group)
             如:normalgroup:x:520:
         2.将/etc/group与/etc/gshadow同步(grpconv)
         3.建立账号的各个属性(vi /etc/passwd)
             如:normalgroup:x:700:520::/home/normaluser:bin/bash
         4.将/etc/passwd与/etc/shadow同步(pwconv)
         5.建立该账号的密码(passwd accountname)
         6.建立用户家目录(cp -a /etc/skel /home/accountname)
         7.更改用户家目录属性(choen -R accountname.group /home/accountname)
             如:chown -R normaluser:normaluser /home/normaluser
不开放终端登录的账号(ex > mail account)
     因为不需要登录,所以shell指定为nologin 因为不需要登录,所以不要
     家目录
手动删除账户
     步骤:
         1.先用find / -user accont 找出所有相关的账号文件,灭之
         2.将/etc/passwd与/etc/shadow内相关数据删除
         3.将/etc/group与/etc/gshadow内的相关数据删除
         4.将/home下面关于该账号的目录删除
         5.到/var/pool/mail以及/var/spool/cron中相关的用户文件删除
建立账号的规范

2015-12-25
                         
暂无评论

发表回复