• Linux的用户和组


    管理用户和组账户
    用户和组的关系及类型
    每个账户有一个唯一的UID
    每个组也有一个唯一的GID
    多个账户可以属于同一个组
    用户和组的相关文件详解
    和账户相关文件
    /etc/passwd、/etc/shadow
    和组相关文件
    /etc/group、/etc/gshadow
    账户宿主(家)目录中文件来源
    新建用户帐号时,从 /etc/skel 目录中复制而来
    默认定义账户的属性文件
    /etc/login.defs
    用于保存用户的帐号基本信息
    文件位置:/etc/passwd
    每一行对应一个用户的帐号记录
    [root@localhost ~]# head -1 /etc/passwd
    root:x:0:0:root:/root:/bin/bash
     字段1:用户帐号的名称
     字段2:密码占位符“x
     字段3:用户帐号的UID号(区分管理员0与普通用户)
     字段4:所属基本组帐号的GID号
     字段5:用户全名
     字段6:宿主目录
     字段7:登录Shell信息
    用户操作
    用户账户:
     (管理员)   超级用户root
     (非管理员)程序用户nologin
           普通用户:可以通过shell登录
    UID (User Identity,唯一的用户标识号)
     超级用户root的UID为0
     程序用户的UID1-499
     普通用户的UID大于等于500
    用于保存密码字串、密码有效期等信息
    文件位置:/etc/shadow
    每一行对应一个用户的密码记录
    [root@localhost ~]# tail -2 /etc/shadow
    tcpdump:!!:17858::::::
    u1:$6$JbFqCFLa$UxqyL20WGTmsGQdErwt9iXQkelcGLXtQ3C9KML0MytI/894vjeM28cD.rHSyWeAwipLijQgZQpGFojdgURI52/:17867:0:99999:7:::
     字段1:用户帐号的名称
     字段2:加密的密码字串信息
     字段3:上次修改密码的时间
    字段4:密码的最短有效天数,默认值为0
    字段5:密码的最长有效天数,默认值为99999
     字段6:提前多少天警告用户口令将过期,默认值为7,提前一周
     字段7:在密码过期之后多少天禁用此用户(默认0)
     字段8:帐号失效时间,默认值为空
     字段9:保留字段(未使用)
    加密算法
    1    MD5  
    2a  Blowfish 
    5   SHA-256 
    6    SHA-512
    组操作
    用户和组账户查询
    /etc/group文件
    组帐号:
     主要组(私有组)
     次要组(附属组)
    GID: (Group Identify,组标识号)
    用户至少属于一个组(主要组)
    默认情况下:创建用户时,会自动创建一个组,组名和用户名一样,这个组就是这个用户的主要组
    Linux组帐号
    主要组(私有组)
    与用户相关的默认组,在/etc/passwd文件的第四个字段定义
    次要组(附属组)
    用户可以同时属于其他的组,在/etc/group文件的第四个字段定义
    用户的主要组的名称和GID相关
    控制用户初始配置文件
    /etc/skel/*文件
    新建用户帐号时,复制到用户宿主目录中
    主要控制用户初始配置文件
    .bash_profile:用户每次登录时执行
    .bashrc:每次进入新的Bash环境时执行
    .bash_logout:用户每次退出登录时执行
    /etc/profile 所有用户每次登录时会执行
    保存组帐号的密码信息
    /etc/gshadow文件
    /etc/gshadow文件的应用极少,知道有这个文件即可
    对账户初始的属性设置
    /etc/login.defs文件
    设置普通用户的UID和GID范围等
    添加与删除用户
    useradd命令
    格式:useradd  [选项]...  用户名
    常用命令选项
    -u:指定 UID 标记号
    -d:指定宿主目录,缺省为 /home/用户名
    -e:指定帐号失效时间
    -g:指定用户的基本组名(或GID号)
    -G:指定用户的附加组名(或GID号)
    -M:不为用户建立并初始化宿主目录
    -s:指定用户的登录Shel
    useradd命令在后台到底做了哪些工作
    passwd命令
    格式:passwd  [选项]...  用户名
    常用命令选项
    -d:清空用户的密码,使之无需密码即可登录
    -l:锁定用户帐号
    -S:查看用户帐号的状态(是否被锁定) 
    -u:解锁用户帐号
    --stdin:接收标准输入作为密码
    -n:密码最少失效期
    -x:密码最长有效期
    root用户可以修改所有用户密码,不要求复杂性
    普通用户只能改自己的密码,要求复杂性
    普通用户修改密码时先输入当前密码,管理员不需要,可以直接修改
    [root@localhost ~]# echo "123"  | passwd --stdin u4 Changing password for user u4. passwd: all authentication tokens updated successfully.
    userdel命令
    格式:userdel  [-r]  用户名
    添加 -r 选项时,表示连用户的宿主目录一并删除
    usermod命令
    格式:usermod  [选项]...  用户名
    常用命令选项
    -l:更改用户帐号的登录名称
    -L:锁定用户账户
    -U:解锁用户账户
    以下选项与useradd命令中的含义相同
     -u、-d、-e、-g、-G、-s
    修改用户密码相关参数
    chage命令
    格式:chage  [选项]...  用户名
    常用命令选项
    -l:列出密码时效的具体信息
    添加、修改和删除组
    groupadd命令
    格式:groupadd  [-g GID]  组帐号名
    groupdel命令
    格式:groupdel  组帐号名
    groupmod命令
    用途:设置组名和组id
    格式:groupmod [选项]...  组帐号名
    常用命令选项
    -n:修改组名
    -g:修改组id
    gpasswd命令
    用途:设置组帐号密码(极少用)、添加/删除组成员
    格式:gpasswd  [选项]...  组帐号名
    常用命令选项
    -a:向组内添加一个用户
    -d:从组内删除一个用户成员
    -M:定义组成员列表,以逗号分隔(重置)
    先创建组,在创建用户
    id命令
    用途:查询用户身份标识
    格式:id  [用户名]
    finger命令
    用途:查询用户帐号的详细信息
    格式:finger  [用户名]
    chfn命令
    用途:修改用户的备注信息,/etc/passwd第5字段
    who、w、users命令
    用途:查询已登录到主机的用户信息
    groups命令
    用途:查询用户所属的组
    本章总结
    弄清/etc/passwd  /etc/shadow  /etc/group 等文件中重要字段的意义
    熟悉useradd、usermod、passwd、groupadd、groupmod等命令和重要选项的使用
    掌握常用查询用户信息命令
    练习
    验证一:
    将/etc/passwd的字段2删除
    用户密码为空
    登录时不输入密码
    本地登录,远程登录,哪一种可以用空密码登录?
    本地登录可以,远程登录不可以
    验证二:
    将/etc/shadow的字段2删除
    是不是空密码?
    是的
    练习一:
    创建目录/cis/ceo和/cis/soft,分别用于保存个项目组中用户帐号的宿主目录;
    为两个项目组添加组帐号ceo、soft,GID号分别为10001、10002;为技术部添加组帐号tech_new,GID号为2000;
    添加2个用户,分别为b100、b200,要求他们的基本组是ceo,附加组是tech_new,宿主目录均使用/cis/ceo目录中与帐号同名的文件夹(例如b100用户的宿主目录/cis/ceo/b100);其中b200用户帐号设置2012-12-31日后失效;
    添加2个用户,分别为a100、a200,要求他们的基本组是soft,附加组是tech_new;宿主目录均使用/cis/soft目录中与帐号同名的文件夹(例如a1用户的宿主目录/cis/soft/a100) ;其中a200用户帐号登录的shell为/bin/ksh
    所有新建用户密码都是123456;
    [root@dbserver02 ~]# mkdir -p /cis/ceo /cis/soft [root@dbserver02 ~]# groupadd -g 10001 ceo [root@dbserver02 ~]# groupadd -g 10002 soft [root@dbserver02 ~]# groupadd -g 2000 tech_new [root@dbserver02 ~]# useradd -g ceo -G tech_new -d /cis/ceo/b100 b100 [root@dbserver02 ~]# useradd -g ceo -G tech_new -d /cis/ceo/b200 -e 2012-12-21 b200 [root@dbserver02 ~]# useradd -g soft -G tech_new -d /cis/soft/a100 a100 [root@dbserver02 ~]# useradd -g soft -G tech_new -d /cis/soft/a200 -s /bin/ksh a200 [root@dbserver02 ~]# passwd a100 Changing password for user a100. New password:  BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password:  passwd: all authentication tokens updated successfully.
    练习二:
    1)新建2个组group1group2
    groupadd -g group1
    groupadd -g group2
    2)更改组group2GID103,更改组名为grouptest
    Groudmod -g 103 -n grouptest group2 
    3)删除组grouptest
    groupdel grouptest
    4)新建用户user1,指定UID777,目录为/opt/user1,主要组为group1,次要组为root,指定shell/bin/bash
    useradd -u 777 -d /opt/user1 -g group1 -G root -s /bin/bash user1
    7)使用usermod命令修改用户user1的个人说明为This is a test
    usermod -c "This is a test" user1
    8)修改用户user1密码过期时间为2018-07-27
    usermod -E 2018-07-27 user1
    9)更改用户user1的密码为111111,加锁用户user1并查看/etc/shadow,用户user1通过ssh登录,解锁用户user1,再通过ssh登录.
    echo 111111 | passwd ---stdiu user1
    passwd -l user1
    tail -1 /etc/shadow
    passwd -u user1
    10)更改用户主目录/home/user1/home/user11
    usermod -d /home/user11
    11)root更改为csh,并查看结果,并将root改为bash
    usermod -s /bin/csh root
    usermod -s /bin/bash root
    14)列出用户user1UIDGID
    id user1
    15)增加用户user3,增加组testgroup,root,user1,user3加入到testgroup
    useradd user3
    groupadd testgroup
    gpasswd -a root testgroup
    gpasswd -a user1 testgroup
    gpasswd -a user3 testgroup
    group testgroup
    16)使用passwduser1用户密码锁定,用passwd查看user1密码锁定信息,最后用passwd给用户user1解锁
    passwd -l user1
    passwd -S user1
    passwd -u user1
    17)创建一个用户mandriva,ID号为2002,基本组为distro(ID3003),附加组为linux
    useradd -U 2002 -g distro -G linux mandriva
    18)创建一个用户fedora,其全名为Fedora Community,默认shelltcsh
    useradd -s /bin/tcsh fedora
    usermod -c "Fedora Community" fedora
    19)修改mandrivaID号为4004,基本组为linux,附加组为distrofedora
    usermod -u 4004 -g linux -G distro,fedora mandriva
    20)fedora加密码,并设定其密码最短使用期限为2天,最长为50天。
    passwd fedora
    passwd fedora -m 2 -M 50
    21)mandriva的默认shell改为/bin/bash
    usermod -s /bin/bash mandriva
    22) 添加系统用户hbase,且不允许其登陆系统。
    useradd -r -s /sbin/nologin hbase
     
     
  • 相关阅读:
    2015腾讯暑期实习笔试题目
    二叉树的优点和缺点
    pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
    事务的隔离机制
    Flink Sink定制开发
    Presto实现定时从配置文件读取配置
    LDAP与Sentry API使用
    Presto压测报告
    PrestoSPI安全扩展
    项目重构总结
  • 原文地址:https://www.cnblogs.com/qluzzh/p/10306102.html
Copyright © 2020-2023  润新知